Class ExtractorFactory.ElementExtractor

java.lang.Object
org.simpleframework.xml.core.ExtractorFactory.ElementExtractor
All Implemented Interfaces:
Extractor<Element>
Enclosing class:
ExtractorFactory

private static class ExtractorFactory.ElementExtractor extends Object implements Extractor<Element>
The ElementExtractor object is used extract the constituent parts of the provided union annotation. This can also be used to create a Label object for each of the declared annotation for dynamic serialization.
  • Field Details

    • contact

      private final Contact contact
      This is the contact that has been annotated as a union.
    • union

      private final ElementUnion union
      This is the union annotation to extract the labels for.
    • format

      private final Format format
      This is the format used to style the elements created.
  • Constructor Details

    • ElementExtractor

      public ElementExtractor(Contact contact, ElementUnion union, Format format) throws Exception
      Constructor for the ElementExtractor object. This is used to create an extractor that can be used to extract the various labels used to serialize and deserialize objects.
      Parameters:
      contact - this is the contact annotated as a union
      union - this is the union annotation to extract from
      format - this is the format used to style the elements
      Throws:
      Exception
  • Method Details

    • getAnnotations

      public Element[] getAnnotations()
      This is used to acquire each annotation that forms part of the union group. Extracting the annotations in this way allows the extractor to build a Label which can be used to represent the annotation. Each label can then provide a converter implementation to serialize objects.
      Specified by:
      getAnnotations in interface Extractor<Element>
      Returns:
      this returns each annotation within the union group
    • getLabel

      public Label getLabel(Element element)
      This creates a Label object used to represent the annotation provided. Creating the label in this way ensures that each union has access to the serialization methods defined for each type an XML element name.
      Specified by:
      getLabel in interface Extractor<Element>
      Parameters:
      element - this is the annotation to create the label for
      Returns:
      this is the label created for the annotation
    • getType

      public Class getType(Element element)
      Each annotation can provide a class which is used to determine which label is used to serialize an object. This ensures that the correct label is selected whenever serialization occurs.
      Specified by:
      getType in interface Extractor<Element>
      Parameters:
      element - this is the annotation to extract the type for
      Returns:
      this returns the class associated with the annotation