Skip to content

Commit 5f0c276

Browse files
committed
fixed Value.equals and added test programs
1 parent e43f5a1 commit 5f0c276

20 files changed

+399
-116
lines changed

src/main/java/org/msgpack/template/AnyTemplate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static AnyTemplate getInstance(TemplateRegistry registry) {
3737
private TemplateRegistry registry;
3838

3939
private AnyTemplate(TemplateRegistry registry) {
40-
40+
this.registry = registry;
4141
}
4242

4343
public void write(Packer pk, T target, boolean required) throws IOException {

src/main/java/org/msgpack/type/AbstractRawValue.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,15 @@ public boolean equals(Object o) {
3636
if(this == o) {
3737
return true;
3838
}
39-
if(!(o instanceof RawValue)) {
39+
if(!(o instanceof Value)) {
40+
return false;
41+
}
42+
Value v = (Value) o;
43+
if(!v.isRaw()) {
4044
return false;
4145
}
4246

43-
return Arrays.equals(getByteArray(), ((RawValue) o).getByteArray());
47+
return Arrays.equals(getByteArray(), v.asRawValue().getByteArray());
4448
}
4549

4650
public int hashCode() {

src/main/java/org/msgpack/type/ArrayValueImpl.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,19 @@ public boolean equals(Object o) {
9696
if(o == this) {
9797
return true;
9898
}
99-
if(!(o instanceof ArrayValue)) {
99+
if(!(o instanceof Value)) {
100+
return false;
101+
}
102+
Value v = (Value) o;
103+
if(!v.isArray()) {
100104
return false;
101105
}
102106

103-
if(o.getClass() == ArrayValueImpl.class) {
104-
return equals((ArrayValueImpl) o);
107+
if(v.getClass() == ArrayValueImpl.class) {
108+
return equals((ArrayValueImpl) v);
105109
}
106110

107-
ListIterator oi = ((List) o).listIterator();
111+
ListIterator oi = v.asArrayValue().listIterator();
108112
int i = 0;
109113
while(i < array.length) {
110114
if(!oi.hasNext() || !array[i].equals(oi.next())) {

src/main/java/org/msgpack/type/BigIntegerValueImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,15 @@ public boolean equals(Object o) {
109109
if(o == this) {
110110
return true;
111111
}
112-
if(!(o instanceof IntegerValue)) {
112+
if(!(o instanceof Value)) {
113+
return false;
114+
}
115+
Value v = (Value) o;
116+
if(!v.isInteger()) {
113117
return false;
114118
}
115119

116-
return value.equals(((IntegerValue) o).bigIntegerValue());
120+
return value.equals(v.asIntegerValue().bigIntegerValue());
117121
}
118122

119123
public int hashCode() {

src/main/java/org/msgpack/type/ByteArrayRawValueImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,15 @@ public boolean equals(Object o) {
6868
if(this == o) {
6969
return true;
7070
}
71-
if(!(o instanceof RawValue)) {
71+
if(!(o instanceof Value)) {
72+
return false;
73+
}
74+
Value v = (Value) o;
75+
if(!v.isRaw()) {
7276
return false;
7377
}
7478

75-
return Arrays.equals(bytes, ((RawValue) o).getByteArray());
79+
return Arrays.equals(bytes, v.asRawValue().getByteArray());
7680
}
7781

7882
public int hashCode() {

src/main/java/org/msgpack/type/DoubleValueImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,15 @@ public boolean equals(Object o) {
7474
if(o == this) {
7575
return true;
7676
}
77-
if(!(o instanceof FloatValue)) {
77+
if(!(o instanceof Value)) {
78+
return false;
79+
}
80+
Value v = (Value) o;
81+
if(!v.isFloat()) {
7882
return false;
7983
}
8084

81-
return value == ((FloatValue) o).getDouble();
85+
return value == v.asFloatValue().getDouble();
8286
}
8387

8488
// TODO compareTo

src/main/java/org/msgpack/type/FalseValueImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,15 @@ public boolean equals(Object o) {
4141
if(o == this) {
4242
return true;
4343
}
44-
if(!(o instanceof BooleanValue)) {
44+
if(!(o instanceof Value)) {
45+
return false;
46+
}
47+
Value v = (Value) o;
48+
if(!v.isBoolean()) {
4549
return false;
4650
}
4751

48-
return ((BooleanValue) o).getBoolean() == false;
52+
return v.asBooleanValue().getBoolean() == false;
4953
}
5054

5155
public int hashCode() {

src/main/java/org/msgpack/type/FloatValueImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,15 @@ public boolean equals(Object o) {
7070
if(o == this) {
7171
return true;
7272
}
73-
if(!(o instanceof FloatValue)) {
73+
if(!(o instanceof Value)) {
74+
return false;
75+
}
76+
Value v = (Value) o;
77+
if(!v.isFloat()) {
7478
return false;
7579
}
7680

77-
return (double)value == ((FloatValue) o).getDouble();
81+
return (double)value == v.asFloatValue().getDouble();
7882
}
7983

8084
public void writeTo(Packer pk) throws IOException {

src/main/java/org/msgpack/type/IntValueImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,17 @@ public boolean equals(Object o) {
9999
if(o == this) {
100100
return true;
101101
}
102-
if(!(o instanceof IntegerValue)) {
102+
if(!(o instanceof Value)) {
103+
return false;
104+
}
105+
Value v = (Value) o;
106+
if(!v.isInteger()) {
103107
return false;
104108
}
105109

106110
try {
107111
// TODO
108-
return value == ((IntegerValue) o).getInt();
112+
return value == v.asIntegerValue().getInt();
109113
} catch (MessageTypeException ex) {
110114
return false;
111115
}

src/main/java/org/msgpack/type/LongValueImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,17 @@ public boolean equals(Object o) {
104104
if(o == this) {
105105
return true;
106106
}
107-
if(!(o instanceof IntegerValue)) {
107+
if(!(o instanceof Value)) {
108+
return false;
109+
}
110+
Value v = (Value) o;
111+
if(!v.isInteger()) {
108112
return false;
109113
}
110114

111115
try {
112116
// TODO
113-
return value == ((IntegerValue) o).getLong();
117+
return value == v.asIntegerValue().getLong();
114118
} catch (MessageTypeException ex) {
115119
return false;
116120
}

0 commit comments

Comments
 (0)