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 Details

  • 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

      @CheckForNull public Collection<String> getHiddenProperties()
    • getID

      public String getID()
      Get ID
      Returns:
      ID of property.
    • sGetID

      @CheckForNull public String sGetID()
      Property manager simple ID getter (does not generate ID if it is not present).
      Returns:
      property manager ID or null
    • getParentPropertyManager

      @CheckForNull public PropertyManager getParentPropertyManager()
    • setParentPropertyManager

      public void setParentPropertyManager(@CheckForNull PropertyManager parentPropertyManager)
      Set parent Property Manager.
      Parameters:
      parentPropertyManager - parent manager
    • setParentPropertyManagerOnly

      public void setParentPropertyManagerOnly(@CheckForNull PropertyManager parentPropertyManager)
      Set parent Property Manager.
      Parameters:
      parentPropertyManager - parent manager
    • getProperty

      @CheckForNull public Property getProperty(String id)
      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

      @CheckForNull public Property getPropertyByName(String name)
      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

      public void addProperty(Property prop)
      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

      public void addProperties(Collection<Property> properties)
      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

      public void removeProperty(Property prop)
      Removes the property from the property manager.
      Parameters:
      prop - the property.
    • removeProperty

      public void removeProperty(String id)
      Removes the property with given ID from the property manager.
      Parameters:
      id - the property's ID.
    • getProperties

      public List<Property> getProperties()
      Returns the list of the properties.
      Returns:
      all properties from this manager and parent managers.
    • getOwnProperties

      public List<Property> getOwnProperties()
      Returns the list of the properties.
      Returns:
      all properties only from this manager. List is unmodifiable.
    • setProperties

      public void setProperties(List<Property> prop)
      Sets the list of the properties.
      Parameters:
      prop - the list of new properties for this manager.
    • getOrderedProperties

      public List<Property> getOrderedProperties()
      Returns list of properties. Properties are stored in list no sorting needed
      Returns:
      list of properties
    • clone

      public PropertyManager clone()
      Clones the manager. Does deep clone - all properties will be cloned too.
      Overrides:
      clone in class Object
      Returns:
      the cloned manager.
    • cloneProperties

      public static List<Property> cloneProperties(List<Property> properties)
    • makeCopy

      public PropertyManager makeCopy()
      Make copy of property.
      Returns:
      Property Manager.
    • apply

      public void apply(PropertyManager manager)
      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

      public void apply(Collection<Property> properties)
      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

      public void applyValues(Collection<Property> col)
      Applies properties values only from given list.
      Parameters:
      col - collection of properties to be applied to this.
    • leaveTheSame

      public void leaveTheSame(PropertyManager manager)
      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

      public void leaveTheSame(PropertyManager manager, boolean makeUndefined, boolean mergeSources)
      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

      protected void mergeProperties(Property currentManagerProperty, Property property, boolean makeUndefined, boolean mergeSources)
    • mergePropertyByType

      protected void mergePropertyByType(Property currentProperty, Property otherProperty)
    • mergeBooleanProperty

      protected void mergeBooleanProperty(BooleanProperty currentProp, BooleanProperty otherProp)
    • mergeElementProperty

      protected void mergeElementProperty(ElementProperty currentProp, ElementProperty otherProp)
    • mergeChoiceProperty

      protected void mergeChoiceProperty(ChoiceProperty currentProperty, ChoiceProperty otherProperty)
    • setName

      public void setName(String name)
      Sets name of the manager.
      Parameters:
      name - the new name.
    • getName

      public String getName()
      Returns name of the property manager.
      Returns:
      the name of the property manager.
    • distinct

      public List<Property> distinct(List<Property> properties)
      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

      public static boolean isUndefinedStateOrValuesDiffer(Property first, Property second)
    • distinct

      public void distinct(PropertyManager man)
      Sets to itself properties those are not equal to the given properties.
      Parameters:
      man - the manager with given properties.
    • propertyChange

      public void propertyChange(PropertyChangeEvent e)
      Listens to PropertyChangeEvents. Takes new value from the event(new value must be a list of properties) and sets these properties to itself.
      Specified by:
      propertyChange in interface PropertyChangeListener
      Parameters:
      e - the property change event.
    • accept

      public void accept(PropertyVisitor visitor) throws Exception
      Accepts the given visitor.
      Specified by:
      accept in interface PropertyVisitorAcceptor
      Parameters:
      visitor - the PropertyVisitor.
      Throws:
      Exception
    • getClassType

      public String getClassType()
      Returns property class type.
      Specified by:
      getClassType in interface PropertyVisitorAcceptor
      Returns:
      PropertyID.PROPERTY_MANAGER
      See Also:
    • append

      public void append(PropertyManager manager)
      Adds not existing properties from given manager to itself. The properties existence is checked by property ID.
      Parameters:
      manager - the manager with properties.
    • append

      public void append(PropertyManager manager, boolean makeUndefined, boolean mergeSources)
      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

      public void append(List<Property> properties)
      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

      public void append(List<Property> properties, boolean makeUndefined, boolean mergeSources)
      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

      public String toString()
      Returns info used for debug.
      Overrides:
      toString in class Object
      Returns:
      info for debug
    • shareProperty

      public void shareProperty(Property prop)
      Makes given property shared form parent PropertyManager. Value changed in parent will affect property in this property manager.
      Parameters:
      prop - property to share.
    • makeOwnProperty

      public void makeOwnProperty(Property prop)
      Makes given property as own property even if property with such id is in parent (makes property not shared)
      Parameters:
      prop - property
    • hideParentProperty

      public void hideParentProperty(String propertyID)
      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

      public boolean isHiddenParentProperty(String propertyID)
      Check if property with a given ID is hidden parent property
      Parameters:
      propertyID - property ID
    • showParentProperty

      public void showParentProperty(String propertyID)
      Show parent property.
      Parameters:
      propertyID - property ID
    • setID

      public void setID(@CheckForNull String id)
      Sets id for this property manager.
      Parameters:
      id - new id of this property manager.
    • getStyle

      @CheckForNull public Style getStyle()
      Get property style.
      Returns:
      Returns the style.
    • setStyle

      public void setStyle(@CheckForNull Style style)
      Set style.
      Parameters:
      style - The style to set.
    • setPropertyEnableMap

      public void setPropertyEnableMap(String propertyId, Object[][] map)
      Set Property Enable Map
      Parameters:
      propertyId - Property id.
      map - map
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener listener)
      Adds PropertyChangeListener to the listeners list. Each listeners receives OWN_PROPERTY_ADDED and OWN_PROPERTY_REMOVED event types.
      Parameters:
      listener - the PropertyChangeListener to be added
      See Also:
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener listener)
      Removes PropertyChangeListener from the listeners list. Each listeners receives OWN_PROPERTY_ADDED and OWN_PROPERTY_REMOVED event types.
      Parameters:
      listener - the PropertyChangeListener to be removed
      See Also:
    • equalsTo

      public boolean equalsTo(PropertyManager given)
    • generateDefaultDescriptionID

      public static void generateDefaultDescriptionID(PropertyManager manager)
    • generateNullDescriptionID

      public static void generateNullDescriptionID(PropertyManager manager)
    • equalsWithValues

      public boolean equalsWithValues(PropertyManager pm, @CheckForNull Set<String> ids)
      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

      public void removeProperty(Collection<String> propertyIDs)
      Removes all properties with given ids.
      Parameters:
      propertyIDs - ids of the properties to remove from the manager.
    • retainProperties

      public void retainProperties(Collection<String> ids)
      Removes all properties except the the ones with given ids.
      Parameters:
      ids - ids of the properties to leave in the manager.
    • isTheSame

      public boolean isTheSame(PropertyManager manager)
      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)