Class EmptyExpression

java.lang.Object
org.simpleframework.xml.core.EmptyExpression
All Implemented Interfaces:
Iterable<String>, Expression

class EmptyExpression extends Object implements Expression
The EmptyExpression object is used to represent a path that represents the current context. This is a much more lightweight alternative to parsing "." with the PathParser object as it does not require the allocation of collections or buffers.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final List<String>
    This is a list that is used to create an empty iterator.
    private final Style
    This is the style that is used to style any paths created.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for EmptyExpression object.
  • Method Summary

    Modifier and Type
    Method
    Description
    This is used to acquire the attribute path using this XPath expression.
    This is used to acquire the element path using this XPath expression.
    This can be used to acquire the first path segment within the expression.
    int
    If the first path segment contains an index it is provided by this method.
    This can be used to acquire the last path segment within the expression.
    This location contains the full path expression with all of the indexes explicitly shown for each path segment.
    getPath(int from)
    This allows an expression to be extracted from the current context.
    getPath(int from, int trim)
    This allows an expression to be extracted from the current context.
    This is used to extract a namespace prefix from the path expression.
    boolean
    This is used to determine if the expression points to an attribute value.
    boolean
    This method is used to determine if this expression is an empty path.
    boolean
    This is used to determine if the expression is a path.
    This is used to iterate over the path segments that have been extracted from the source XPath expression.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.simpleframework.xml.core.Expression

    toString

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Field Details

    • list

      private final List<String> list
      This is a list that is used to create an empty iterator.
    • style

      private final Style style
      This is the style that is used to style any paths created.
  • Constructor Details

    • EmptyExpression

      public EmptyExpression(Format format)
      Constructor for EmptyExpression object. This is used to create an expression for an empty path. An empty path is basically the root element ".".
      Parameters:
      format - the format used to style the paths created
  • Method Details

    • iterator

      public Iterator<String> iterator()
      This is used to iterate over the path segments that have been extracted from the source XPath expression. Iteration over the segments is done in the order they were parsed from the source path.
      Specified by:
      iterator in interface Iterable<String>
      Returns:
      this returns an iterator for the path segments
    • getIndex

      public int getIndex()
      If the first path segment contains an index it is provided by this method. There may be several indexes within a path, however only the index at the first segment is issued by this method. If there is no index this will return 1.
      Specified by:
      getIndex in interface Expression
      Returns:
      this returns the index of this path expression
    • getPrefix

      public String getPrefix()
      This is used to extract a namespace prefix from the path expression. A prefix is used to qualify the XML element name and does not form part of the actual path structure. This can be used to add the namespace in addition to the name.
      Specified by:
      getPrefix in interface Expression
      Returns:
      this returns the prefix for the path expression
    • getFirst

      public String getFirst()
      This can be used to acquire the first path segment within the expression. The first segment represents the parent XML element of the path. All segments returned do not contain any slashes and so represents the real element name.
      Specified by:
      getFirst in interface Expression
      Returns:
      this returns the parent element for the path
    • getLast

      public String getLast()
      This can be used to acquire the last path segment within the expression. The last segment represents the leaf XML element of the path. All segments returned do not contain any slashes and so represents the real element name.
      Specified by:
      getLast in interface Expression
      Returns:
      this returns the leaf element for the path
    • getPath

      public String getPath()
      This location contains the full path expression with all of the indexes explicitly shown for each path segment. This is used to create a uniform representation that can be used for comparisons of different path expressions.
      Specified by:
      getPath in interface Expression
      Returns:
      this returns an expanded version of the path
    • getElement

      public String getElement(String name)
      This is used to acquire the element path using this XPath expression. 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.
      Specified by:
      getElement in interface Expression
      Parameters:
      name - this is the name of the element to be used
      Returns:
      a fully qualified path for the specified name
    • getAttribute

      public String getAttribute(String name)
      This is used to acquire the attribute path using this XPath expression. 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.
      Specified by:
      getAttribute in interface Expression
      Parameters:
      name - this is the name of the attribute to be used
      Returns:
      a fully qualified path for the specified name
    • getPath

      public Expression getPath(int from)
      This allows an expression to be extracted from the current context. Extracting expressions in this manner makes it more convenient for navigating structures representing the XML document. If an expression can not be extracted with the given criteria an exception will be thrown.
      Specified by:
      getPath in interface Expression
      Parameters:
      from - this is the number of segments to skip to
      Returns:
      this returns an expression from this one
    • getPath

      public Expression getPath(int from, int trim)
      This allows an expression to be extracted from the current context. Extracting expressions in this manner makes it more convenient for navigating structures representing the XML document. If an expression can not be extracted with the given criteria an exception will be thrown.
      Specified by:
      getPath in interface Expression
      Parameters:
      from - this is the number of segments to skip to
      trim - the number of segments to trim from the end
      Returns:
      this returns an expression from this one
    • isAttribute

      public boolean isAttribute()
      This is used to determine if the expression points to an attribute value. An attribute value contains an '@' character before the last segment name. Such expressions distinguish element references from attribute references.
      Specified by:
      isAttribute in interface Expression
      Returns:
      this returns true if the path has an attribute
    • isPath

      public boolean isPath()
      This is used to determine if the expression is a path. An expression represents a path if it contains more than one segment. If only one segment exists it is an element name.
      Specified by:
      isPath in interface Expression
      Returns:
      true if this contains more than one segment
    • isEmpty

      public boolean isEmpty()
      This method is used to determine if this expression is an empty path. An empty path can be represented by a single period, '.'. It identifies the current path.
      Specified by:
      isEmpty in interface Expression
      Returns:
      returns true if this represents an empty path