Class 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 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 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
      • 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 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​(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 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​(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 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 Detail

      • canConvert

        public boolean canConvert​(java.lang.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​(java.lang.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.
      • fieldIsEqual

        private boolean fieldIsEqual​(FastField field)