org.eclipse.ocl.uml.util
Class OCLUMLUtil

java.lang.Object
  extended by UMLUtil
      extended by org.eclipse.ocl.uml.util.OCLUMLUtil

public class OCLUMLUtil
extends UMLUtil

Utilities for resolving references to packages against a resource set and finding the Ecore definitions of UML packages and classifiers in support of evaluation of OCL expressions.


Method Summary
static Namespace findNamespace(java.util.List<java.lang.String> qualifiedName, ResourceSet rset)
          Searches the specified resource set for a UML namespace (not necessarily a package).
static java.lang.Package findPackage(java.util.List<java.lang.String> packageNames, ResourceSet rset)
          Searches the specified resource set for a UML package.
static  getAllAttributes(Classifier classifier)
          A foreign method for the Classifier that obtains all attributes regardless of visibility, for OCL purposes.
static  getAllOperations(Classifier classifier)
          A foreign method for the Classifier that obtains all operations regardless of visibility, for OCL purposes.
static java.util.List<Reception> getAllReceptions(java.lang.Class clazz)
          Foreign method for the getAllReceptions() query that is missing from the UML metamodel.
static Classifier getClassifier(EClassifier eclassifier, ResourceSet rset)
          Obtains the UML classifier corresponding to the specified Ecore classifier, which is the type of some object in an OCL expression evaluation.
static EClassifier getEClassifier(Classifier umlClassifier, java.lang.Object element, EPackage.Registry registry)
          Looks up the Ecore definition of the specified UML classifier, using the specified element as a context for finding profile applications in the case that the classifier is a stereotype or some other type in a Profile.
static EPackage getEPackage(java.lang.Package pkg, EPackage.Registry registry)
          Searches the specified package registry set for an Ecore definition of the specified UML package.
static java.lang.Class getMetaclass(Element element)
          Obtains the UML metaclass of the specified model element.
static java.lang.Package getUMLMetamodel(ResourceSet resourceSet)
          Obtains the UML metamodel library loaded in the specified resource set, loading it if necessary.
static boolean isNonNavigableAssocationEndOf(Property associationEnd, Classifier endClassifier)
          A foreign method for the Property that queries whether it is a non-navigable association end of a given classifier.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getAllReceptions

public static java.util.List<Reception> getAllReceptions(java.lang.Class clazz)
Foreign method for the getAllReceptions() query that is missing from the UML metamodel.

Parameters:
clazz - a UML class
Returns:
the receptions that it defines and/or inherits

getMetaclass

public static java.lang.Class getMetaclass(Element element)
Obtains the UML metaclass of the specified model element. The specified element must be in a resource set, otherwise the UML metamodel is not available.

Parameters:
element - an element in a UML model
Returns:
the element's metaclass, or null if the element is not in a resource set

getClassifier

public static Classifier getClassifier(EClassifier eclassifier,
                                       ResourceSet rset)
Obtains the UML classifier corresponding to the specified Ecore classifier, which is the type of some object in an OCL expression evaluation.

Parameters:
eclassifier - an Ecore definition of a UML classifier
rset - the resource set in which to look for the corresponding UML classifier
Returns:
the corresponding UML classifier, or null if not found

findPackage

public static java.lang.Package findPackage(java.util.List<java.lang.String> packageNames,
                                            ResourceSet rset)
Searches the specified resource set for a UML package.

Parameters:
packageNames - the qualified package name
rset - the resource set to search
Returns:
the matching package, or null if not found

findNamespace

public static Namespace findNamespace(java.util.List<java.lang.String> qualifiedName,
                                      ResourceSet rset)
Searches the specified resource set for a UML namespace (not necessarily a package).

Parameters:
qualifiedName - the qualified namespace name
rset - the resource set to search
Returns:
the matching namespace, or null if not found

getEPackage

public static EPackage getEPackage(java.lang.Package pkg,
                                   EPackage.Registry registry)
Searches the specified package registry set for an Ecore definition of the specified UML package. If this package registry doesn't have it and is not the global package registry, then the global registry is also searched.

Parameters:
pkg - the UML package
registry - the registry in which to look for the Ecore definition
Returns:
the matching Ecore definition, or null if not found

getEClassifier

public static EClassifier getEClassifier(Classifier umlClassifier,
                                         java.lang.Object element,
                                         EPackage.Registry registry)
Looks up the Ecore definition of the specified UML classifier, using the specified element as a context for finding profile applications in the case that the classifier is a stereotype or some other type in a Profile. Finding the Ecore definition of a profile type requires finding the actual applied version of the profile.

Parameters:
umlClassifier - a UML classifier
element - an element in the context of which the OCL evaluation is being performed
registry - the package registry in which to search for the Ecore definition
Returns:
the corresponding Ecore classifier, or null if not found

getUMLMetamodel

public static java.lang.Package getUMLMetamodel(ResourceSet resourceSet)
Obtains the UML metamodel library loaded in the specified resource set, loading it if necessary.

Parameters:
resourceSet - a resource set
Returns:
the UML metamodel

getAllAttributes

public static  getAllAttributes(Classifier classifier)
A foreign method for the Classifier that obtains all attributes regardless of visibility, for OCL purposes.

Parameters:
classifier - a classifier
Returns:
all of its attributes, including inheritable and non-inheritable attributes (private attributes of general types) except for those that are redefined
Since:
1.2

isNonNavigableAssocationEndOf

public static boolean isNonNavigableAssocationEndOf(Property associationEnd,
                                                    Classifier endClassifier)
A foreign method for the Property that queries whether it is a non-navigable association end of a given classifier. This means that the end is association-owned and opposite to a classifier-owned end whose type is a supertype of the specified classifier.

Parameters:
associationEnd - the purported non-navigable association end
endClassifier - a classifier from which we purport to navigate the association
Returns:
true if the association-end is a non-navigable end of the classifier; false, otherwise
Since:
2.0

getAllOperations

public static  getAllOperations(Classifier classifier)
A foreign method for the Classifier that obtains all operations regardless of visibility, for OCL purposes.

Parameters:
classifier - a classifier
Returns:
all of its operations, including inheritable and non-inheritable operations (private operations of general types) except for those that are redefined
Since:
1.2

Copyright 2002, 2007 IBM Corporation and others.
All Rights Reserved.