public class IntersectedPropertySet extends java.lang.Object implements PropertySet
Constructor and Description |
---|
IntersectedPropertySet(java.util.List<? extends PropertySet> propertySets) |
Modifier and Type | Method and Description |
---|---|
boolean |
contains(Property<?> prop) |
<T> T |
get(Property<T> prop)
Returns the intersected value, or null if the values don't match or the property isn't present.
|
int |
getCount()
The number of properties contained in this PropertySet
|
protected java.util.Set<Property<?>> |
getIntersectableProperties() |
<T> T |
getOrDefault(Property<T> prop) |
<T> T |
getOrElse(Property<T> prop,
T value)
Get the value for a given
Property , or else fall back to value if it's not present. |
java.util.Collection<Property<?>> |
getProperties() |
java.util.List<PropertyValue> |
getValues() |
protected java.util.List<? extends PropertySet> |
internalObjects() |
protected <T> T |
intersect(Property<T> prop,
T fallback) |
boolean |
isExtended(Property<?> prop)
Returns whether this property set contains a value for the prop, and the prop was actually inherited.
|
boolean |
isInherited(Property<?> prop)
Indicates whether the property was inherited from a parent type.
|
protected <T> boolean |
isPropSubsectable(Property<T> prop) |
java.util.Iterator<PropertyValue> |
iterator() |
void |
merge(PropertySet other)
Merges the values from other into this set.
|
void |
refresh()
Recalculates the intersection.
|
void |
remove(Property<?> prop) |
<T> void |
set(Property<T> prop,
T value) |
void |
set(PropertyValue propValue) |
public IntersectedPropertySet(java.util.List<? extends PropertySet> propertySets)
public void refresh()
protected java.util.List<? extends PropertySet> internalObjects()
public java.util.Iterator<PropertyValue> iterator()
iterator
in interface java.lang.Iterable<PropertyValue>
public <T> T get(Property<T> prop)
get
in interface PropertyValueSource
public boolean contains(Property<?> prop)
contains
in interface PropertyValueSource
public <T> T getOrDefault(Property<T> prop)
getOrDefault
in interface PropertyValueSource
Property.getDefaultValue()
if not present.public <T> T getOrElse(Property<T> prop, T value)
PropertyValueSource
Property
, or else fall back to value if it's not present.getOrElse
in interface PropertyValueSource
value
- The value to default to if property isn't present.protected <T> T intersect(Property<T> prop, T fallback)
protected <T> boolean isPropSubsectable(Property<T> prop)
public <T> void set(Property<T> prop, T value)
set
in interface MutablePropertyValueSource
public void set(PropertyValue propValue)
set
in interface MutablePropertyValueSource
public void remove(Property<?> prop)
remove
in interface MutablePropertyValueSource
public int getCount()
PropertySet
getCount
in interface PropertySet
public java.util.Collection<Property<?>> getProperties()
getProperties
in interface PropertySet
public java.util.List<PropertyValue> getValues()
getValues
in interface PropertySet
public boolean isExtended(Property<?> prop)
PropertyValueSource
isExtended
in interface PropertyValueSource
public boolean isInherited(Property<?> prop)
PropertyValueSource
isInherited
in interface PropertyValueSource
public void merge(PropertySet other)
MutablePropertyValueSource
merge
in interface MutablePropertyValueSource
protected java.util.Set<Property<?>> getIntersectableProperties()