Class PropertyNode

  • All Implemented Interfaces:
    IGosuObject

    public class PropertyNode
    extends Object
    implements IGosuObject
    A node in a tree representation of an underlying PropertySet. Any compound names, such as a.b.c and a.b.d, in the keys of the property set are split into a tree representation. In the a.b.c/a.b.d example there would be a property node for a, with a child node b with two further leaf children c and d.
    • Method Detail

      • getFullName

        public String getFullName()
        The full property name, for example a.b
        Returns:
        a non null name, which must be one or more valid Gosu identifiers separated by periods
      • getRelativeName

        public String getRelativeName()
        The last part of the property name, for example b if the full name is a.b
        Returns:
        a non null name, which must be a valid Gosu identifier
      • getTypeName

        public String getTypeName()
        Return the name that should be used for the type based on this property node
        Returns:
        a non null type name
      • getIntrinsicType

        public IType getIntrinsicType()
        Return the intrinsic type based on this property node
        Specified by:
        getIntrinsicType in interface IGosuObject
        Returns:
        intrinsic type
      • hasValue

        public boolean hasValue()
        Does this property node have a value in the underlying PropertySet
        Returns:
        true if the node has an underlying value, false otherwise
      • getValue

        public String getValue()
        Return the value for this property as given by the underlying PropertySet
        Returns:
        the property value, or null if it doesn't have one
      • isLeaf

        public boolean isLeaf()
        Is this a leaf node - that is, does it have no children?
        Returns:
        true if this node has no children, false otherwise
      • isRoot

        public boolean isRoot()
        Is this the root of a property node tree?
        Returns:
        true if this is the root, false otherwise
      • getChildren

        public List<PropertyNode> getChildren()
        The direct children of this property node
        Returns:
        a non null, though possibly empty, list of children
      • getChildValue

        public String getChildValue​(String name)
        Return the value for the named child property; this is just like doing lookup on the underlying PropertySet except that the name is prefixed with the full name of this property. For example if this property is a then getting the child value b.c will return the value of a.b.c in the original property set
        Parameters:
        name - non null name of child property
        Returns:
        the child property value, or null if there is no such child property
      • toString

        public String toString()
        If this node has a property value, returns the value of that property. Otherwise returns a string describing the property name.
        Specified by:
        toString in interface IGosuObject
        Overrides:
        toString in class Object
      • getPath

        public String getPath()