Class AbstractExtendedPropertySet<T extends PropertySet>

java.lang.Object
com.inductiveautomation.ignition.common.config.AbstractExtendedPropertySet<T>
All Implemented Interfaces:
Countable, Extendable<PropertySet>, Mergable<PropertySet>, MutablePropertyValueSource, PropertySet, PropertyValueSource, Serializable, Iterable<PropertyValue>
Direct Known Subclasses:
BoundExtendedPropertySet, ExtendedPropertySet

public abstract class AbstractExtendedPropertySet<T extends PropertySet> extends Object implements PropertySet
See Also:
  • Field Details

  • Constructor Details

    • AbstractExtendedPropertySet

      public AbstractExtendedPropertySet(@Nullable T local, @Nullable 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 Details

    • getLocal

      @Nullable public T getLocal()
    • getParent

      @Nullable public T getParent()
    • setLocal

      public void setLocal(@Nullable T value)
    • setParent

      public void setParent(@Nullable T value)
    • getImpl

      protected <P> P getImpl(Property<P> prop, P orElse, boolean orDefault)
    • get

      public <P> P get(Property<P> prop)
      Description copied from interface: PropertyValueSource
      Retrieves the value of the property, or null if this set doesn't contain that property.
      Specified by:
      get in interface PropertyValueSource
    • getOrDefault

      public <P> P getOrDefault(Property<P> prop)
      Specified by:
      getOrDefault in interface PropertyValueSource
      Returns:
      The value for prop or Property.getDefaultValue() if not present. Can return null if the value is null.
    • getOrElse

      public <P> P getOrElse(Property<P> property, P 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 <P> P getParentProperty(Property<P> prop)
    • instantiateLocal

      protected abstract T instantiateLocal()
    • getOrCreateLocal

      protected T getOrCreateLocal()
    • set

      public <P> void set(Property<P> prop, P value)
      Specified by:
      set in interface MutablePropertyValueSource
    • set

      public void set(PropertyValue propValue)
      Specified by:
      set in interface MutablePropertyValueSource
    • setImpl

      protected void setImpl(Property prop, Object val)
    • remove

      public void remove(Property<?> prop)
      Specified by:
      remove in interface MutablePropertyValueSource
    • contains

      public boolean contains(Property<?> prop)
      Specified by:
      contains in interface PropertyValueSource
      Returns:
      True if the source contains a value for prop.
    • getCount

      public int getCount()
      Specified by:
      getCount in interface Countable
    • getProperties

      public Collection<Property<?>> getProperties()
      Specified by:
      getProperties in interface PropertyValueSource
    • iterator

      @Nonnull public Iterator<PropertyValue> iterator()
      Specified by:
      iterator in interface 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 String toString()
      Overrides:
      toString in class 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