Class StaticPropertyList


  • public class StaticPropertyList
    extends PropertyList
    A very fast implementation of PropertyList that uses arrays to store the explicit set properties and another array to store cached values.
    • Field Detail

      • explicit

        private final Property[] explicit
      • values

        private final Property[] values
    • Constructor Detail

      • StaticPropertyList

        public StaticPropertyList​(FObj fObjToAttach,
                                  PropertyList parentPropertyList)
        Construct a StaticPropertyList.
        Parameters:
        fObjToAttach - The FObj object.
        parentPropertyList - The parent property list.
    • Method Detail

      • getExplicit

        public Property getExplicit​(int propId)
        Return the value explicitly specified on this FO.
        Specified by:
        getExplicit in class PropertyList
        Parameters:
        propId - The ID of the property whose value is desired.
        Returns:
        The value if the property is explicitly set, otherwise null.
      • putExplicit

        public void putExplicit​(int propId,
                                Property value)
        Set an value defined explicitly on this FO.
        Specified by:
        putExplicit in class PropertyList
        Parameters:
        propId - The ID of the property whose value is desired.
        value - The value of the property to set.
      • get

        public Property get​(int propId,
                            boolean bTryInherit,
                            boolean bTryDefault)
                     throws PropertyException
        Override PropertyList.get() and provides fast caching of previously retrieved property values. Return the property on the current FlowObject. Depending on the passed flags, this will try to compute it based on other properties, or if it is inheritable, to return the inherited value. If all else fails, it returns the default value.
        Overrides:
        get in class PropertyList
        Parameters:
        propId - the property's id
        bTryInherit - true for inherited properties, or when the inherited value is needed
        bTryDefault - true when the default value may be used as a last resort
        Returns:
        the property
        Throws:
        PropertyException - if there is a problem evaluating the property