Package com.nomagic.magicdraw.uml
Class ClassifierFinder
- java.lang.Object
-
- com.nomagic.magicdraw.uml.ClassifierFinder
-
@OpenApiAll public class ClassifierFinder extends java.lang.ObjectUtility class for finding and creating classifiers by simple or qualified name.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classClassifierFinder.SimpleNameResolverA resolver of simple classifier name.
-
Constructor Summary
Constructors Constructor Description ClassifierFinder()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ClassifiercreateClassifier(java.lang.String qualifiedName, java.lang.Class<? extends Classifier> type, Namespace root)Creates a classifier and packages for classifier according qualified classifier name.static ClassifiercreateClassifier(java.lang.String elementName, java.lang.Class<? extends Classifier> type, java.util.List suggestedByDSL, Namespace root)static ClassifierfindClassifier(Project project, java.lang.String name, java.lang.Class[] types, java.util.Collection restricted, Namespace root)Looks for a classifier by a given name (simple or qualified).static ClassifierfindClassifier(java.lang.String name, java.lang.Class<? extends Classifier>[] types, java.util.Collection restricted, java.util.Collection<Namespace> root)Looks for a classifier of type by a given name (simple or qualified)static ClassifierfindClassifierOrDataType(Project project, java.lang.String name, java.lang.Class<? extends Classifier>[] types, java.util.Collection restricted, Namespace root)Looks for a classifier of type or standard data type by a given name (simple or qualified).static ClassifierfindClassifierOrDataType(Project project, java.lang.String name, java.util.Collection restricted, Namespace root)Looks for a classifier or standard data type by the given name (simple or qualified).static ClassifierfindOrCreateClassifier(Project project, Element context, java.lang.String name, ClassifierFinder.SimpleNameResolver simpleNameResolver)Searches for a classifier or standard data type with a given name (qualified or simple).static ClassifierfindOrCreateClassifier(Project project, Element context, java.lang.String name, ClassifierFinder.SimpleNameResolver simpleNameResolver, boolean createIfNotFound)Searches for a classifier or standard data type with a given name (qualified or simple).static ClassifierfindOrCreateClassifier(Project project, Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType)Searches for a classifier or standard data type with a given name (qualified or simple).static ClassifierfindOrCreateClassifier(Project project, Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType, java.util.Collection<java.lang.Class<? extends Classifier>> searchType, ClassifierFinder.SimpleNameResolver simpleNameResolver)Searches for a classifier or standard data type with a given name (qualified or simple)static ClassifierfindOrCreateClassifier(Project project, Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType, java.util.Collection<java.lang.Class<? extends Classifier>> searchType, ClassifierFinder.SimpleNameResolver simpleNameResolver, boolean createIfNotFound)Searches for a classifier or standard data type with a given name (qualified or simple)static ClassifierfindOrCreateClassifier(Project project, Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType, java.util.Collection<java.lang.Class<? extends Classifier>> searchType, ClassifierFinder.SimpleNameResolver simpleNameResolver, boolean createIfNotFound, PresentationElement contextView)Searches for a classifier with given name (simple or qualified).static NamespacefindOrCreateNamespaceForElement(java.lang.String qualifiedElementName, java.lang.Class<? extends Namespace> searchType, java.lang.Class<? extends Namespace> createType, Namespace root)Returns namespace according given qualified element name.static NamespacefindOrCreatePackageForElement(java.lang.String qualifiedElementName, Namespace root)Creates or finds packages using a qualified name of element in the given root.static ClassifierfindStandardDataType(Project project, java.lang.String name, java.util.Collection restricted)Searches for a standard DataType from UMLStandardProfile or MagicDrawProfile modules.static booleanisQualifiedName(java.lang.String elementName)Check if given element name is a qualified name
-
-
-
Method Detail
-
findClassifier
@CheckForNull public static Classifier findClassifier(Project project, java.lang.String name, @CheckForNull java.lang.Class[] types, @CheckForNull java.util.Collection restricted, @CheckForNull Namespace root)
Looks for a classifier by a given name (simple or qualified).- Parameters:
project- projectname- classifier name (simple or qualified)types- classifier typesrestricted- allowed DSL elements. Collection should contain stereotypes and/or metaclass classes (java.lang.Class)root- root element. Null means whole project- Returns:
- found classifier
-
findClassifier
@CheckForNull public static Classifier findClassifier(java.lang.String name, @CheckForNull java.lang.Class<? extends Classifier>[] types, @CheckForNull java.util.Collection restricted, java.util.Collection<Namespace> root)
Looks for a classifier of type by a given name (simple or qualified)- Parameters:
name- classifier name (simple or qualified)types- classifier typesrestricted- allowed DSL elements. Collection should contain stereotypes and/or metaclass classes (java.lang.Class)root- root elements. Empty means whole project- Returns:
- found classifier
-
findStandardDataType
@CheckForNull public static Classifier findStandardDataType(Project project, java.lang.String name, @CheckForNull java.util.Collection restricted)
Searches for a standard DataType from UMLStandardProfile or MagicDrawProfile modules.- Parameters:
project- projectname- data type namerestricted- allowed DSL elements. Collection should contain stereotypes and/or metaclass classes (java.lang.Class)- Returns:
- found data type or null
-
findClassifierOrDataType
@CheckForNull public static Classifier findClassifierOrDataType(Project project, java.lang.String name, @CheckForNull java.util.Collection restricted, @CheckForNull Namespace root)
Looks for a classifier or standard data type by the given name (simple or qualified).- Parameters:
project- projectname- classifier name simple or qualified)restricted- allowed DSL elements. Collection should contain stereotypes and/or metaclass classes (java.lang.Class)root- root element. Null means whole project- Returns:
- found classifier
- See Also:
UML2DataTypes.CORE_CLASSIFIERS
-
findClassifierOrDataType
@CheckForNull public static Classifier findClassifierOrDataType(Project project, java.lang.String name, @CheckForNull java.lang.Class<? extends Classifier>[] types, @CheckForNull java.util.Collection restricted, @CheckForNull Namespace root)
Looks for a classifier of type or standard data type by a given name (simple or qualified).- Parameters:
project- projectname- classifier nametypes- classifier typesrestricted- Allowed DSL elements. Collection should contain stereotypes and/or metaclass classes (java.lang.Class)root- root element. Null means whole project- Returns:
- found classifier
- See Also:
UML2DataTypes.CORE_CLASSIFIERS
-
findOrCreateClassifier
@CheckForNull public static Classifier findOrCreateClassifier(Project project, @CheckForNull Element context, java.lang.String name, ClassifierFinder.SimpleNameResolver simpleNameResolver)
Searches for a classifier or standard data type with a given name (qualified or simple). Creates UML Class if not found.
-
findOrCreateClassifier
@CheckForNull public static Classifier findOrCreateClassifier(Project project, @CheckForNull Element context, java.lang.String name, ClassifierFinder.SimpleNameResolver simpleNameResolver, boolean createIfNotFound)
Searches for a classifier or standard data type with a given name (qualified or simple). Creates UML Class if not found.
-
findOrCreateClassifier
@CheckForNull public static Classifier findOrCreateClassifier(Project project, @CheckForNull Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType)
Searches for a classifier or standard data type with a given name (qualified or simple). Creates classifier of given type.
-
findOrCreateClassifier
@CheckForNull public static Classifier findOrCreateClassifier(Project project, @CheckForNull Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType, java.util.Collection<java.lang.Class<? extends Classifier>> searchType, @CheckForNull ClassifierFinder.SimpleNameResolver simpleNameResolver)
Searches for a classifier or standard data type with a given name (qualified or simple)
-
findOrCreateClassifier
@CheckForNull public static Classifier findOrCreateClassifier(@CheckForNull Project project, @CheckForNull Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType, java.util.Collection<java.lang.Class<? extends Classifier>> searchType, @CheckForNull ClassifierFinder.SimpleNameResolver simpleNameResolver, boolean createIfNotFound)
Searches for a classifier or standard data type with a given name (qualified or simple)
-
findOrCreateClassifier
@CheckForNull public static Classifier findOrCreateClassifier(@CheckForNull Project project, @CheckForNull Element context, java.lang.String name, java.lang.Class<? extends Classifier> createType, java.util.Collection<java.lang.Class<? extends Classifier>> searchType, @CheckForNull ClassifierFinder.SimpleNameResolver simpleNameResolver, boolean createIfNotFound, @CheckForNull PresentationElement contextView)
Searches for a classifier with given name (simple or qualified). If such does not exist, creates a classifier with given name. Priorities:- 1. if qualified name is specified, searching by qualified name
- 2. if context is not null, using context to find nearest Package and searching in it
- 3. Searching in all packages
- 4. Searching for standard data type
- getClassifierFor(root, "java::lang::String", Class.class)
- getClassifierFor(javaLangPackage, "String", Class.class)
- getClassifierFor(ioPackage, "Serializable", Interface.class)
- Parameters:
context- element used to find nearest Package and use it as rootname- name of classifier. If classifier contains "::" then assuming that name is qualifiedcreateType- a classifier type to create if not found (for example Class.class or Interface.class)searchType- a collection of classifier types to search for (for example Class.class or Interface.class)simpleNameResolver- simple name resolvercontextView- context viewcreateIfNotFound- should new classifier be created if existing is not found
-
createClassifier
@CheckForNull public static Classifier createClassifier(java.lang.String elementName, java.lang.Class<? extends Classifier> type, @CheckForNull java.util.List suggestedByDSL, Namespace root)
-
createClassifier
@CheckForNull public static Classifier createClassifier(java.lang.String qualifiedName, java.lang.Class<? extends Classifier> type, Namespace root)
Creates a classifier and packages for classifier according qualified classifier name.- Parameters:
qualifiedName- qualifiedNametype- classifier typeroot- root namespace- Returns:
- create classifier ir null
-
findOrCreatePackageForElement
@CheckForNull public static Namespace findOrCreatePackageForElement(java.lang.String qualifiedElementName, Namespace root)
Creates or finds packages using a qualified name of element in the given root.- Parameters:
qualifiedElementName- qualified name of element (not the package!) from a given root elementroot- parent package where packages will be created- Returns:
- leaf package
-
findOrCreateNamespaceForElement
@CheckForNull public static Namespace findOrCreateNamespaceForElement(java.lang.String qualifiedElementName, java.lang.Class<? extends Namespace> searchType, @CheckForNull java.lang.Class<? extends Namespace> createType, @Nonnull Namespace root)
Returns namespace according given qualified element name.- Parameters:
qualifiedElementName- qualified name of element inside a namespace (not namespace itself!!!)searchType- class type of namespace to findcreateType- class type of namespace to create. Null if do not want to create a namespaceroot- root- Returns:
- found or created namespace element
-
isQualifiedName
public static boolean isQualifiedName(java.lang.String elementName)
Check if given element name is a qualified name- Parameters:
elementName- name- Returns:
- true if name is a qualified
-
-