1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 package org.spf4j.text;
33
34 import java.io.Serializable;
35 import java.text.Format;
36 import java.util.Objects;
37 import javax.annotation.Nullable;
38
39
40
41
42 final class FormatInfo implements Serializable, Cloneable {
43
44 private static final long serialVersionUID = 1L;
45 private final Format format;
46
47 private final int offset;
48
49 private final int argumentNumber;
50
51 FormatInfo(@Nullable final Format format, final int offset, final int argumentNumber) {
52 this.format = format;
53 this.offset = offset;
54 this.argumentNumber = argumentNumber;
55 }
56
57 @Nullable
58 public Format getFormat() {
59 return format;
60 }
61
62 public int getOffset() {
63 return offset;
64 }
65
66 public int getArgumentNumber() {
67 return argumentNumber;
68 }
69
70 @Override
71 public int hashCode() {
72 int hash = Objects.hashCode(this.format);
73 hash = 31 * hash + this.offset;
74 return 31 * hash + this.argumentNumber;
75 }
76
77
78
79 @Override
80 public boolean equals(final Object obj) {
81 if (this == obj) {
82 return true;
83 }
84 if (obj == null) {
85 return false;
86 }
87 if (getClass() != obj.getClass()) {
88 return false;
89 }
90 final FormatInfo other = (FormatInfo) obj;
91 if (this.offset != other.offset) {
92 return false;
93 }
94 if (this.argumentNumber != other.argumentNumber) {
95 return false;
96 }
97 return Objects.equals(this.format, other.format);
98 }
99
100 @Override
101 public String toString() {
102 return "FormatInfo{" + "format=" + format + ", offset=" + offset + ", argumentNumber=" + argumentNumber + '}';
103 }
104
105 @Override
106 protected FormatInfo clone() {
107 return new FormatInfo((Format) format.clone(), offset, argumentNumber);
108 }
109
110
111
112 }