RobustReflectionConverter(Mapper mapper, ReflectionProvider reflectionProvider, XStream2.ClassOwnership classOwnership) { this.mapper = mapper; this.reflectionProvider = reflectionProvider; assert classOwnership != null; this.classOwnership = classOwnership; serializationMethodInvoker = new SerializationMethodInvoker(); }
@Override protected Object instantiateNewInstance(HierarchicalStreamReader reader, UnmarshallingContext context) { return reflectionProvider.newInstance(LogRotator.class); } };
public ImmutableSortedSetConverter(Mapper mapper, ReflectionProvider reflectionProvider) { super(mapper); sc = new SerializableConverter(mapper,reflectionProvider); }
public PureJavaReflectionProvider() { this(new FieldDictionary(new ImmutableFieldKeySorter())); }
public int compare(final Object firstObject, final Object secondObject) { final FieldKey first = (FieldKey)firstObject, second = (FieldKey)secondObject; return compare(first.getFieldName(), second.getFieldName()); }
/** * @deprecated As of 1.4.5, use {@link #getFieldOrNull(Class, String)} instead */ public boolean fieldDefinedInClass(String fieldName, Class type) { Field field = fieldDictionary.fieldOrNull(type, fieldName, null); return field != null && fieldModifiersSupported(field); }
public void visitSerializableFields(final Object object, final Visitor visitor) { wrapped.visitSerializableFields(object, new Visitor() { public void visit(String name, Class type, Class definedIn, Object value) { if (!Serializable.class.isAssignableFrom(definedIn)) { visitor.visit(name, type, definedIn, value); } } }); } }
private boolean fieldDefinedInClass(Object result, String attrName) { // during unmarshalling, unmarshal into transient fields like XStream 1.1.3 //boolean fieldExistsInClass = reflectionProvider.fieldDefinedInClass(attrName, result.getClass()); return reflectionProvider.getFieldOrNull(result.getClass(),attrName)!=null; }
public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) { Object result = instantiateNewInstance(reader, context); result = doUnmarshal(result, reader, context); return serializationMethodInvoker.callReadResolve(result); }
/** * @deprecated As of 1.4.5, use {@link #getFieldOrNull(Class, String)} instead */ public boolean fieldDefinedInClass(String fieldName, Class type) { return this.wrapped.fieldDefinedInClass(fieldName, type); }
public DuplicateFieldException(String msg) { super("Duplicate field " + msg); add("field", msg); } }
public UnknownFieldException(String type, String field) { super("No such field " + type + "." + field); add("field", field); } }
private Object readResolve() { init(); return this; } }
/** * Construct a MissingFieldException. * @param className the name of the class missing the field * @param fieldName the name of the missed field * @since 1.4.2 */ public MissingFieldException(final String className, final String fieldName) { super("Field not found in class."); this.className = className; this.fieldName = fieldName; add("field", className + "." + fieldName); }
public ImmutableMapConverter(Mapper mapper, ReflectionProvider reflectionProvider) { super(mapper); sc = new SerializableConverter(mapper,reflectionProvider); }
private Object readResolve() { serializationMethodInvoker = new SerializationMethodInvoker(); return this; }
public void visitSerializableFields(final Object object, final Visitor visitor) { wrapped.visitSerializableFields(object, new Visitor() { public void visit(String name, Class type, Class definedIn, Object value) { if (!name.startsWith("CGLIB$")) { visitor.visit(name, type, definedIn, value); } } }); } }
public RobustCollectionConverter(Mapper mapper, ReflectionProvider reflectionProvider) { super(mapper); sc = new SerializableConverter(mapper,reflectionProvider); }
public ImmutableSetConverter(Mapper mapper, ReflectionProvider reflectionProvider) { super(mapper); sc = new SerializableConverter(mapper,reflectionProvider); }
public ImmutableListConverter(Mapper mapper, ReflectionProvider reflectionProvider) { super(mapper); sc = new SerializableConverter(mapper,reflectionProvider); }