Package org.apache.commons.jxpath.ri.model.dynamic

# Class DynamicPropertyPointer

java.lang.Object
org.apache.commons.jxpath.ri.model.NodePointer
org.apache.commons.jxpath.ri.model.beans.PropertyPointer
org.apache.commons.jxpath.ri.model.dynamic.DynamicPropertyPointer

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Comparable`, `Pointer`

public class DynamicPropertyPointer extends PropertyPointer
Pointer to a property of an object with dynamic properties.

See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class org.apache.commons.jxpath.ri.model.beans.PropertyPointer

  `bean, propertyIndex, UNSPECIFIED_PROPERTY`

  ### Fields inherited from class org.apache.commons.jxpath.ri.model.NodePointer

  `index, locale, parent, UNKNOWN_NAMESPACE, WHOLE_COLLECTION`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DynamicPropertyPointer(NodePointer parent, DynamicPropertyHandler handler)`
  Constructs a new DynamicPropertyPointer.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `asPath()`
  Returns an XPath that maps to this Pointer.
  `NodePointer`
  `createPath(JXPathContext context)`
  Called by a child pointer when it needs to create a parent object.
  `NodePointer`
  `createPath(JXPathContext context, Object value)`
  Called directly by JXPathContext.
  `Object`
  `getBaseValue()`
  Returns the value of the property, not an element of the collection represented by the property, if any.
  `Object`
  `getImmediateNode()`
  If index == WHOLE_COLLECTION, the value of the property, otherwise the value of the index'th element of the collection represented by the property.
  `int`
  `getPropertyCount()`
  Number of the DP object's properties.
  `int`
  `getPropertyIndex()`
  Index of the currently selected property in the list of all properties sorted alphabetically.
  `String`
  `getPropertyName()`
  Gets the name of the currently selected property or "*" if none has been selected.
  `String[]`
  `getPropertyNames()`
  Gets the names of all properties, sorted alphabetically.
  `protected boolean`
  `isActualProperty()`
  A dynamic property is always considered actual - all keys are apparently existing with possibly the value of null.
  `boolean`
  `isContainer()`
  This type of node is auxiliary.
  `void`
  `remove()`
  Remove the node of the object graph this pointer points to.
  `void`
  `setPropertyIndex(int index)`
  Index a property by its index in the list of all properties sorted alphabetically.
  `void`
  `setPropertyName(String propertyName)`
  Select a property by name.
  `void`
  `setValue(Object value)`
  If index == WHOLE_COLLECTION, change the value of the property, otherwise change the value of the index'th element of the collection represented by the property.

  ### Methods inherited from class org.apache.commons.jxpath.ri.model.beans.PropertyPointer

  `compareChildNodePointers, createChild, createChild, equals, getBean, getImmediateValuePointer, getLength, getName, hashCode, isActual, isCollection, isLeaf`

  ### Methods inherited from class org.apache.commons.jxpath.ri.model.NodePointer

  `attributeIterator, childIterator, clone, compareTo, createAttribute, escape, getAbstractFactory, getDefaultNamespaceURI, getImmediateParentPointer, getIndex, getLocale, getNamespaceResolver, getNamespaceURI, getNamespaceURI, getNode, getNodeSetByKey, getNodeValue, getParent, getPointerByID, getPointerByKey, getRootNode, getValue, getValuePointer, handle, handle, isAttribute, isDefaultNamespace, isLanguage, isNode, isRoot, namespaceIterator, namespacePointer, newChildNodePointer, newNodePointer, printPointerChain, setAttribute, setExceptionHandler, setIndex, setNamespaceResolver, testNode, toString, verify`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### DynamicPropertyPointer

    public DynamicPropertyPointer(NodePointer parent, DynamicPropertyHandler handler)
    Constructs a new DynamicPropertyPointer.
    Parameters:
      `parent` - pointer
      `handler` - DynamicPropertyHandler

- ## Method Details

  - ### asPath

    public String asPath()
    Description copied from class: `NodePointer`
    Returns an XPath that maps to this Pointer.
    Specified by:
      `asPath` in interface `Pointer`
    Overrides:
      `asPath` in class `NodePointer`
    Returns:
      String XPath expression

  - ### createPath

    public NodePointer createPath(JXPathContext context)
    Description copied from class: `NodePointer`
    Called by a child pointer when it needs to create a parent object. Must create an object described by this pointer and return a new pointer that properly describes the new object.
    Overrides:
      `createPath` in class `PropertyPointer`
    Parameters:
      `context` - the owning JXPathContext
    Returns:
      created NodePointer

  - ### createPath

    public NodePointer createPath(JXPathContext context, Object value)
    Description copied from class: `NodePointer`
    Called directly by JXPathContext. Must create path and set value.
    Overrides:
      `createPath` in class `PropertyPointer`
    Parameters:
      `context` - the owning JXPathContext
      `value` - the new value to set
    Returns:
      created NodePointer

  - ### getBaseValue

    public Object getBaseValue()
    Returns the value of the property, not an element of the collection represented by the property, if any.
    Specified by:
      `getBaseValue` in class `NodePointer`
    Returns:
      Object

  - ### getImmediateNode

    public Object getImmediateNode()
    If index == WHOLE_COLLECTION, the value of the property, otherwise the value of the index'th element of the collection represented by the property. If the property is not a collection, index should be zero and the value will be the property itself.
    Overrides:
      `getImmediateNode` in class `PropertyPointer`
    Returns:
      Object

  - ### getPropertyCount

    public int getPropertyCount()
    Number of the DP object's properties.
    Specified by:
      `getPropertyCount` in class `PropertyPointer`
    Returns:
      int

  - ### getPropertyIndex

    public int getPropertyIndex()
    Index of the currently selected property in the list of all properties sorted alphabetically.
    Overrides:
      `getPropertyIndex` in class `PropertyPointer`
    Returns:
      int

  - ### getPropertyName

    public String getPropertyName()
    Gets the name of the currently selected property or "*" if none has been selected.
    Specified by:
      `getPropertyName` in class `PropertyPointer`
    Returns:
      String

  - ### getPropertyNames

    public String[] getPropertyNames()
    Gets the names of all properties, sorted alphabetically.
    Specified by:
      `getPropertyNames` in class `PropertyPointer`
    Returns:
      String[]

  - ### isActualProperty

    protected boolean isActualProperty()
    A dynamic property is always considered actual - all keys are apparently existing with possibly the value of null.
    Specified by:
      `isActualProperty` in class `PropertyPointer`
    Returns:
      boolean

  - ### isContainer

    public boolean isContainer()
    This type of node is auxiliary.
    Overrides:
      `isContainer` in class `NodePointer`
    Returns:
      true

  - ### remove

    public void remove()
    Description copied from class: `NodePointer`
    Remove the node of the object graph this pointer points to.
    Overrides:
      `remove` in class `NodePointer`

  - ### setPropertyIndex

    public void setPropertyIndex(int index)
    Index a property by its index in the list of all properties sorted alphabetically.
    Overrides:
      `setPropertyIndex` in class `PropertyPointer`
    Parameters:
      `index` - to set

  - ### setPropertyName

    public void setPropertyName(String propertyName)
    Select a property by name. If the supplied name is not one of the object's existing properties, it implicitly adds this name to the object's property name list. It does not set the property value though. In order to set the property value, call setValue().
    Specified by:
      `setPropertyName` in class `PropertyPointer`
    Parameters:
      `propertyName` - to set

  - ### setValue

    public void setValue(Object value)
    If index == WHOLE_COLLECTION, change the value of the property, otherwise change the value of the index'th element of the collection represented by the property.
    Specified by:
      `setValue` in interface `Pointer`
    Specified by:
      `setValue` in class `NodePointer`
    Parameters:
      `value` - to set