| /* |
| * Copyright (c) 2005, 2007 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM - initial API and implementation |
| * |
| * $Id: Package.java,v 1.21 2007/10/23 15:54:21 jbruck Exp $ |
| */ |
| package org.eclipse.uml2.uml; |
| |
| import java.util.Map; |
| |
| import org.eclipse.emf.common.util.DiagnosticChain; |
| |
| import org.eclipse.emf.common.util.EList; |
| |
| import org.eclipse.emf.ecore.EClass; |
| import org.eclipse.emf.ecore.EObject; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A representation of the model object '<em><b>Package</b></em>'. |
| * <!-- end-user-doc --> |
| * |
| * <!-- begin-model-doc --> |
| * A package is used to group elements, and provides a namespace for the grouped elements. |
| * A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles. |
| * Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter. |
| * <!-- end-model-doc --> |
| * |
| * <p> |
| * The following features are supported: |
| * <ul> |
| * <li>{@link org.eclipse.uml2.uml.Package#getOwnedTypes <em>Owned Type</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Package#getPackageMerges <em>Package Merge</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Package#getPackagedElements <em>Packaged Element</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Package#getNestedPackages <em>Nested Package</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Package#getNestingPackage <em>Nesting Package</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Package#getProfileApplications <em>Profile Application</em>}</li> |
| * </ul> |
| * </p> |
| * |
| * @see org.eclipse.uml2.uml.UMLPackage#getPackage() |
| * @model |
| * @generated |
| */ |
| public interface Package |
| extends Namespace, PackageableElement, TemplateableElement { |
| |
| /** |
| * Returns the value of the '<em><b>Package Merge</b></em>' containment reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.PackageMerge}. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.PackageMerge#getReceivingPackage <em>Receiving Package</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * References the PackageMerges that are owned by this Package. |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Package Merge</em>' containment reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getPackage_PackageMerge() |
| * @see org.eclipse.uml2.uml.PackageMerge#getReceivingPackage |
| * @model opposite="receivingPackage" containment="true" resolveProxies="true" ordered="false" |
| * @generated |
| */ |
| EList<PackageMerge> getPackageMerges(); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.PackageMerge}, with the specified '<em><b>Merged Package</b></em>', and appends it to the '<em><b>Package Merge</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param mergedPackage The '<em><b>Merged Package</b></em>' for the new {@link org.eclipse.uml2.uml.PackageMerge}, or <code>null</code>. |
| * @return The new {@link org.eclipse.uml2.uml.PackageMerge}. |
| * @see #getPackageMerges() |
| * @generated |
| */ |
| PackageMerge createPackageMerge(Package mergedPackage); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.PackageMerge} with the specified '<em><b>Merged Package</b></em>' from the '<em><b>Package Merge</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param mergedPackage The '<em><b>Merged Package</b></em>' of the {@link org.eclipse.uml2.uml.PackageMerge} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.PackageMerge} with the specified '<em><b>Merged Package</b></em>', or <code>null</code>. |
| * @see #getPackageMerges() |
| * @generated |
| */ |
| PackageMerge getPackageMerge(Package mergedPackage); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.PackageMerge} with the specified '<em><b>Merged Package</b></em>' from the '<em><b>Package Merge</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param mergedPackage The '<em><b>Merged Package</b></em>' of the {@link org.eclipse.uml2.uml.PackageMerge} to retrieve, or <code>null</code>. |
| * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.PackageMerge} on demand if not found. |
| * @return The first {@link org.eclipse.uml2.uml.PackageMerge} with the specified '<em><b>Merged Package</b></em>', or <code>null</code>. |
| * @see #getPackageMerges() |
| * @generated |
| */ |
| PackageMerge getPackageMerge(Package mergedPackage, boolean createOnDemand); |
| |
| /** |
| * Returns the value of the '<em><b>Packaged Element</b></em>' containment reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.PackageableElement}. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() <em>Owned Member</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Specifies the packageable elements that are owned by this Package. |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Packaged Element</em>' containment reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getPackage_PackagedElement() |
| * @model containment="true" resolveProxies="true" ordered="false" |
| * @generated |
| */ |
| EList<PackageableElement> getPackagedElements(); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.PackageableElement}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Packaged Element</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.PackageableElement}, or <code>null</code>. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.PackageableElement} to create. |
| * @return The new {@link org.eclipse.uml2.uml.PackageableElement}. |
| * @see #getPackagedElements() |
| * @generated |
| */ |
| PackageableElement createPackagedElement(String name, EClass eClass); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.PackageableElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Packaged Element</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.PackageableElement} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.PackageableElement} with the specified '<em><b>Name</b></em>', or <code>null</code>. |
| * @see #getPackagedElements() |
| * @generated |
| */ |
| PackageableElement getPackagedElement(String name); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.PackageableElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Packaged Element</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.PackageableElement} to retrieve, or <code>null</code>. |
| * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.PackageableElement} to retrieve, or <code>null</code>. |
| * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.PackageableElement} on demand if not found. |
| * @return The first {@link org.eclipse.uml2.uml.PackageableElement} with the specified '<em><b>Name</b></em>', or <code>null</code>. |
| * @see #getPackagedElements() |
| * @generated |
| */ |
| PackageableElement getPackagedElement(String name, boolean ignoreCase, |
| EClass eClass, boolean createOnDemand); |
| |
| /** |
| * Returns the value of the '<em><b>Owned Type</b></em>' reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.Type}. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Type#getPackage <em>Package</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Package#getPackagedElements() <em>Packaged Element</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * References the packaged elements that are Types. |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Owned Type</em>' reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getPackage_OwnedType() |
| * @see org.eclipse.uml2.uml.Type#getPackage |
| * @model opposite="package" transient="true" volatile="true" derived="true" ordered="false" |
| * @generated |
| */ |
| EList<Type> getOwnedTypes(); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.Type}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Owned Type</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.Type}, or <code>null</code>. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Type} to create. |
| * @return The new {@link org.eclipse.uml2.uml.Type}. |
| * @see #getOwnedTypes() |
| * @generated |
| */ |
| Type createOwnedType(String name, EClass eClass); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Type} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Type</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Type} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.Type} with the specified '<em><b>Name</b></em>', or <code>null</code>. |
| * @see #getOwnedTypes() |
| * @generated |
| */ |
| Type getOwnedType(String name); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Type} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Type</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Type} to retrieve, or <code>null</code>. |
| * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Type} to retrieve, or <code>null</code>. |
| * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.Type} on demand if not found. |
| * @return The first {@link org.eclipse.uml2.uml.Type} with the specified '<em><b>Name</b></em>', or <code>null</code>. |
| * @see #getOwnedTypes() |
| * @generated |
| */ |
| Type getOwnedType(String name, boolean ignoreCase, EClass eClass, |
| boolean createOnDemand); |
| |
| /** |
| * Returns the value of the '<em><b>Nested Package</b></em>' reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.Package}. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Package#getNestingPackage <em>Nesting Package</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Package#getPackagedElements() <em>Packaged Element</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * References the packaged elements that are Packages. |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Nested Package</em>' reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getPackage_NestedPackage() |
| * @see org.eclipse.uml2.uml.Package#getNestingPackage |
| * @model opposite="nestingPackage" transient="true" volatile="true" derived="true" ordered="false" |
| * @generated |
| */ |
| EList<Package> getNestedPackages(); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.Package}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Nested Package</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.Package}, or <code>null</code>. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Package} to create. |
| * @return The new {@link org.eclipse.uml2.uml.Package}. |
| * @see #getNestedPackages() |
| * @generated |
| */ |
| Package createNestedPackage(String name, EClass eClass); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Package} with the specified '<em><b>Name</b></em>' from the '<em><b>Nested Package</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Package} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.Package} with the specified '<em><b>Name</b></em>', or <code>null</code>. |
| * @see #getNestedPackages() |
| * @generated |
| */ |
| Package getNestedPackage(String name); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Package} with the specified '<em><b>Name</b></em>' from the '<em><b>Nested Package</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Package} to retrieve, or <code>null</code>. |
| * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Package} to retrieve, or <code>null</code>. |
| * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.Package} on demand if not found. |
| * @return The first {@link org.eclipse.uml2.uml.Package} with the specified '<em><b>Name</b></em>', or <code>null</code>. |
| * @see #getNestedPackages() |
| * @generated |
| */ |
| Package getNestedPackage(String name, boolean ignoreCase, EClass eClass, |
| boolean createOnDemand); |
| |
| /** |
| * Returns the value of the '<em><b>Nesting Package</b></em>' reference. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Package#getNestedPackages <em>Nested Package</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * References the Package that owns this Package. |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Nesting Package</em>' reference. |
| * @see #setNestingPackage(Package) |
| * @see org.eclipse.uml2.uml.UMLPackage#getPackage_NestingPackage() |
| * @see org.eclipse.uml2.uml.Package#getNestedPackages |
| * @model opposite="nestedPackage" transient="true" volatile="true" derived="true" ordered="false" |
| * @generated |
| */ |
| Package getNestingPackage(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Package#getNestingPackage <em>Nesting Package</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Nesting Package</em>' reference. |
| * @see #getNestingPackage() |
| * @generated |
| */ |
| void setNestingPackage(Package value); |
| |
| /** |
| * Returns the value of the '<em><b>Profile Application</b></em>' containment reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.ProfileApplication}. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ProfileApplication#getApplyingPackage <em>Applying Package</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * References the ProfileApplications that indicate which profiles have been applied to the Package. |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Profile Application</em>' containment reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getPackage_ProfileApplication() |
| * @see org.eclipse.uml2.uml.ProfileApplication#getApplyingPackage |
| * @model opposite="applyingPackage" containment="true" resolveProxies="true" ordered="false" |
| * @generated |
| */ |
| EList<ProfileApplication> getProfileApplications(); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.ProfileApplication} and appends it to the '<em><b>Profile Application</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return The new {@link org.eclipse.uml2.uml.ProfileApplication}. |
| * @see #getProfileApplications() |
| * @generated |
| */ |
| ProfileApplication createProfileApplication(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * If an element that is owned by a package has visibility, it is public or private. |
| * self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private) |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateElementsPublicOrPrivate(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.Package}, with the specified '<em><b>Name</b></em>', and appends it to the '<em><b>Nested Package</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.Package}, or <code>null</code>. |
| * @return The new {@link org.eclipse.uml2.uml.Package}. |
| * @see #getNestedPackages() |
| * @generated |
| */ |
| Package createNestedPackage(String name); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Creates a(n) (abstract) class with the specified name as an owned type of this package. |
| * @param name The name for the new class, or null. |
| * @param isAbstract Whether the new class should be abstract. |
| * <!-- end-model-doc --> |
| * @model required="true" ordered="false" nameDataType="org.eclipse.uml2.uml.String" nameRequired="true" nameOrdered="false" isAbstractDataType="org.eclipse.uml2.uml.Boolean" isAbstractRequired="true" isAbstractOrdered="false" |
| * @generated |
| */ |
| org.eclipse.uml2.uml.Class createOwnedClass(String name, boolean isAbstract); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Creates a enumeration with the specified name as an owned type of this package. |
| * @param name The name for the new enumeration, or null. |
| * <!-- end-model-doc --> |
| * @model required="true" ordered="false" nameDataType="org.eclipse.uml2.uml.String" nameRequired="true" nameOrdered="false" |
| * @generated |
| */ |
| Enumeration createOwnedEnumeration(String name); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Creates a primitive type with the specified name as an owned type of this package. |
| * @param name The name for the new primitive type, or null. |
| * <!-- end-model-doc --> |
| * @model required="true" ordered="false" nameDataType="org.eclipse.uml2.uml.String" nameRequired="true" nameOrdered="false" |
| * @generated |
| */ |
| PrimitiveType createOwnedPrimitiveType(String name); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Determines whether the specified profile is applied to this package. |
| * @param profile The profile in question. |
| * <!-- end-model-doc --> |
| * @model dataType="org.eclipse.uml2.uml.Boolean" required="true" ordered="false" profileRequired="true" profileOrdered="false" |
| * @generated |
| */ |
| boolean isProfileApplied(Profile profile); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Applies the current definition of the specified profile to this package and automatically applies required stereotypes in the profile to elements within this package's namespace hieararchy. If a different definition is already applied, automatically migrates any associated stereotype values on a "best effort" basis (matching classifiers and structural features by name). |
| * @param profile The profile to apply. |
| * <!-- end-model-doc --> |
| * @model ordered="false" profileRequired="true" profileOrdered="false" |
| * @generated |
| */ |
| EList<EObject> applyProfile(Profile profile); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Unapplies the specified profile from this package and automatically unapplies stereotypes in the profile from elements within this package's namespace hieararchy. |
| * @param profile The profile to unapply. |
| * <!-- end-model-doc --> |
| * @model ordered="false" profileRequired="true" profileOrdered="false" |
| * @generated |
| */ |
| EList<EObject> unapplyProfile(Profile profile); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves the profiles that are applied to this package. |
| * <!-- end-model-doc --> |
| * @model kind="operation" ordered="false" |
| * @generated |
| */ |
| EList<Profile> getAppliedProfiles(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves the profile with the specified qualified name that is applied to this package, or null if no such profile is applied. |
| * @param qualifiedName The qualified name of the applied profile to retrieve. |
| * <!-- end-model-doc --> |
| * @model ordered="false" qualifiedNameDataType="org.eclipse.uml2.uml.String" qualifiedNameRequired="true" qualifiedNameOrdered="false" |
| * @generated |
| */ |
| Profile getAppliedProfile(String qualifiedName); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves the profile with the specified qualified name that is applied to this package or any of its nesting packages (if indicated), or null if no such profile is applied. |
| * @param qualifiedName The qualified name of the applied profile to retrieve. |
| * @param recurse Whether to look in nesting packages. |
| * <!-- end-model-doc --> |
| * @model ordered="false" qualifiedNameDataType="org.eclipse.uml2.uml.String" qualifiedNameRequired="true" qualifiedNameOrdered="false" recurseDataType="org.eclipse.uml2.uml.Boolean" recurseRequired="true" recurseOrdered="false" |
| * @generated |
| */ |
| Profile getAppliedProfile(String qualifiedName, boolean recurse); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves all the profile applications for this package, including profile applications for its nesting package(s). |
| * <!-- end-model-doc --> |
| * @model kind="operation" ordered="false" |
| * @generated |
| */ |
| EList<ProfileApplication> getAllProfileApplications(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves the application of the specified profile to this package, or null if no such profile is applied. |
| * @param profile The profile whose application to retrieve. |
| * <!-- end-model-doc --> |
| * @model ordered="false" profileRequired="true" profileOrdered="false" |
| * @generated |
| */ |
| ProfileApplication getProfileApplication(Profile profile); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves the application of the specified profile to this package or any of its nesting packages (if indicated), or null if no such profile is applied. |
| * @param profile The profile whose application to retrieve. |
| * @param recurse Whether to look in nesting packages. |
| * <!-- end-model-doc --> |
| * @model ordered="false" profileRequired="true" profileOrdered="false" recurseDataType="org.eclipse.uml2.uml.Boolean" recurseRequired="true" recurseOrdered="false" |
| * @generated |
| */ |
| ProfileApplication getProfileApplication(Profile profile, boolean recurse); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Creates an interface with the specified name as an owned type of this package. |
| * @param name The name for the new interface, or null. |
| * <!-- end-model-doc --> |
| * @model required="true" ordered="false" nameDataType="org.eclipse.uml2.uml.String" nameRequired="true" nameOrdered="false" |
| * @generated |
| */ |
| Interface createOwnedInterface(String name); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Determines whether this package is a model library. |
| * <!-- end-model-doc --> |
| * @model kind="operation" dataType="org.eclipse.uml2.uml.Boolean" required="true" ordered="false" |
| * @generated |
| */ |
| boolean isModelLibrary(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves all the profiles that are applied to this package, including profiles applied to its nesting package(s). |
| * <!-- end-model-doc --> |
| * @model kind="operation" ordered="false" |
| * @generated |
| */ |
| EList<Profile> getAllAppliedProfiles(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The query visibleMembers() defines which members of a Package can be accessed outside it. |
| * result = member->select( m | self.makesVisible(m)) |
| * <!-- end-model-doc --> |
| * @model ordered="false" |
| * @generated |
| */ |
| EList<PackageableElement> visibleMembers(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible. |
| * self.member->includes(el) |
| * result = (ownedMember->includes(el)) or |
| * (elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or |
| * (packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty()) |
| * <!-- end-model-doc --> |
| * @model dataType="org.eclipse.uml2.uml.Boolean" required="true" ordered="false" elRequired="true" elOrdered="false" |
| * @generated |
| */ |
| boolean makesVisible(NamedElement el); |
| |
| } // Package |