Class ToAttributedValueConverter
- java.lang.Object
-
- com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter
-
- All Implemented Interfaces:
Converter,ConverterMatcher
public class ToAttributedValueConverter extends java.lang.Object implements Converter
Converter that supports the definition of one field member that will be written as value and all other field members are written as attributes. The converter requires that all the field types (expect the one with the value) are handled by aSingleValueConverter. The value field is defined using the name of the type that declares the field and the field name itself. Therefore it is possible to define an inherited field as value. It is also possible to provide no value field at all, so that all fields are written as attributes.- Since:
- 1.4
-
-
Field Summary
Fields Modifier and Type Field Description private MapperenumMapperprivate ConverterLookuplookupprivate Mappermapperprivate ReflectionProviderreflectionProviderprivate static java.lang.StringSTRUCTURE_MARKERprivate java.lang.Classtypeprivate java.lang.reflect.FieldvalueField
-
Constructor Summary
Constructors Constructor Description ToAttributedValueConverter(java.lang.Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup)Creates a new ToAttributedValueConverter instance.ToAttributedValueConverter(java.lang.Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup, java.lang.String valueFieldName)Creates a new ToAttributedValueConverter instance.ToAttributedValueConverter(java.lang.Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup, java.lang.String valueFieldName, java.lang.Class valueDefinedIn)Creates a new ToAttributedValueConverter instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanConvert(java.lang.Class type)Determines whether the converter can marshall a particular type.private booleanfieldIsEqual(java.lang.Class definedIn, java.lang.String name)voidmarshal(java.lang.Object source, HierarchicalStreamWriter writer, MarshallingContext context)Convert an object to textual data.java.lang.Objectunmarshal(HierarchicalStreamReader reader, UnmarshallingContext context)Convert textual data back into an object.
-
-
-
Field Detail
-
STRUCTURE_MARKER
private static final java.lang.String STRUCTURE_MARKER
- See Also:
- Constant Field Values
-
type
private final java.lang.Class type
-
mapper
private final Mapper mapper
-
enumMapper
private final Mapper enumMapper
-
reflectionProvider
private final ReflectionProvider reflectionProvider
-
lookup
private final ConverterLookup lookup
-
valueField
private final java.lang.reflect.Field valueField
-
-
Constructor Detail
-
ToAttributedValueConverter
public ToAttributedValueConverter(java.lang.Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup)Creates a new ToAttributedValueConverter instance. All field elements will be attributes, the element itself will have no value.- Parameters:
type- the type that is handled by this converter instancemapper- the mapper in usereflectionProvider- the reflection provider in uselookup- the converter lookup in use- Since:
- 1.4.9
-
ToAttributedValueConverter
public ToAttributedValueConverter(java.lang.Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup, java.lang.String valueFieldName)Creates a new ToAttributedValueConverter instance.- Parameters:
type- the type that is handled by this converter instancemapper- the mapper in usereflectionProvider- the reflection provider in uselookup- the converter lookup in usevalueFieldName- the field defining the tag's value (may be null)
-
ToAttributedValueConverter
public ToAttributedValueConverter(java.lang.Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup, java.lang.String valueFieldName, java.lang.Class valueDefinedIn)Creates a new ToAttributedValueConverter instance.- Parameters:
type- the type that is handled by this converter instancemapper- the mapper in usereflectionProvider- the reflection provider in uselookup- the converter lookup in usevalueFieldName- the field defining the tag's value (may be null)valueDefinedIn- the type defining the field
-
-
Method Detail
-
canConvert
public boolean canConvert(java.lang.Class type)
Description copied from interface:ConverterMatcherDetermines whether the converter can marshall a particular type.- Specified by:
canConvertin interfaceConverterMatcher- Parameters:
type- the Class representing the object type to be converted
-
marshal
public void marshal(java.lang.Object source, HierarchicalStreamWriter writer, MarshallingContext context)Description copied from interface:ConverterConvert an object to textual data.
-
unmarshal
public java.lang.Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context)
Description copied from interface:ConverterConvert textual data back into an object.
-
fieldIsEqual
private boolean fieldIsEqual(java.lang.Class definedIn, java.lang.String name)
-
-