Class ToAttributedValueConverter

java.lang.Object
com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter
All Implemented Interfaces:
Converter, ConverterMatcher

public class ToAttributedValueConverter extends 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 a SingleValueConverter. 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 Details

  • Constructor Details

    • ToAttributedValueConverter

      public ToAttributedValueConverter(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 instance
      mapper - the mapper in use
      reflectionProvider - the reflection provider in use
      lookup - the converter lookup in use
      Since:
      1.4.9
    • ToAttributedValueConverter

      public ToAttributedValueConverter(Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup, String valueFieldName)
      Creates a new ToAttributedValueConverter instance.
      Parameters:
      type - the type that is handled by this converter instance
      mapper - the mapper in use
      reflectionProvider - the reflection provider in use
      lookup - the converter lookup in use
      valueFieldName - the field defining the tag's value (may be null)
    • ToAttributedValueConverter

      public ToAttributedValueConverter(Class type, Mapper mapper, ReflectionProvider reflectionProvider, ConverterLookup lookup, String valueFieldName, Class valueDefinedIn)
      Creates a new ToAttributedValueConverter instance.
      Parameters:
      type - the type that is handled by this converter instance
      mapper - the mapper in use
      reflectionProvider - the reflection provider in use
      lookup - the converter lookup in use
      valueFieldName - the field defining the tag's value (may be null)
      valueDefinedIn - the type defining the field
  • Method Details

    • canConvert

      public boolean canConvert(Class type)
      Description copied from interface: ConverterMatcher
      Determines whether the converter can marshall a particular type.
      Specified by:
      canConvert in interface ConverterMatcher
      Parameters:
      type - the Class representing the object type to be converted
    • marshal

      public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context)
      Description copied from interface: Converter
      Convert an object to textual data.
      Specified by:
      marshal in interface Converter
      Parameters:
      source - The object to be marshalled.
      writer - A stream to write to.
      context - A context that allows nested objects to be processed by XStream.
    • unmarshal

      public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context)
      Description copied from interface: Converter
      Convert textual data back into an object.
      Specified by:
      unmarshal in interface Converter
      Parameters:
      reader - The stream to read the text from.
      context -
      Returns:
      The resulting object.
    • fieldIsEqual

      private boolean fieldIsEqual(FastField field)