Class AbstractExtendedPropertySet<T extends PropertySet>

    • Constructor Detail

      • AbstractExtendedPropertySet

        public AbstractExtendedPropertySet​(T local,
                                           T parent)
        Use the static function if you want to optionally create this only when necessary.
      • AbstractExtendedPropertySet

        protected AbstractExtendedPropertySet()
        Protected, because only sub classes can set the data.
    • Method Detail

      • getLocal

        public T getLocal()
      • getParent

        public T getParent()
      • setLocal

        public void setLocal​(T value)
      • setParent

        public void setParent​(T value)
      • getImpl

        protected <T> T getImpl​(Property<T> prop,
                                T orElse,
                                boolean orDefault)
      • getOrElse

        public <T> T getOrElse​(Property<T> property,
                               T value)
        Description copied from interface: PropertyValueSource
        Get the value for a given Property, or else fall back to value if it's not present.
        Specified by:
        getOrElse in interface PropertyValueSource
        Parameters:
        property - The Property for which a value is to be retrieved.
        value - The value to default to if property isn't present.
        Returns:
        The value of property if present, value if not. Can return null if the value is null.
      • getParentProperty

        public <T> T getParentProperty​(Property<T> prop)
      • instantiateLocal

        protected abstract T instantiateLocal()
      • getOrCreateLocal

        protected T getOrCreateLocal()
      • setImpl

        protected void setImpl​(Property prop,
                               java.lang.Object val)
      • iterator

        @Nonnull
        public java.util.Iterator<PropertyValue> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<T extends PropertySet>
      • isExtended

        public boolean isExtended​(Property<?> prop)
        Description copied from interface: PropertySet
        Returns whether this property set contains a value for the prop, and the prop was actually inherited. In other words, this is true if the property is inherited, and an override value is present.
        Specified by:
        isExtended in interface PropertySet
      • isInherited

        public boolean isInherited​(Property<?> prop)
        Description copied from interface: PropertySet
        Indicates whether the property was inherited from a parent type.
        Specified by:
        isInherited in interface PropertySet
      • getExtension

        public PropertySet getExtension()
        Description copied from interface: Extendable
        This returns an object that represents the value only for the most "local" level. That is, this is the difference between the inherited base and the current extension. Complex objects should ensure that trait is true for all aspects of the returned value.
        Specified by:
        getExtension in interface Extendable<T extends PropertySet>
        Specified by:
        getExtension in interface PropertySet
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • merge

        public void merge​(PropertySet other,
                          boolean localDefinitionsOnly)
        Description copied from interface: Mergable
        Merges the values from other collection into this one. Replaces any currently existing value with those from the other set.
        Specified by:
        merge in interface Mergable<T extends PropertySet>
        Specified by:
        merge in interface MutablePropertyValueSource