JClassType customSerializer =
SerializableTypeOracleBuilder.findCustomFieldSerializer(context.getTypeOracle(), type);
if (customSerializer != null) {
generateSerializationSignature(context, customSerializer, crc);
} else if (type.isArray() != null) {
JArrayType isArray = type.isArray();
generateSerializationSignature(context, isArray.getComponentType(), crc);
} else if (type.isEnum() != null) {
List<JEnumConstant> constants = Arrays.asList(type.isEnum().getEnumConstants());
// Make sure the list is sorted; the getEnumConstants contract doesn't guarantees it.
Collections.sort(constants, new Comparator<JEnumConstant>() {
@Override