Interface Section

All Superinterfaces:
Iterable<String>
All Known Implementing Classes:
ModelSection, PrimitiveScanner.EmptySection

interface Section extends Iterable<String>
The Section interface is used to represent a section of XML that is to be generated. A section is a tree structure in that it can contain other sections. Each section contains the elements and attributes associated with it. This is used so that complex XML structures can be written for a single object.

For convenience all the element names, including other section names, can be iterated over. Element and section names can be differentiated using the source section.

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    This is used to acquire the full attribute path for this section.
    Returns a LabelMap that contains the details for all fields and methods marked with XML annotations.
    Returns the named element as a Label object.
    Returns a LabelMap that contains the details for all fields and methods marked with XML annotations.
    This is used to return the name of the section.
    This is used to acquire the full element path for this section.
    This is used to acquire the path prefix for the section.
    Returns the named section as a Section object.
    This is used to acquire the text label for this section if one has been specified.
    boolean
    To differentiate between a section and an element this can be used.

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator
  • Method Details

    • getName

      String getName()
      This is used to return the name of the section. The name is must be a valid XML element name. It is used when a style is applied to a path as the section name must be styled.
      Returns:
      this returns the name of this section instance
    • getPrefix

      String getPrefix()
      This is used to acquire the path prefix for the section. The path prefix is used when the section is transformed in to an XML structure. This ensures that the XML element created to represent the section contains the optional prefix.
      Returns:
      this returns the prefix for this section
    • getText

      Label getText() throws Exception
      This is used to acquire the text label for this section if one has been specified. A text label can only exist in a section if there are no elements associated with the section and the section is not composite, as in it does not contain any further sections.
      Returns:
      this returns the text label for this section
      Throws:
      Exception
    • getElements

      LabelMap getElements() throws Exception
      Returns a LabelMap that contains the details for all fields and methods marked with XML annotations. All of the element annotations are considered and gathered by name in this map. Also, if there is an associated Style for serialization the element names are renamed with this.
      Returns:
      returns the elements associated with this section
      Throws:
      Exception
    • getAttributes

      LabelMap getAttributes() throws Exception
      Returns a LabelMap that contains the details for all fields and methods marked with XML annotations. All of the attribute annotations are considered and gathered by name in this map. Also, if there is an associated Style for serialization the attribute names are renamed with this.
      Returns:
      returns the attributes associated with this section
      Throws:
      Exception
    • getElement

      Label getElement(String name) throws Exception
      Returns the named element as a Label object. For convenience this method is provided so that when iterating over the names of the elements in the section a specific one of interest can be acquired.

      To ensure that elements of the same name are not referenced more than once this will remove the element once acquired. This ensures that they are visited only once in serialization.

      Parameters:
      name - the name of the element that is to be acquired
      Returns:
      this returns the label associated with the name
      Throws:
      Exception
    • getSection

      Section getSection(String name) throws Exception
      Returns the named section as a Section object. For convenience this method is provided so that when iterating over the names of the elements in the section a specific one of interest can be acquired.

      To ensure that models of the same name are not referenced more than once this will remove the model once acquired. This ensures that they are visited only once in serialization.

      Parameters:
      name - the name of the element that is to be acquired
      Returns:
      this returns the section associated with the name
      Throws:
      Exception
    • getPath

      String getPath(String name) throws Exception
      This is used to acquire the full element path for this section. The element path is simply the fully qualified path for this expression with the provided name appended. If this is an empty path, the provided name is returned.
      Parameters:
      name - this is the name of the element to be used
      Returns:
      a fully qualified path for the specified name
      Throws:
      Exception
    • getAttribute

      String getAttribute(String name) throws Exception
      This is used to acquire the full attribute path for this section. The attribute path is simply the fully qualified path for this expression with the provided name appended. If this is an empty path, the provided name is returned.
      Parameters:
      name - this is the name of the attribute to be used
      Returns:
      a fully qualified path for the specified name
      Throws:
      Exception
    • isSection

      boolean isSection(String name) throws Exception
      To differentiate between a section and an element this can be used. When iterating over the elements within the section the names of both elements and sections are provided. So in order to determine how to interpret the structure this can be used.
      Parameters:
      name - this is the name of the element to be determined
      Returns:
      this returns true if the name represents a section
      Throws:
      Exception