@@ -135,11 +135,7 @@ public int compareTo(MethodABIInfo o) {
135
135
if (cmp != 0 ) {
136
136
return cmp ;
137
137
}
138
- cmp = methodName .compareTo (o .methodName );
139
- if (cmp != 0 ) {
140
- return cmp ;
141
- }
142
- return 0 ;
138
+ return methodName .compareTo (o .methodName );
143
139
}
144
140
145
141
@ Override
@@ -193,28 +189,48 @@ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundExcept
193
189
}
194
190
}
195
191
196
- public static final class FieldABIInfo implements Comparable <FieldABIInfo >, Externalizable {
192
+ public static class FieldABIInfo implements Comparable <FieldABIInfo >, Externalizable {
197
193
private static final long serialVersionUID = 1L ;
198
194
199
195
protected String classCanonicalName ;
200
196
protected String fieldName ;
201
- protected boolean hasConstantValue ;
202
197
203
198
/**
204
199
* For {@link Externalizable}.
205
200
*/
206
201
public FieldABIInfo () {
207
202
}
208
203
209
- private FieldABIInfo (String classCanonicalName , String fieldName , boolean hasConstantValue ) {
204
+ private FieldABIInfo (String classCanonicalName , String fieldName ) {
210
205
this .classCanonicalName = classCanonicalName ;
211
206
this .fieldName = fieldName ;
212
- this .hasConstantValue = hasConstantValue ;
213
207
}
214
208
215
209
public static FieldABIInfo create (ClassSignature enclosingclass , FieldSignature signature ) {
216
- return new FieldABIInfo (enclosingclass .getCanonicalName (), signature .getSimpleName (),
217
- signature .getConstantValue () != null );
210
+ if (signature .getConstantValue () != null ) {
211
+ return new ConstantFieldABIInfo (enclosingclass .getCanonicalName (), signature .getSimpleName ());
212
+ }
213
+ return new FieldABIInfo (enclosingclass .getCanonicalName (), signature .getSimpleName ());
214
+ }
215
+
216
+ private static class ConstantFieldABIInfo extends FieldABIInfo {
217
+ private static final long serialVersionUID = 1L ;
218
+
219
+ /**
220
+ * For {@link Externalizable}.
221
+ */
222
+ public ConstantFieldABIInfo () {
223
+ }
224
+
225
+ protected ConstantFieldABIInfo (String classCanonicalName , String fieldName ) {
226
+ super (classCanonicalName , fieldName );
227
+ }
228
+
229
+ @ Override
230
+ public boolean hasConstantValue () {
231
+ return true ;
232
+ }
233
+
218
234
}
219
235
220
236
public String getClassCanonicalName () {
@@ -226,7 +242,7 @@ public String getFieldName() {
10000
226
242
}
227
243
228
244
public boolean hasConstantValue () {
229
- return hasConstantValue ;
245
+ return false ;
230
246
}
231
247
232
248
@ Override
@@ -239,11 +255,7 @@ public int compareTo(FieldABIInfo o) {
239
255
if (cmp != 0 ) {
240
256
return cmp ;
241
257
}
242
- cmp = Boolean .compare (hasConstantValue , o .hasConstantValue );
243
- if (cmp != 0 ) {
244
- return cmp ;
245
- }
246
- return 0 ;
258
+ return Boolean .compare (hasConstantValue (), o .hasConstantValue ());
247
259
}
248
260
249
261
@ Override
@@ -252,7 +264,6 @@ public int hashCode() {
252
264
int result = 1 ;
253
265
result = prime * result + ((classCanonicalName == null ) ? 0 : classCanonicalName .hashCode ());
254
266
result = prime * result + ((fieldName == null ) ? 0 : fieldName .hashCode ());
255
- result = prime * result + (hasConstantValue ? 1231 : 1237 );
256
267
return result ;
257
268
}
258
269
@@ -275,33 +286,27 @@ public boolean equals(Object obj) {
275
286
return false ;
276
287
} else if (!fieldName .equals (other .fieldName ))
277
288
return false ;
278
- if (hasConstantValue != other .hasConstantValue )
279
- return false ;
280
289
return true ;
281
290
}
282
291
283
292
@ Override
284
293
public String toString () {
285
294
return getClass ().getSimpleName () + "["
286
295
+ (classCanonicalName != null ? "classCanonicalName=" + classCanonicalName + ", " : "" )
287
- + (fieldName != null ? "fieldName=" + fieldName + ", " : "" ) + "hasConstantValue="
288
- + hasConstantValue + "]" ;
296
+ + (fieldName != null ? "fieldName=" + fieldName + ", " : "" ) + "]" ;
289
297
}
290
298
291
299
@ Override
292
300
public void writeExternal (ObjectOutput out ) throws IOException {
293
301
out .writeObject (classCanonicalName );
294
302
out .writeObject (fieldName );
295
- out .writeBoolean (hasConstantValue );
296
303
}
297
304
298
305
@ Override
299
306
public void readExternal (ObjectInput in ) throws IOException , ClassNotFoundException {
300
307
classCanonicalName = (String ) in .readObject ();
301
308
fieldName = (String ) in .readObject ();
302
- hasConstantValue = in .readBoolean ();
303
309
}
304
-
305
310
}
306
311
307
312
public Map <ClassABIInfo , ? extends AbiUsage > getClasses ();
0 commit comments