Package com.nomagic.magicdraw.properties
Class PropertyManager
java.lang.Object
com.nomagic.magicdraw.properties.PropertyManager
- All Implemented Interfaces:
PropertyVisitorAcceptor
,PropertyChangeListener
,Cloneable
,EventListener
- Direct Known Subclasses:
ExtendablePropertyManager
@OpenApiAll
public class PropertyManager
extends Object
implements Cloneable, PropertyChangeListener, PropertyVisitorAcceptor
This class is used for managing of the set of the properties. The manager has name. Also manager can
return some property with given property ID.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Identifies the property as "unique".static final String
Identifies type ofPropertyChangeEvent
.static final String
Identifies type ofPropertyChangeEvent
. -
Constructor Summary
ConstructorDescriptionConstructs new property managerPropertyManager
(PropertyManager parentPropertyManager, String name, List<? extends Property> properties) Constructs new property manager.PropertyManager
(String name, List<? extends Property> properties) Constructs new property manager. -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(PropertyVisitor visitor) Accepts the given visitor.void
addProperties
(Collection<Property> properties) Adds the properties to the property manager.void
addProperty
(Property prop) Adds the property to the property manager.void
AddsPropertyChangeListener
to the listeners list.void
append
(PropertyManager manager) Adds not existing properties from given manager to itself.void
append
(PropertyManager manager, boolean makeUndefined, boolean mergeSources) Adds not existing properties from given manager to itself.void
Adds not existing properties from given list to itself.void
Adds not existing properties from given list to itself.void
apply
(PropertyManager manager) Applies properties from given manager.void
apply
(Collection<Property> properties) Applies properties from given list.void
applyValues
(Collection<Property> col) Applies properties values only from given list.clone()
Clones the manager.cloneProperties
(List<Property> properties) void
distinct
(PropertyManager man) Sets to itself properties those are not equal to the given properties.Returns properties those are not equal to the given properties.boolean
equalsTo
(PropertyManager given) boolean
equalsWithValues
(PropertyManager pm, Set<String> ids) Check it equals with given property value.static void
static void
generateNullDescriptionID
(PropertyManager manager) Returns property class type.getID()
Get IDgetName()
Returns name of the property manager.Returns list of properties.Returns the list of the properties.Returns the list of the properties.getProperty
(String id) Returns the property from the properties list with given id.getPropertyByName
(String name) Returns property from the properties list with given name.getStyle()
Get property style.void
hideParentProperty
(String propertyID) Hides given property with id from parent property manager.boolean
isFrozen()
boolean
isHiddenParentProperty
(String propertyID) Check if property with a given ID is hidden parent propertyboolean
isTheSame
(PropertyManager manager) Check if given property manager is the same as current.static boolean
isUndefinedStateOrValuesDiffer
(Property first, Property second) void
leaveTheSame
(PropertyManager manager) Removes from this manager all properties those does not exist in the given manager.void
leaveTheSame
(PropertyManager manager, boolean makeUndefined, boolean mergeSources) Removes from this manager all properties those does not exist in the given manager.makeCopy()
Make copy of property.void
makeOwnProperty
(Property prop) Makes given property as own property even if property with such id is in parent (makes property not shared)protected void
mergeBooleanProperty
(BooleanProperty currentProp, BooleanProperty otherProp) protected void
mergeChoiceProperty
(ChoiceProperty currentProperty, ChoiceProperty otherProperty) protected void
mergeElementProperty
(ElementProperty currentProp, ElementProperty otherProp) protected void
mergeProperties
(Property currentManagerProperty, Property property, boolean makeUndefined, boolean mergeSources) protected void
mergePropertyByType
(Property currentProperty, Property otherProperty) void
Listens toPropertyChangeEvents
.void
removeProperty
(Property prop) Removes the property from the property manager.void
removeProperty
(String id) Removes the property with given ID from the property manager.void
removeProperty
(Collection<String> propertyIDs) Removes all properties with given ids.void
RemovesPropertyChangeListener
from the listeners list.void
retainProperties
(Collection<String> ids) Removes all properties except the the ones with given ids.void
setFrozen
(boolean mFrozen) void
Sets id for this property manager.void
Sets name of the manager.void
setParentPropertyManager
(PropertyManager parentPropertyManager) Set parent Property Manager.void
setParentPropertyManagerOnly
(PropertyManager parentPropertyManager) Set parent Property Manager.void
setProperties
(List<Property> prop) Sets the list of the properties.void
setPropertyEnableMap
(String propertyId, Object[][] map) Set Property Enable Mapvoid
Set style.sGetID()
Property manager simple ID getter (does not generate ID if it is not present).void
shareProperty
(Property prop) Makes given property shared form parent PropertyManager.void
showParentProperty
(String propertyID) Show parent property.toString()
Returns info used for debug.
-
Field Details
-
OWN_PROPERTY_ADDED
Identifies type ofPropertyChangeEvent
. This type of even is fired when particular property is added toPropertyManager
own properties collection. It may be triggered byaddProperty(Property)
ormakeOwnProperty(Property)
method call.- See Also:
-
OWN_PROPERTY_REMOVED
Identifies type ofPropertyChangeEvent
. This type of even is fired when particular property is removed fromPropertyManager
own properties collection. It may be triggered byremoveProperty(Property)
orshareProperty(Property)
method call.- See Also:
-
IS_UNIQUE
Identifies the property as "unique". Is set viaProperty.setAdditionalProperty(String, Object)
:property.setAdditionalProperty(PropertyManager.IS_UNIQUE, true);
Unique property will always be removed when callingleaveTheSame(PropertyManager, boolean, boolean)
method.- See Also:
-
-
Constructor Details
-
PropertyManager
public PropertyManager()Constructs new property manager -
PropertyManager
public PropertyManager(@CheckForNull String name, @CheckForNull List<? extends Property> properties) Constructs new property manager.- Parameters:
name
- the name of the manager.properties
- the list of properties.
-
PropertyManager
public PropertyManager(@CheckForNull PropertyManager parentPropertyManager, @CheckForNull String name, @CheckForNull List<? extends Property> properties) Constructs new property manager.- Parameters:
name
- the name of the manager.properties
- the list of properties.parentPropertyManager
- parent property manager which can provides properties can be shared in this manager.
-
-
Method Details
-
getHiddenProperties
-
getID
Get ID- Returns:
- ID of property.
-
sGetID
Property manager simple ID getter (does not generate ID if it is not present).- Returns:
- property manager ID or
null
-
getParentPropertyManager
-
setParentPropertyManager
Set parent Property Manager.- Parameters:
parentPropertyManager
- parent manager
-
setParentPropertyManagerOnly
Set parent Property Manager.- Parameters:
parentPropertyManager
- parent manager
-
getProperty
Returns the property from the properties list with given id.- Parameters:
id
- the ID of property.- Returns:
- property with given ID. Null if such property is not added into the manager.
-
getPropertyByName
Returns property from the properties list with given name.- Parameters:
name
- name of the property- Returns:
- property with given name. Null if such property is not added into the manager.
-
addProperty
Adds the property to the property manager. If property with such ID was already added, the old property is removed. Checking if property with same id already exists in parent property manager, and they value is the same do nothing- Parameters:
prop
- the new property.
-
addProperties
Adds the properties to the property manager. If property with such ID was already added, the old property is removed. Checking if property with same id already exists in parent property manager, and they value is the same do nothing- Parameters:
properties
- the new properties.
-
removeProperty
Removes the property from the property manager.- Parameters:
prop
- the property.
-
removeProperty
Removes the property with given ID from the property manager.- Parameters:
id
- the property's ID.
-
getProperties
Returns the list of the properties.- Returns:
- all properties from this manager and parent managers.
-
getOwnProperties
Returns the list of the properties.- Returns:
- all properties only from this manager. List is unmodifiable.
-
setProperties
Sets the list of the properties.- Parameters:
prop
- the list of new properties for this manager.
-
getOrderedProperties
Returns list of properties. Properties are stored in list no sorting needed- Returns:
- list of properties
-
clone
Clones the manager. Does deep clone - all properties will be cloned too. -
cloneProperties
-
makeCopy
Make copy of property.- Returns:
- Property Manager.
-
apply
Applies properties from given manager. Property from given manager will be replaced with property from this manager if this manager: 1.has property with such ID. 2.state of this property is not UNDEFINED.- Parameters:
manager
- manager which properties will be applied to this.- See Also:
-
apply
Applies properties from given list. Property from given list will be replaced with property from this manager if this manager: 1.has property with such ID. 2.state of this property is not UNDEFINED.- Parameters:
properties
- collection of properties to be applied to this.
-
applyValues
Applies properties values only from given list.- Parameters:
col
- collection of properties to be applied to this.
-
leaveTheSame
Removes from this manager all properties those does not exist in the given manager. Property will be removed if given manager does not have property with the same ID. Existing property in this manager will be set to undefined state if property in the given manager has different value.- Parameters:
manager
- the given manager.
-
leaveTheSame
Removes from this manager all properties those does not exist in the given manager. Property will be removed if given manager does not have property with the same ID and the same value.- Parameters:
manager
- the given manager.makeUndefined
- existing property in this manager will be set to undefined state if property in given manager has different value.mergeSources
- if true, properties sources will be merged
-
mergeProperties
-
mergePropertyByType
-
mergeBooleanProperty
-
mergeElementProperty
-
mergeChoiceProperty
-
setName
Sets name of the manager.- Parameters:
name
- the new name.
-
getName
Returns name of the property manager.- Returns:
- the name of the property manager.
-
distinct
Returns properties those are not equal to the given properties.- Parameters:
properties
- the given properties.- Returns:
- not equal properties to the given properties or empty list.
-
isUndefinedStateOrValuesDiffer
-
distinct
Sets to itself properties those are not equal to the given properties.- Parameters:
man
- the manager with given properties.
-
propertyChange
Listens toPropertyChangeEvents
. Takes new value from the event(new value must be a list of properties) and sets these properties to itself.- Specified by:
propertyChange
in interfacePropertyChangeListener
- Parameters:
e
- the property change event.
-
accept
Accepts the given visitor.- Specified by:
accept
in interfacePropertyVisitorAcceptor
- Parameters:
visitor
- the PropertyVisitor.- Throws:
Exception
-
getClassType
Returns property class type.- Specified by:
getClassType
in interfacePropertyVisitorAcceptor
- Returns:
- PropertyID.PROPERTY_MANAGER
- See Also:
-
append
Adds not existing properties from given manager to itself. The properties existence is checked by property ID.- Parameters:
manager
- the manager with properties.
-
append
Adds not existing properties from given manager to itself. The properties existence is checked by property ID.- Parameters:
manager
- the manager with properties.makeUndefined
- existing property in this manager will be set to undefined state if property in given manager has different value.mergeSources
- if true, properties sources will be merged
-
append
Adds not existing properties from given list to itself. The properties existence is checked by property ID.- Parameters:
properties
- the list of given properties.
-
append
Adds not existing properties from given list to itself. The properties existence is checked by property ID.- Parameters:
properties
- the list of given properties.makeUndefined
- existing property in this manager will be set to undefined state if property in given manager has different value.mergeSources
- if true, properties sources will be merged
-
toString
Returns info used for debug. -
makeOwnProperty
Makes given property as own property even if property with such id is in parent (makes property not shared)- Parameters:
prop
- property
-
hideParentProperty
Hides given property with id from parent property manager. Not that if property with this id is in this property manager nothing will be changed.- Parameters:
propertyID
- property ID to hide from parent manager;
-
isHiddenParentProperty
Check if property with a given ID is hidden parent property- Parameters:
propertyID
- property ID
-
showParentProperty
Show parent property.- Parameters:
propertyID
- property ID
-
setID
Sets id for this property manager.- Parameters:
id
- new id of this property manager.
-
getStyle
Get property style.- Returns:
- Returns the style.
-
setStyle
Set style.- Parameters:
style
- The style to set.
-
setPropertyEnableMap
Set Property Enable Map- Parameters:
propertyId
- Property id.map
- map
-
addPropertyChangeListener
AddsPropertyChangeListener
to the listeners list. Each listeners receivesOWN_PROPERTY_ADDED
andOWN_PROPERTY_REMOVED
event types.- Parameters:
listener
- thePropertyChangeListener
to be added- See Also:
-
removePropertyChangeListener
RemovesPropertyChangeListener
from the listeners list. Each listeners receivesOWN_PROPERTY_ADDED
andOWN_PROPERTY_REMOVED
event types.- Parameters:
listener
- the PropertyChangeListener to be removed- See Also:
-
equalsTo
-
generateDefaultDescriptionID
-
generateNullDescriptionID
-
equalsWithValues
Check it equals with given property value.- Parameters:
pm
- The given property value.ids
- properties IDs to check (may be null - to check all properties)- Returns:
- boolean
-
removeProperty
Removes all properties with given ids.- Parameters:
propertyIDs
- ids of the properties to remove from the manager.
-
retainProperties
Removes all properties except the the ones with given ids.- Parameters:
ids
- ids of the properties to leave in the manager.
-
isTheSame
Check if given property manager is the same as current. Managers are the same if names are equal and parent managers are equal- Parameters:
manager
- manager- Returns:
- true if the same
-
isFrozen
public boolean isFrozen() -
setFrozen
public void setFrozen(boolean mFrozen)
-