Enum Class EmptySequence

java.lang.Object
java.lang.Enum<EmptySequence>
net.sf.saxon.value.EmptySequence
All Implemented Interfaces:
Serializable, Comparable<EmptySequence>, Constable, GroundedValue, Sequence

public enum EmptySequence extends Enum<EmptySequence> implements GroundedValue
An EmptySequence object represents a sequence containing no items.
Since:
9.5. Generified in 9.9. Generification reverted in 11.0.
  • Enum Constant Details

  • Method Details

    • values

      public static EmptySequence[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static EmptySequence valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getInstance

      public static EmptySequence getInstance()
    • getUnicodeStringValue

      public UnicodeString getUnicodeStringValue()
      Description copied from interface: GroundedValue
      Get the string value of this sequence, as an instance of UnicodeString. The string value of an item is the result of applying the XPath string() function. The string value of a sequence is the space-separated result of applying the string-join() function using a single space as the separator

      The result of this method is always equivalent to the result of the GroundedValue.getStringValue() method. Use this method in preference either (a) if you need to use the value in a context where a UnicodeString is required, or (b) if the underlying value is held as a UnicodeString, or in a form that is readily converted to a UnicodeString. This is typically the case (i) when the value is a text or element node in a TinyTree, and (ii) when the value is a StringItem: that is, an atomic value of type xs:string.

      Specified by:
      getUnicodeStringValue in interface GroundedValue
      Returns:
      the string value of the sequence.
    • getStringValue

      public String getStringValue()
      Description copied from interface: GroundedValue
      Get the string value of this sequence, as an instance of String. The string value of an item is the result of applying the XPath string() function. The string value of a sequence is the space-separated result of applying the string-join() function using a single space as the separator.

      The result of this method is always equivalent to the result of the GroundedValue.getUnicodeStringValue() method. Use this method in preference either (a) if you need to use the value in a context where a String is required, or (b) if the underlying value is held as a String, or in a form that is readily converted to a String. This is typically the case (i) when the value is an attribute node in a TinyTree, or (ii) any kind of node in a third-party tree model such as DOM.

      Specified by:
      getStringValue in interface GroundedValue
      Returns:
      the string value of the sequence.
    • head

      public Item head()
      Get the first item in the sequence.
      Specified by:
      head in interface GroundedValue
      Specified by:
      head in interface Sequence
      Returns:
      the first item in the sequence if there is one, or null if the sequence is empty
    • iterate

      public SequenceIterator iterate()
      Return an iteration over the sequence
      Specified by:
      iterate in interface GroundedValue
      Specified by:
      iterate in interface Sequence
      Returns:
      an empty iterator
    • getLength

      public final int getLength()
      Get the length of the sequence
      Specified by:
      getLength in interface GroundedValue
      Returns:
      always 0 for an empty sequence
    • effectiveBooleanValue

      public boolean effectiveBooleanValue()
      Get the effective boolean value - always false
      Specified by:
      effectiveBooleanValue in interface GroundedValue
      Returns:
      the effective boolean value
    • itemAt

      public Item itemAt(int n)
      Get the n'th item in the sequence (starting from 0). This is defined for all Values, but its real benefits come for a sequence Value stored extensionally (or for a MemoClosure, once all the values have been read)
      Specified by:
      itemAt in interface GroundedValue
      Parameters:
      n - position of the required item, counting from zero.
      Returns:
      the n'th item in the sequence, where the first item in the sequence is numbered zero. If n is negative or >= the length of the sequence, returns null.
    • subsequence

      public GroundedValue subsequence(int min, int length)
      Get a subsequence of the value
      Specified by:
      subsequence in interface GroundedValue
      Parameters:
      min - the index of the first item to be included in the result, counting from zero. A negative value is taken as zero. If the value is beyond the end of the sequence, an empty sequence is returned
      length - the number of items to be included in the result. Specify Integer.MAX_VALUE to get the subsequence up to the end of the base sequence. If the value is negative, an empty sequence is returned. If the value goes off the end of the sequence, the result returns items up to the end of the sequence
      Returns:
      the required subsequence. If min is
    • toString

      public String toString()
      Returns a string representation of the object.
      Overrides:
      toString in class Enum<EmptySequence>
    • reduce

      public GroundedValue reduce()
      Reduce the sequence to its simplest form. If the value is an empty sequence, the result will be EmptySequence.getInstance(). If the value is a single atomic value, the result will be an instance of AtomicValue. If the value is a single item of any other kind, the result will be an instance of SingletonItem. Otherwise, the result will typically be unchanged.
      Specified by:
      reduce in interface GroundedValue
      Returns:
      the simplified sequence
    • materialize

      public GroundedValue materialize()
      Create a GroundedValue containing the same items as this Sequence. Since this Sequence is already a GroundedValue this method returns this GroundedValue unchanged.
      Specified by:
      materialize in interface GroundedValue
      Specified by:
      materialize in interface Sequence
      Returns:
      this GroundedValue
    • makeRepeatable

      public Sequence makeRepeatable() throws XPathException
      Ensure that the sequence is in a form where it can be evaluated more than once. Some sequences (for example LazySequence and Closure can only be evaluated once, and this operation causes these to be grounded. However, making it repeatable is not the same as making it grounded; it does not flush out all errors. Indeed, lazy evaluation relies on this property, because an expression that has been lifted out of a loop must not be evaluated unless the loop is executed at least once, to prevent spurious errors.
      Specified by:
      makeRepeatable in interface Sequence
      Returns:
      An equivalent sequence that can be repeatedly evaluated
      Throws:
      XPathException - if evaluation fails
    • toShortString

      public String toShortString()
      Produce a short representation of the value of the sequence, suitable for use in error messages
      Specified by:
      toShortString in interface GroundedValue
      Returns:
      a short representation of the value
    • asIterable

      public Iterable<? extends Item> asIterable()
      Get an Iterable that wraps this GroundedValue, allowing it to be used in a Java for-each loop.
      Specified by:
      asIterable in interface GroundedValue
      Returns:
      an iterable delivering the contents of this value
    • containsNode

      public boolean containsNode(NodeInfo sought) throws XPathException
      Determine whether a particular node is present in the value
      Specified by:
      containsNode in interface GroundedValue
      Parameters:
      sought - the sought-after node
      Returns:
      true if the sought node is present
      Throws:
      XPathException - This should never happen
    • concatenate

      public GroundedValue concatenate(GroundedValue... others)
      Append two or more grounded values to form a new grounded value
      Specified by:
      concatenate in interface GroundedValue
      Parameters:
      others - one or more grounded values that are to be concatenated with this one, in order
      Returns:
      the concatenation of the supplied sequences (none of which is modified by the operation)