## net.sf.saxon.value
Class SingletonNode

    java.lang.Object
      net.sf.saxon.value.Value
          net.sf.saxon.value.SingletonNode

All Implemented Interfaces:
  Serializable, Comparable, SequenceIterable, ValueRepresentation

    public class SingletonNode

extends Value

A value that is a sequence containing zero or one nodes

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.value.Value
`EMPTY_CLASS_ARRAY, INDETERMINATE_ORDERING`

Fields inherited from interface net.sf.saxon.om.ValueRepresentation
`EMPTY_VALUE_ARRAY`

Constructor Summary
`SingletonNode(NodeInfo node)` Create a node-set containing zero or one nodes

Method Summary
`Item` `asItem()` Return the value in the form of an Item
`Object` `convertToJava(Class target, XPathContext context)` Convert to Java object (for passing to external functions)
`boolean` `effectiveBooleanValue()` Get the effective boolean value
`int` `getCardinality()` Determine the static cardinality
`ItemType` `getItemType(TypeHierarchy th)` Determine the data type of the items in the expression.
`int` `getLength()` Get the length of the sequence
`NodeInfo` `getNode()` Get the node that forms the node-set.
`String` `getStringValue()` Convert the value to a string, using the serialization rules.
`boolean` `isMultiValued()` Determine whether the value is multivalued, that is, whether it is a sequence that potentially contains more than one item
`Item` `itemAt(int n)` Get the n'th item in the sequence (starting from 0).
`SequenceIterator` `iterate()` Return an enumeration of this nodeset value.
`void` `process(XPathContext context)` Process the instruction, without returning any tail calls

Methods inherited from class net.sf.saxon.value.Value
`asItem, asIterator, asValue, checkPermittedContents, compareTo, convert, convertJavaObjectToXPath, equals, fromItem, getCanonicalLexicalRepresentation, getIterator, getSchemaComparable, getStringValueCS, hashCode, iterate, makeQNameValue, reduce, stringToNumber, toString`

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### SingletonNode

    public SingletonNode(NodeInfo node)

  Create a node-set containing zero or one nodes

  Parameters:
    `node` - The node to be contained in the node-set, or null if the node-set is to be empty

Method Detail

### asItem

    public Item asItem()

  Return the value in the form of an Item

  Overrides:
    `asItem` in class `Value`
  Returns:
    the value in the form of an Item

### isMultiValued

    public boolean isMultiValued()

  Determine whether the value is multivalued, that is, whether it is a sequence that potentially contains more than one item

  Specified by:
    `isMultiValued` in class `Value`
  Returns:
    true if the value might contain more than one item, false if it definitely contains zero or one items

### process

    public void process(XPathContext context)
                 throws XPathException

  Process the instruction, without returning any tail calls

  Overrides:
    `process` in class `Value`
  Parameters:
    `context` - The dynamic context, giving access to the current node, the current variables, etc.
  Throws:
    `XPathException`

### getItemType

    public ItemType getItemType(TypeHierarchy th)

  Determine the data type of the items in the expression. This method determines the most precise type that it can, because it is called when testing that the node conforms to a required type.

  Overrides:
    `getItemType` in class `Value`
  Parameters:
    `th` -
  Returns:
    the most precise possible type of the node.

### getCardinality

    public int getCardinality()

  Determine the static cardinality

  Overrides:
    `getCardinality` in class `Value`

### getLength

    public int getLength()
                  throws XPathException

  Get the length of the sequence

  Overrides:
    `getLength` in class `Value`
  Throws:
    `XPathException`

### itemAt

    public Item itemAt(int n)
                throws XPathException

  Get the n'th item in the sequence (starting from 0). This is defined for all SequenceValues, but its real benefits come for a SequenceValue stored extensionally (or for a MemoClosure, once all the values have been read)

  Overrides:
    `itemAt` in class `Value`
  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.
  Throws:
    `XPathException`

### getNode

    public NodeInfo getNode()

  Get the node that forms the node-set. Return null if there is none.

### iterate

    public SequenceIterator iterate()

  Return an enumeration of this nodeset value.

  Specified by:
    `iterate` in class `Value`
  Returns:
    an iterator over the sequence of items

### effectiveBooleanValue

    public boolean effectiveBooleanValue()

  Get the effective boolean value

  Overrides:
    `effectiveBooleanValue` in class `Value`
  Returns:
    the effective boolean value

### getStringValue

    public String getStringValue()

  Convert the value to a string, using the serialization rules. For atomic values this is the same as a cast; for sequence values it gives a space-separated list. For QNames and NOTATIONS, or lists containing them, it fails.

  Specified by:
    `getStringValue` in interface `ValueRepresentation`
  Overrides:
    `getStringValue` in class `Value`

### convertToJava

    public Object convertToJava(Class target,
                                XPathContext context)
                         throws XPathException

  Convert to Java object (for passing to external functions)

  Overrides:
    `convertToJava` in class `Value`
  Throws:
    `XPathException`

Copyright (C) Michael H. Kay. All rights reserved.