Class SerializableConverter
- java.lang.Object
-
- com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter
-
- com.thoughtworks.xstream.converters.reflection.SerializableConverter
-
- All Implemented Interfaces:
Converter
,ConverterMatcher
,Caching
- Direct Known Subclasses:
CGLIBEnhancedConverter
,LambdaConverter
public class SerializableConverter extends AbstractReflectionConverter
Emulates the mechanism used by standard Java Serialization for classes that implement java.io.Serializable AND implement or inherit a custom readObject()/writeObject() method.Supported features of serialization
- readObject(), writeObject()
- class inheritance
- readResolve(), writeReplace()
- getFields(), putFields(), writeFields(), readFields()
- ObjectStreamField[] serialPersistentFields
- ObjectInputValidation
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
SerializableConverter.UnserializableParentsReflectionProvider
-
Nested classes/interfaces inherited from class com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter
AbstractReflectionConverter.DuplicateFieldException, AbstractReflectionConverter.UnknownFieldException
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ATTRIBUTE_CLASS
private static java.lang.String
ATTRIBUTE_NAME
private static java.lang.String
ATTRIBUTE_SERIALIZATION
private static java.lang.String
ATTRIBUTE_VALUE_CUSTOM
private ClassLoaderReference
classLoaderReference
private static java.lang.String
ELEMENT_DEFAULT
private static java.lang.String
ELEMENT_FIELD
private static java.lang.String
ELEMENT_FIELDS
private static java.lang.String
ELEMENT_NULL
private static java.lang.String
ELEMENT_UNSERIALIZABLE_PARENTS
-
Fields inherited from class com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter
mapper, reflectionProvider, serializationMembers, serializationMethodInvoker
-
-
Constructor Summary
Constructors Constructor Description SerializableConverter(Mapper mapper, ReflectionProvider reflectionProvider)
Deprecated.SerializableConverter(Mapper mapper, ReflectionProvider reflectionProvider, ClassLoaderReference classLoaderReference)
Construct a SerializableConverter.SerializableConverter(Mapper mapper, ReflectionProvider reflectionProvider, java.lang.ClassLoader classLoader)
Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canConvert(java.lang.Class type)
Determines whether the converter can marshall a particular type.void
doMarshal(java.lang.Object source, HierarchicalStreamWriter writer, MarshallingContext context)
protected void
doMarshalConditionally(java.lang.Object source, HierarchicalStreamWriter writer, MarshallingContext context)
java.lang.Object
doUnmarshal(java.lang.Object result, HierarchicalStreamReader reader, UnmarshallingContext context)
protected java.lang.Object
doUnmarshalConditionally(java.lang.Object result, HierarchicalStreamReader reader, UnmarshallingContext context)
protected java.util.List
hierarchyFor(java.lang.Class type)
private boolean
isSerializable(java.lang.Class type)
protected void
marshalUnserializableParent(HierarchicalStreamWriter writer, MarshallingContext context, java.lang.Object replacedSource)
private java.lang.Object
readField(java.io.ObjectStreamField field, java.lang.Class type, java.lang.Object instance)
-
Methods inherited from class com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter
canAccess, flushCache, instantiateNewInstance, marshal, marshallField, readResolve, shouldUnmarshalField, shouldUnmarshalTransientFields, unmarshal, unmarshallField
-
-
-
-
Field Detail
-
ELEMENT_NULL
private static final java.lang.String ELEMENT_NULL
- See Also:
- Constant Field Values
-
ELEMENT_DEFAULT
private static final java.lang.String ELEMENT_DEFAULT
- See Also:
- Constant Field Values
-
ELEMENT_UNSERIALIZABLE_PARENTS
private static final java.lang.String ELEMENT_UNSERIALIZABLE_PARENTS
- See Also:
- Constant Field Values
-
ATTRIBUTE_CLASS
private static final java.lang.String ATTRIBUTE_CLASS
- See Also:
- Constant Field Values
-
ATTRIBUTE_SERIALIZATION
private static final java.lang.String ATTRIBUTE_SERIALIZATION
- See Also:
- Constant Field Values
-
ATTRIBUTE_VALUE_CUSTOM
private static final java.lang.String ATTRIBUTE_VALUE_CUSTOM
- See Also:
- Constant Field Values
-
ELEMENT_FIELDS
private static final java.lang.String ELEMENT_FIELDS
- See Also:
- Constant Field Values
-
ELEMENT_FIELD
private static final java.lang.String ELEMENT_FIELD
- See Also:
- Constant Field Values
-
ATTRIBUTE_NAME
private static final java.lang.String ATTRIBUTE_NAME
- See Also:
- Constant Field Values
-
classLoaderReference
private final ClassLoaderReference classLoaderReference
-
-
Constructor Detail
-
SerializableConverter
public SerializableConverter(Mapper mapper, ReflectionProvider reflectionProvider, ClassLoaderReference classLoaderReference)
Construct a SerializableConverter.- Parameters:
mapper
- the mapper chain instancereflectionProvider
- the reflection providerclassLoaderReference
- the reference to theClassLoader
of the XStream instance- Since:
- 1.4.5
-
SerializableConverter
public SerializableConverter(Mapper mapper, ReflectionProvider reflectionProvider, java.lang.ClassLoader classLoader)
Deprecated.
-
SerializableConverter
public SerializableConverter(Mapper mapper, ReflectionProvider reflectionProvider)
Deprecated.
-
-
Method Detail
-
canConvert
public boolean canConvert(java.lang.Class type)
Description copied from interface:ConverterMatcher
Determines whether the converter can marshall a particular type.- Parameters:
type
- the Class representing the object type to be converted
-
isSerializable
private boolean isSerializable(java.lang.Class type)
-
doMarshal
public void doMarshal(java.lang.Object source, HierarchicalStreamWriter writer, MarshallingContext context)
- Overrides:
doMarshal
in classAbstractReflectionConverter
-
marshalUnserializableParent
protected void marshalUnserializableParent(HierarchicalStreamWriter writer, MarshallingContext context, java.lang.Object replacedSource)
-
readField
private java.lang.Object readField(java.io.ObjectStreamField field, java.lang.Class type, java.lang.Object instance)
-
hierarchyFor
protected java.util.List hierarchyFor(java.lang.Class type)
-
doUnmarshal
public java.lang.Object doUnmarshal(java.lang.Object result, HierarchicalStreamReader reader, UnmarshallingContext context)
- Overrides:
doUnmarshal
in classAbstractReflectionConverter
-
doMarshalConditionally
protected void doMarshalConditionally(java.lang.Object source, HierarchicalStreamWriter writer, MarshallingContext context)
-
doUnmarshalConditionally
protected java.lang.Object doUnmarshalConditionally(java.lang.Object result, HierarchicalStreamReader reader, UnmarshallingContext context)
-
-