org.argouml.model.uml.modelmanagement
Class ModelManagementHelper

java.lang.Object
  |
  +--org.argouml.model.uml.modelmanagement.ModelManagementHelper

public class ModelManagementHelper
extends java.lang.Object

Helper class for UML ModelManagement Package. Current implementation is a placeholder.

Since:
ARGO0.11.2

Field Summary
protected static Category cat
           
 
Method Summary
 boolean corresponds(MModelElement obj1, MModelElement obj2)
          Tests if two objects are of the same type, have the same name and the same relative position in the model.
 java.util.Collection getAllModelElementsOfKind(java.lang.Class kind)
          Returns all modelelements found in this namespace and its children that are of some class kind n the projectbrowser model
 java.util.Collection getAllModelElementsOfKind(java.lang.Object nsa, java.lang.Class kind)
          Returns all modelelements found in this namespace and its children that are of some class kind.
 java.util.Collection getAllNamespaces()
          Returns all namespaces found in the projectbrowser model
 java.util.Collection getAllNamespaces(MNamespace ns)
          Returns all namespaces found in this namespace and in its children
 java.util.Collection getAllSubSystems()
          Returns all subsystems found in the projectbrowser model
 java.util.Collection getAllSubSystems(MNamespace ns)
          Returns all subsystems found in this namespace and in its children
 java.util.Collection getAllSurroundingNamespaces(MNamespace ns)
          Returns all surrounding namespaces of some namespace ns.
 MModelElement getCorrespondingElement(MModelElement elem, MModel model)
          Utility function for managing several overlayed models, eg a user model to which elements from some profile models is imported when needed.
 MModelElement getCorrespondingElement(MModelElement elem, MModel model, boolean canCreate)
          Utility function for managing several overlayed models, eg a user model to which elements from some profile models is imported when needed.
 MModelElement getElement(java.util.Vector path, MModelElement root)
           
static ModelManagementHelper getHelper()
          Singleton instance access method.
 java.util.Vector getPath(java.lang.Object element)
          Finds the absolute path of a ModelElement.
 boolean isCyclicOwnership(java.lang.Object parent, java.lang.Object child)
          Checks if a child for some ownershiprelationship (as in a namespace A is owned by a namespace B) is allready in the ownerhship relation.
 void moveElement(MModelElement element, MModel to)
          Deprecated. As of ArgoUml version 0.13.5, You should use getCorrespondingElement(MModelElement,MModel,boolean) instead.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cat

protected static Category cat
Method Detail

getHelper

public static ModelManagementHelper getHelper()
Singleton instance access method.


getAllSubSystems

public java.util.Collection getAllSubSystems()
Returns all subsystems found in the projectbrowser model

Returns:
Collection

getAllSubSystems

public java.util.Collection getAllSubSystems(MNamespace ns)
Returns all subsystems found in this namespace and in its children

Returns:
Collection

getAllNamespaces

public java.util.Collection getAllNamespaces()
Returns all namespaces found in the projectbrowser model

Returns:
Collection

getAllNamespaces

public java.util.Collection getAllNamespaces(MNamespace ns)
Returns all namespaces found in this namespace and in its children

Returns:
Collection

getAllModelElementsOfKind

public java.util.Collection getAllModelElementsOfKind(java.lang.Class kind)
Returns all modelelements found in this namespace and its children that are of some class kind n the projectbrowser model

Returns:
Collection

getAllModelElementsOfKind

public java.util.Collection getAllModelElementsOfKind(java.lang.Object nsa,
                                                      java.lang.Class kind)
Returns all modelelements found in this namespace and its children that are of some class kind.

Parameters:
kind -
Returns:
Collection

getAllSurroundingNamespaces

public java.util.Collection getAllSurroundingNamespaces(MNamespace ns)
Returns all surrounding namespaces of some namespace ns. See section 2.5.3.24 of the UML 1.3 spec for a definition.

Parameters:
ns -
Returns:
Collection

getElement

public MModelElement getElement(java.util.Vector path,
                                MModelElement root)

getPath

public java.util.Vector getPath(java.lang.Object element)
Finds the absolute path of a ModelElement. Ie the name of each namespace starting at the root (the Model) and ending with the name of the element.

The returned Vector implicitly starts at the root (the model) and follows element's chain of owning namespaces back down to element. The first element will thus be the name of the top level namespace below the model, and the last element will be the name of element itself. Note thus that for the model the path will be empty.

Parameters:
element - is the object to resolve the path for.
Returns:
A Vector as described above.
Throws:
java.lang.IllegalArgumentException - if element isn't a ModelElement properly owned by namespaces and a model.

moveElement

public void moveElement(MModelElement element,
                        MModel to)
Deprecated. As of ArgoUml version 0.13.5, You should use getCorrespondingElement(MModelElement,MModel,boolean) instead.

Move a modelelement to a new namespace. The way this is currently implemented this means that ALL modelelements that share the same namespace as the element to be moved are moved. TODO: make this into a copy function TODO: make this only move/copy the asked element

Parameters:
element -
to -

getCorrespondingElement

public MModelElement getCorrespondingElement(MModelElement elem,
                                             MModel model)
Utility function for managing several overlayed models, eg a user model to which elements from some profile models is imported when needed. This version of the function assumes it is permissible to create missing elements. This function may fail and return null eg if some required object doesn't exist in the target model and cannot be copied.

Parameters:
elem - is some element.
model - is the model the returned object shall belong to.
Returns:
An element of the same type and at the same position in the model as elem, or if that would turn out impossible then null.

getCorrespondingElement

public MModelElement getCorrespondingElement(MModelElement elem,
                                             MModel model,
                                             boolean canCreate)
Utility function for managing several overlayed models, eg a user model to which elements from some profile models is imported when needed. This version of the function will only copy objects if canCreate is true, but may then also copy other missing elements. This function may fail and return null eg if the required object doesn't exist in the target model and canCreate is false or some required object doesn't exist in the target model and cannot be copied.

Parameters:
elem - is some element.
model - is the model the returned object shall belong to.
canCreate - determines if objects can be copied into model.
Returns:
An element of the same type and at the same position in the model as elem, or if that would turn out impossible then null.

corresponds

public boolean corresponds(MModelElement obj1,
                           MModelElement obj2)
Tests if two objects are of the same type, have the same name and the same relative position in the model. Same relative position implies either: * their owners correspond to eachother. * they are both owned by model objects.

Parameters:
obj1 - is an object.
obj2 - is another object.
Returns:
true if obj1 corresponds to obj2, false otherwise.

isCyclicOwnership

public boolean isCyclicOwnership(java.lang.Object parent,
                                 java.lang.Object child)
Checks if a child for some ownershiprelationship (as in a namespace A is owned by a namespace B) is allready in the ownerhship relation.

Parameters:
parent - The current leaf for the ownership relation
child - The child that should be owned by the parent
Returns:
true if the child is allready in the ownership relationship


ArgoUML © 1996-2003 (20040229)ArgoUML Project HomeArgoUML Cookbook