@Override public Class realClass(String elementName) { Class s = compatibilityAliases.get(elementName); if (s!=null) return s; try { return super.realClass(elementName); } catch (CannotResolveClassException e) { // If a "-" is found, retry with mapping this to "$" if (elementName.indexOf('-') >= 0) try { Class c = super.realClass(elementName.replace('-', '$')); oldData.set(Boolean.TRUE); return c; } catch (CannotResolveClassException e2) { } // Throw original exception throw e; } } }
public String serializedClass(Class type) { Class baseType = (Class)implToType.get(type); return baseType == null ? super.serializedClass(type) : super.serializedClass(baseType); }
public String realMember(Class type, String serialized) { String real = getMember(type, serialized, aliasToFieldMap); if (real == null) { return super.realMember(type, serialized); } else { return real; } }
public String serializedMember(Class type, String memberName) { if (memberName.startsWith("this$")) { final String[] innerFieldNames = getInnerFieldNames(type); for (int i = 0; i < innerFieldNames.length; ++i) { if (innerFieldNames[i].equals(memberName)) { return i == 0 ? alias : alias + '-' + i; } } } return super.serializedMember(type, memberName); }
public boolean shouldSerializeMember(Class definedIn, String fieldName) { if (fieldsToOmit.contains(key(definedIn, fieldName))) { return false; } else if (definedIn == Object.class && isIgnoredElement(fieldName)) { return false; } return super.shouldSerializeMember(definedIn, fieldName); }
public Class defaultImplementationOf(Class type) { if (typeToImpl.containsKey(type)) { return (Class)typeToImpl.get(type); } else { return super.defaultImplementationOf(type); } }
public SingleValueConverter getConverterFromItemType(String fieldName, Class type, Class definedIn) { SingleValueConverter converter = getLocalSingleValueConverter( definedIn, fieldName, type); return converter == null ? super.getConverterFromItemType(fieldName, type, definedIn) : converter; }
@Override public SingleValueConverter getConverterFromAttribute(Class definedIn, String attribute, Class type) { SingleValueConverter converter = getLocalConverter(attribute, type, definedIn); return converter == null ? super.getConverterFromAttribute(definedIn, attribute, type) : converter; }
public boolean isImmutableValueType(Class type) { if (immutableTypes.contains(type)) { return true; } else { return super.isImmutableValueType(type); } }
@Override public Converter getLocalConverter(final Class definedIn, final String fieldName) { if (!locked) { processAnnotations(definedIn); } return super.getLocalConverter(definedIn, fieldName); }
public String serializedMember(Class type, String memberName) { String alias = getMember(type, memberName, fieldToAliasMap); if (alias == null) { return super.serializedMember(type, memberName); } else { return alias; } }
@SuppressWarnings("rawtypes") @Override public boolean shouldSerializeMember(Class definedIn, String fieldName) { if (Resource.class.isAssignableFrom(definedIn) && fieldName.equals("link")) { return false; } return super.shouldSerializeMember(definedIn, fieldName); }
@Override public Class defaultImplementationOf(final Class type) { if (!locked) { processAnnotations(type); } final Class defaultImplementation = super.defaultImplementationOf(type); if (!locked) { processAnnotations(defaultImplementation); } return defaultImplementation; }
@Override public SingleValueConverter getConverterFromItemType(String fieldName, Class type, Class definedIn) { SingleValueConverter converter = getLocalConverter(fieldName, type, definedIn); return converter == null ? super.getConverterFromItemType(fieldName, type, definedIn) : converter; }
public SingleValueConverter getConverterFromAttribute(Class definedIn, String attribute, Class type) { SingleValueConverter converter = getLocalSingleValueConverter( definedIn, attribute, type); return converter == null ? super.getConverterFromAttribute(definedIn, attribute, type) : converter; }
@Override public boolean isImmutableValueType(Class type) { return (Enum.class.isAssignableFrom(type)) || super.isImmutableValueType(type); }
@Override public Converter getLocalConverter(final Class<?> definedIn, final String fieldName) { if (!locked) { processAnnotation(definedIn); } return super.getLocalConverter(definedIn, fieldName); }
public Class realClass(String elementName) { if (elementName.equals(alias)) { return DynamicProxy.class; } else { return super.realClass(elementName); } }
public String serializedClass(Class type) { if (Proxy.isProxyClass(type)) { return alias; } else { return super.serializedClass(type); } }
@Override public String realMember(final Class type, final String serialized) { if (!locked) { processAnnotations(type); } return super.realMember(type, serialized); }