## org.eclipse.uml2.uml
Interface Profile

All Superinterfaces:
  Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, NamedElement, Namespace, org.eclipse.emf.common.notify.Notifier, Package, PackageableElement, ParameterableElement, TemplateableElement

    public interface Profile

extends Package

A representation of the model object 'Profile'. A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain.

The following features are supported:

- `Owned Stereotype`
- `Metaclass Reference`
- `Metamodel Reference`

See Also:
  `UMLPackage.getProfile()`

Field Summary

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Method Summary
`org.eclipse.emf.ecore.EObject` `create(Classifier classifier)` Creates and returns an instance of (the Ecore representation of) the specified classifier defined in this profile.
`ElementImport` `createMetaclassReference(PackageableElement importedElement)` Creates a new `ElementImport`, with the specified 'Imported Element', and appends it to the 'Metaclass Reference' reference list
`PackageImport` `createMetamodelReference(Package importedPackage)` Creates a new `PackageImport`, with the specified 'Imported Package', and appends it to the 'Metamodel Reference' reference list
`Stereotype` `createOwnedStereotype(java.lang.String name)` Creates a new `Stereotype`, with the specified 'Name', and appends it to the 'Owned Stereotype' reference list
`Stereotype` `createOwnedStereotype(java.lang.String name, boolean isAbstract)` Creates a(n) (abstract) stereotype with the specified name as an owned stereotype of this profile.
`org.eclipse.emf.ecore.EPackage` `define()` Defines this profile by (re)creating Ecore representations of its current contents
`org.eclipse.emf.ecore.EPackage` `define(java.util.Map<java.lang.String,java.lang.String> options, org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` Defines this profile by (re)creating Ecore representations of its current contents, using the specified options, diagnostics, and context.
`org.eclipse.emf.ecore.EPackage` `getDefinition()` Retrieves the current definition (Ecore representation) of this profile
`org.eclipse.emf.ecore.ENamedElement` `getDefinition(NamedElement namedElement)` Retrieves the current definition (Ecore representation) of the specified named element in this profile.
`ElementImport` `getMetaclassReference(PackageableElement importedElement)` Retrieves the first `ElementImport` with the specified 'Imported Element' from the 'Metaclass Reference' reference list
`ElementImport` `getMetaclassReference(PackageableElement importedElement, boolean createOnDemand)` Retrieves the first `ElementImport` with the specified 'Imported Element' from the 'Metaclass Reference' reference list
`org.eclipse.emf.common.util.EList<ElementImport>` `getMetaclassReferences()` Returns the value of the 'Metaclass Reference' reference list.
`PackageImport` `getMetamodelReference(Package importedPackage)` Retrieves the first `PackageImport` with the specified 'Imported Package' from the 'Metamodel Reference' reference list
`PackageImport` `getMetamodelReference(Package importedPackage, boolean createOnDemand)` Retrieves the first `PackageImport` with the specified 'Imported Package' from the 'Metamodel Reference' reference list
`org.eclipse.emf.common.util.EList<PackageImport>` `getMetamodelReferences()` Returns the value of the 'Metamodel Reference' reference list.
`org.eclipse.emf.common.util.EList<Extension>` `getOwnedExtensions(boolean requiredOnly)` Retrieves the extensions owned by this profile, excluding non-required extensions if indicated.
`Stereotype` `getOwnedStereotype(java.lang.String name)` Retrieves the first `Stereotype` with the specified 'Name' from the 'Owned Stereotype' reference list
`Stereotype` `getOwnedStereotype(java.lang.String name, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Stereotype` with the specified 'Name' from the 'Owned Stereotype' reference list
`org.eclipse.emf.common.util.EList<Stereotype>` `getOwnedStereotypes()` Returns the value of the 'Owned Stereotype' reference list.
`org.eclipse.emf.common.util.EList<Class>` `getReferencedMetaclasses()` Retrieves the metaclasses referenced by this profile
`org.eclipse.emf.common.util.EList<Model>` `getReferencedMetamodels()` Retrieves the metamodels referenced by this profile
`boolean` `isDefined()` Determines whether this profile is defined
`boolean` `validateMetaclassReferenceNotSpecialized(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` An element imported as a metaclassReference is not specialized or generalized in a Profile.
`boolean` `validateReferencesSameMetamodel(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel.

Methods inherited from interface org.eclipse.uml2.uml.Package

`applyProfile, createNestedPackage, createNestedPackage, createOwnedClass, createOwnedEnumeration, createOwnedInterface, createOwnedPrimitiveType, createOwnedType, createPackagedElement, createPackageMerge, createProfileApplication, getAllAppliedProfiles, getAllProfileApplications, getAppliedProfile, getAppliedProfile, getAppliedProfiles, getNestedPackage, getNestedPackage, getNestedPackages, getNestingPackage, getOwnedType, getOwnedType, getOwnedTypes, getPackagedElement, getPackagedElement, getPackagedElements, getPackageMerge, getPackageMerge, getPackageMerges, getProfileApplication, getProfileApplication, getProfileApplications, isModelLibrary, isProfileApplied, makesVisible, setNestingPackage, unapplyProfile, validateElementsPublicOrPrivate, visibleMembers`

Methods inherited from interface org.eclipse.uml2.uml.Namespace

`createElementImport, createElementImport, createOwnedRule, createOwnedRule, createPackageImport, createPackageImport, excludeCollisions, getElementImport, getElementImport, getElementImports, getImportedElements, getImportedMember, getImportedMember, getImportedMembers, getImportedPackages, getMember, getMember, getMembers, getNamesOfMember, getOwnedMember, getOwnedMember, getOwnedMembers, getOwnedRule, getOwnedRule, getOwnedRules, getPackageImport, getPackageImport, getPackageImports, importMembers, membersAreDistinguishable, validateMembersDistinguishable`

Methods inherited from interface org.eclipse.uml2.uml.NamedElement

`allNamespaces, allOwningPackages, createDependency, createNameExpression, createUsage, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.NamedElement

`allNamespaces, allOwningPackages, createDependency, createNameExpression, createUsage, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.ParameterableElement
`getOwningTemplateParameter, getTemplateParameter, isCompatibleWith, isTemplateParameter, setOwningTemplateParameter, setTemplateParameter`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.TemplateableElement
`createOwnedTemplateSignature, createOwnedTemplateSignature, createTemplateBinding, getOwnedTemplateSignature, getTemplateBinding, getTemplateBinding, getTemplateBindings, isTemplate, parameterableElements, setOwnedTemplateSignature`

Method Detail

### getOwnedStereotypes

    org.eclipse.emf.common.util.EList<Stereotype> getOwnedStereotypes()

  Returns the value of the 'Owned Stereotype' reference list. The list contents are of type `Stereotype`.

  This feature subsets the following features:

  - '`Packaged Element`'
  References the Stereotypes that are owned by the Profile.

  Returns:
    the value of the 'Owned Stereotype' reference list.
  See Also:
    `UMLPackage.getProfile_OwnedStereotype()`

### createOwnedStereotype

    Stereotype createOwnedStereotype(java.lang.String name)

  Creates a new `Stereotype`, with the specified 'Name', and appends it to the 'Owned Stereotype' reference list.

  Parameters:
    `name` - The 'Name' for the new `Stereotype`, or `null`.
  Returns:
    The new `Stereotype`.
  See Also:
    `getOwnedStereotypes()`

### getOwnedStereotype

    Stereotype getOwnedStereotype(java.lang.String name)

  Retrieves the first `Stereotype` with the specified 'Name' from the 'Owned Stereotype' reference list.

  Parameters:
    `name` - The 'Name' of the `Stereotype` to retrieve, or `null`.
  Returns:
    The first `Stereotype` with the specified 'Name', or `null`.
  See Also:
    `getOwnedStereotypes()`

### getOwnedStereotype

    Stereotype getOwnedStereotype(java.lang.String name,
                                  boolean ignoreCase,
                                  boolean createOnDemand)

  Retrieves the first `Stereotype` with the specified 'Name' from the 'Owned Stereotype' reference list.

  Parameters:
    `name` - The 'Name' of the `Stereotype` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `Stereotype` on demand if not found.
  Returns:
    The first `Stereotype` with the specified 'Name', or `null`.
  See Also:
    `getOwnedStereotypes()`

### getMetaclassReferences

    org.eclipse.emf.common.util.EList<ElementImport> getMetaclassReferences()

  Returns the value of the 'Metaclass Reference' reference list. The list contents are of type `ElementImport`.

  This feature subsets the following features:

  - '`Element Import`'
  References a metaclass that may be extended.

  Returns:
    the value of the 'Metaclass Reference' reference list.
  See Also:
    `UMLPackage.getProfile_MetaclassReference()`

### createMetaclassReference

    ElementImport createMetaclassReference(PackageableElement importedElement)

  Creates a new `ElementImport`, with the specified 'Imported Element', and appends it to the 'Metaclass Reference' reference list.

  Parameters:
    `importedElement` - The 'Imported Element' for the new `ElementImport`, or `null`.
  Returns:
    The new `ElementImport`.
  See Also:
    `getMetaclassReferences()`

### getMetaclassReference

    ElementImport getMetaclassReference(PackageableElement importedElement)

  Retrieves the first `ElementImport` with the specified 'Imported Element' from the 'Metaclass Reference' reference list.

  Parameters:
    `importedElement` - The 'Imported Element' of the `ElementImport` to retrieve, or `null`.
  Returns:
    The first `ElementImport` with the specified 'Imported Element', or `null`.
  See Also:
    `getMetaclassReferences()`

### getMetaclassReference

    ElementImport getMetaclassReference(PackageableElement importedElement,
                                        boolean createOnDemand)

  Retrieves the first `ElementImport` with the specified 'Imported Element' from the 'Metaclass Reference' reference list.

  Parameters:
    `importedElement` - The 'Imported Element' of the `ElementImport` to retrieve, or `null`.
    `createOnDemand` - Whether to create a `ElementImport` on demand if not found.
  Returns:
    The first `ElementImport` with the specified 'Imported Element', or `null`.
  See Also:
    `getMetaclassReferences()`

### getMetamodelReferences

    org.eclipse.emf.common.util.EList<PackageImport> getMetamodelReferences()

  Returns the value of the 'Metamodel Reference' reference list. The list contents are of type `PackageImport`.

  This feature subsets the following features:

  - '`Package Import`'
  References a package containing (directly or indirectly) metaclasses that may be extended.

  Returns:
    the value of the 'Metamodel Reference' reference list.
  See Also:
    `UMLPackage.getProfile_MetamodelReference()`

### createMetamodelReference

    PackageImport createMetamodelReference(Package importedPackage)

  Creates a new `PackageImport`, with the specified 'Imported Package', and appends it to the 'Metamodel Reference' reference list.

  Parameters:
    `importedPackage` - The 'Imported Package' for the new `PackageImport`, or `null`.
  Returns:
    The new `PackageImport`.
  See Also:
    `getMetamodelReferences()`

### getMetamodelReference

    PackageImport getMetamodelReference(Package importedPackage)

  Retrieves the first `PackageImport` with the specified 'Imported Package' from the 'Metamodel Reference' reference list.

  Parameters:
    `importedPackage` - The 'Imported Package' of the `PackageImport` to retrieve, or `null`.
  Returns:
    The first `PackageImport` with the specified 'Imported Package', or `null`.
  See Also:
    `getMetamodelReferences()`

### getMetamodelReference

    PackageImport getMetamodelReference(Package importedPackage,
                                        boolean createOnDemand)

  Retrieves the first `PackageImport` with the specified 'Imported Package' from the 'Metamodel Reference' reference list.

  Parameters:
    `importedPackage` - The 'Imported Package' of the `PackageImport` to retrieve, or `null`.
    `createOnDemand` - Whether to create a `PackageImport` on demand if not found.
  Returns:
    The first `PackageImport` with the specified 'Imported Package', or `null`.
  See Also:
    `getMetamodelReferences()`

### validateMetaclassReferenceNotSpecialized

    boolean validateMetaclassReferenceNotSpecialized(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                                     java.util.Map<java.lang.Object,java.lang.Object> context)

  An element imported as a metaclassReference is not specialized or generalized in a Profile. self.metaclassReference.importedElement-> select(c | c.oclIsKindOf(Classifier) and (c.generalization.namespace = self or (c.specialization.namespace = self) )->isEmpty()

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### validateReferencesSameMetamodel

    boolean validateReferencesSameMetamodel(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                            java.util.Map<java.lang.Object,java.lang.Object> context)

  All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel. self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())-> union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty()

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### create

    org.eclipse.emf.ecore.EObject create(Classifier classifier)

  Creates and returns an instance of (the Ecore representation of) the specified classifier defined in this profile.

  Parameters:
    `classifier` - The classifier of which to create an instance.

### createOwnedStereotype

    Stereotype createOwnedStereotype(java.lang.String name,
                                     boolean isAbstract)

  Creates a(n) (abstract) stereotype with the specified name as an owned stereotype of this profile.

  Parameters:
    `name` - The name for the new stereotype, or null.
    `isAbstract` - Whether the new stereotype should be abstract.

### isDefined

    boolean isDefined()

  Determines whether this profile is defined.

### define

    org.eclipse.emf.ecore.EPackage define()

  Defines this profile by (re)creating Ecore representations of its current contents.

### define

    org.eclipse.emf.ecore.EPackage define(java.util.Map<java.lang.String,java.lang.String> options,
                                          org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                          java.util.Map<java.lang.Object,java.lang.Object> context)

  Defines this profile by (re)creating Ecore representations of its current contents, using the specified options, diagnostics, and context.

  Parameters:
    `options` - The options to use.
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

### getDefinition

    org.eclipse.emf.ecore.EPackage getDefinition()

  Retrieves the current definition (Ecore representation) of this profile.

### getDefinition

    org.eclipse.emf.ecore.ENamedElement getDefinition(NamedElement namedElement)

  Retrieves the current definition (Ecore representation) of the specified named element in this profile.

  Parameters:
    `namedElement` - The named element whose definition to retrieve.

### getReferencedMetaclasses

    org.eclipse.emf.common.util.EList<Class> getReferencedMetaclasses()

  Retrieves the metaclasses referenced by this profile.

### getReferencedMetamodels

    org.eclipse.emf.common.util.EList<Model> getReferencedMetamodels()

  Retrieves the metamodels referenced by this profile.

### getOwnedExtensions

    org.eclipse.emf.common.util.EList<Extension> getOwnedExtensions(boolean requiredOnly)

  Retrieves the extensions owned by this profile, excluding non-required extensions if indicated.

  Parameters:
    `requiredOnly` - Whether to retrieve only required extensions.

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