Class IntersectedPropertySet
- java.lang.Object
- 
- com.inductiveautomation.ignition.common.config.IntersectedPropertySet
 
- 
- All Implemented Interfaces:
- Countable,- Extendable<PropertySet>,- Mergable<PropertySet>,- MutablePropertyValueSource,- PropertySet,- PropertyValueSource,- java.io.Serializable,- java.lang.Iterable<PropertyValue>
 - Direct Known Subclasses:
- IntersectedBoundPropertySet,- IntersectedTagConfig
 
 public class IntersectedPropertySet extends java.lang.Object implements PropertySet Represents an intersection of PropertySets. Modification operations happen on all underlying sets. Functions such as the iterator, contains, and getProperties only apply to properties that intersect cleanly (in other words, are the same across all sets).The class calculates the intersectable properties on construction, so changes to the underlying PropertySets will not be visible unless refresh()is called. Changes made through this class, however, are tracked, so it won't normally be necessary to callrefresh().- See Also:
- Serialized Form
 
- 
- 
Field Summary- 
Fields inherited from interface com.inductiveautomation.ignition.common.config.PropertySetEMPTY
 
- 
 - 
Constructor SummaryConstructors Constructor Description IntersectedPropertySet(java.util.List<? extends PropertySet> propertySets)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontains(Property<?> prop)<T> Tget(Property<T> prop)Returns the intersected value, or null if the values don't match or the property isn't present.intgetCount()protected java.util.Set<Property<?>>getIntersectableProperties()<T> TgetOrDefault(Property<T> prop)<T> TgetOrElse(Property<T> prop, T value)Get the value for a givenProperty, or else fall back to value if it's not present.java.util.Collection<Property<?>>getProperties()java.util.List<PropertyValue>getValues()Returns the opaque PropertyValue objects.protected java.util.List<? extends PropertySet>internalObjects()protected <T> Tintersect(Property<T> prop, boolean orElse, T elseVal, T fallback)booleanisExtended(Property<?> prop)Returns whether this property set contains a value for the prop, and the prop was actually inherited.booleanisInherited(Property<?> prop)Indicates whether the property was inherited from a parent type.protected <T> booleanisPropIntersectable(Property<T> prop)java.util.Iterator<PropertyValue>iterator()voidmerge(PropertySet other, boolean localOnly)Merges the values from other collection into this one.protected voidmodifyPossibleProps(Property<?> prop, boolean remove)voidrefresh()Recalculates the intersection.voidremove(Property<?> prop)<T> voidset(Property<T> prop, T value)voidset(PropertyValue propValue)protected voidsetImpl(PropertyValue propValue)- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface com.inductiveautomation.ignition.common.config.PropertySetextend, getExtension, newDefaultInstance, newExtension
 - 
Methods inherited from interface com.inductiveautomation.ignition.common.config.PropertyValueSourcegetNonNull, getNonNull
 
- 
 
- 
- 
- 
Constructor Detail- 
IntersectedPropertySetpublic IntersectedPropertySet(java.util.List<? extends PropertySet> propertySets) 
 
- 
 - 
Method Detail- 
refreshpublic void refresh() Recalculates the intersection. Should be called when underlying data changes. Modifications to the property sets through this class do not require refresh() to be called, they are tracked separately.
 - 
internalObjectsprotected java.util.List<? extends PropertySet> internalObjects() 
 - 
iteratorpublic java.util.Iterator<PropertyValue> iterator() - Specified by:
- iteratorin interface- java.lang.Iterable<PropertyValue>
 
 - 
getpublic <T> T get(Property<T> prop) Returns the intersected value, or null if the values don't match or the property isn't present.- Specified by:
- getin interface- PropertyValueSource
 
 - 
containspublic boolean contains(Property<?> prop) - Specified by:
- containsin interface- PropertyValueSource
- Returns:
- True if the source contains a value for prop.
 
 - 
getOrDefaultpublic <T> T getOrDefault(Property<T> prop) - Specified by:
- getOrDefaultin interface- PropertyValueSource
- Returns:
- The value for prop or Property.getDefaultValue()if not present. Can return null if the value is null.
 
 - 
getOrElsepublic <T> T getOrElse(Property<T> prop, T value) Description copied from interface:PropertyValueSourceGet the value for a givenProperty, or else fall back to value if it's not present.- Specified by:
- getOrElsein interface- PropertyValueSource
- Parameters:
- prop- The- Propertyfor 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.
 
 - 
intersectprotected <T> T intersect(Property<T> prop, boolean orElse, T elseVal, T fallback) 
 - 
isPropIntersectableprotected <T> boolean isPropIntersectable(Property<T> prop) 
 - 
modifyPossiblePropsprotected void modifyPossibleProps(Property<?> prop, boolean remove) 
 - 
setpublic <T> void set(Property<T> prop, T value) - Specified by:
- setin interface- MutablePropertyValueSource
 
 - 
setpublic void set(PropertyValue propValue) - Specified by:
- setin interface- MutablePropertyValueSource
 
 - 
setImplprotected void setImpl(PropertyValue propValue) 
 - 
removepublic void remove(Property<?> prop) - Specified by:
- removein interface- MutablePropertyValueSource
 
 - 
getPropertiespublic java.util.Collection<Property<?>> getProperties() - Specified by:
- getPropertiesin interface- PropertyValueSource
 
 - 
getValuespublic java.util.List<PropertyValue> getValues() Description copied from interface:PropertyValueSourceReturns the opaque PropertyValue objects. This can be useful when you want to avoid the strict type checking of the value, and it's important to note that if the property is bound, the value will be a BoundValue. Be very careful about overriding, and make sure to maintain the methodology of using getProperties to iterate and get (or getOrDefault), to get the value, because those are all handled differently by BoundPropertySets, ExtendedPropertySets, etc.- Specified by:
- getValuesin interface- PropertyValueSource
 
 - 
isExtendedpublic boolean isExtended(Property<?> prop) Description copied from interface:PropertySetReturns 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:
- isExtendedin interface- PropertySet
 
 - 
isInheritedpublic boolean isInherited(Property<?> prop) Description copied from interface:PropertySetIndicates whether the property was inherited from a parent type.- Specified by:
- isInheritedin interface- PropertySet
 
 - 
mergepublic void merge(PropertySet other, boolean localOnly) Description copied from interface:MergableMerges the values from other collection into this one. Replaces any currently existing value with those from the other set.- Specified by:
- mergein interface- Mergable<PropertySet>
- Specified by:
- mergein interface- MutablePropertyValueSource
 
 - 
getIntersectablePropertiesprotected java.util.Set<Property<?>> getIntersectableProperties() 
 
- 
 
-