Class NullPropertyPointer

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Comparable, Pointer

    public class NullPropertyPointer
    extends PropertyPointer
    Version:
    $Revision: 652884 $ $Date: 2008-05-02 15:02:00 -0500 (Fri, 02 May 2008) $
    Author:
    Dmitri Plotnikov
    See Also:
    Serialized Form
    • Field Detail

      • propertyName

        private java.lang.String propertyName
      • byNameAttribute

        private boolean byNameAttribute
    • Constructor Detail

      • NullPropertyPointer

        public NullPropertyPointer​(NodePointer parent)
        Create a new NullPropertyPointer.
        Parameters:
        parent - pointer
    • Method Detail

      • getLength

        public int getLength()
        Description copied from class: PropertyPointer
        If the property contains a collection, then the length of that collection, otherwise - 1.
        Overrides:
        getLength in class PropertyPointer
        Returns:
        int length
      • getBaseValue

        public java.lang.Object getBaseValue()
        Description copied from class: NodePointer
        Returns the value represented by the pointer before indexing. So, if the node represents an element of a collection, this method returns the collection itself.
        Specified by:
        getBaseValue in class NodePointer
        Returns:
        Object value
      • getImmediateNode

        public java.lang.Object getImmediateNode()
        Description copied from class: NodePointer
        Returns the object the pointer points to; does not convert it to a "canonical" type.
        Overrides:
        getImmediateNode in class PropertyPointer
        Returns:
        Object node
      • isLeaf

        public boolean isLeaf()
        Description copied from class: NodePointer
        If true, this node does not have children
        Overrides:
        isLeaf in class PropertyPointer
        Returns:
        boolean
      • getValuePointer

        public NodePointer getValuePointer()
        Description copied from class: NodePointer
        If this pointer manages a transparent container, like a variable, this method returns the pointer to the contents. Only an auxiliary (non-node) pointer can (and should) return a value pointer other than itself. Note that you probably don't want to override getValuePointer() directly. Override the getImmediateValuePointer() method instead. The getValuePointer() method is calls getImmediateValuePointer() and, if the result is not this, invokes getValuePointer() recursively. The idea here is to open all nested containers. Let's say we have a container within a container within a container. The getValuePointer() method should then open all those containers and return the pointer to the ultimate contents. It does so with the above recursion.
        Overrides:
        getValuePointer in class NodePointer
        Returns:
        NodePointer
      • isActualProperty

        protected boolean isActualProperty()
        Description copied from class: PropertyPointer
        Learn whether this pointer references an actual property.
        Specified by:
        isActualProperty in class PropertyPointer
        Returns:
        true if actual
      • isActual

        public boolean isActual()
        Description copied from class: NodePointer
        An actual pointer points to an existing part of an object graph, even if it is null. A non-actual pointer represents a part that does not exist at all. For instance consider the pointer "/address/street". If both address and street are not null, the pointer is actual. If address is not null, but street is null, the pointer is still actual. If address is null, the pointer is not actual. (In JavaBeans) if address is not a property of the root bean, a Pointer for this path cannot be obtained at all - actual or otherwise.
        Overrides:
        isActual in class PropertyPointer
        Returns:
        boolean
      • isContainer

        public boolean isContainer()
        Description copied from class: NodePointer
        If true, this node is auxiliary and can only be used as an intermediate in the chain of pointers.
        Overrides:
        isContainer in class NodePointer
        Returns:
        boolean
      • setValue

        public void setValue​(java.lang.Object value)
        Description copied from class: NodePointer
        Converts the value to the required type and changes the corresponding object to that value.
        Specified by:
        setValue in interface Pointer
        Specified by:
        setValue in class NodePointer
        Parameters:
        value - the value to set
      • 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,
                                      java.lang.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
      • createChild

        public NodePointer createChild​(JXPathContext context,
                                       QName name,
                                       int index)
        Description copied from class: NodePointer
        Called by a child pointer when it needs to create a parent object for a non-existent collection element. It may have to expand the collection, then create an element object and return a new pointer describing the newly created element.
        Overrides:
        createChild in class PropertyPointer
        Parameters:
        context - the owning JXPathCOntext
        name - the QName at which a child should be created
        index - child index.
        Returns:
        created NodePointer
      • createChild

        public NodePointer createChild​(JXPathContext context,
                                       QName name,
                                       int index,
                                       java.lang.Object value)
        Description copied from class: NodePointer
        Called by a child pointer if that child needs to assign the value supplied in the createPath(context, value) call to a non-existent node. This method may have to expand the collection in order to assign the element.
        Overrides:
        createChild in class PropertyPointer
        Parameters:
        context - the owning JXPathCOntext
        name - the QName at which a child should be created
        index - child index.
        value - node value to set
        Returns:
        created NodePointer
      • setPropertyName

        public void setPropertyName​(java.lang.String propertyName)
        Description copied from class: PropertyPointer
        Set the property name.
        Specified by:
        setPropertyName in class PropertyPointer
        Parameters:
        propertyName - property name to set.
      • setNameAttributeValue

        public void setNameAttributeValue​(java.lang.String attributeValue)
        Set the name attribute.
        Parameters:
        attributeValue - value to set
      • isCollection

        public boolean isCollection()
        Description copied from class: NodePointer
        Returns true if the value of the pointer is an array or a Collection.
        Overrides:
        isCollection in class PropertyPointer
        Returns:
        boolean
      • getPropertyNames

        public java.lang.String[] getPropertyNames()
        Description copied from class: PropertyPointer
        Get the names of the included properties.
        Specified by:
        getPropertyNames in class PropertyPointer
        Returns:
        String[]
      • asPath

        public java.lang.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
      • createBadFactoryException

        private JXPathAbstractFactoryException createBadFactoryException​(AbstractFactory factory)
        Create a "bad factory" JXPathAbstractFactoryException for the specified AbstractFactory.
        Parameters:
        factory - AbstractFactory
        Returns:
        JXPathAbstractFactoryException