All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.uml2.uml.Classifier Maven / Gradle / Ivy

There is a newer version: 5.0.0-v20140602-0749
Show newest version
/*
 * Copyright (c) 2005, 2012 IBM Corporation, Embarcadero Technologies, CEA, 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
 *   Kenn Hussey (Embarcadero Technologies) - 205188
 *   Kenn Hussey (CEA) - 327039, 351774, 384071
 *
 */
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;

/**
 * 
 * A representation of the model object 'Classifier'.
 * 
 *
 * 
 * A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.
 * A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.
 * Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.
 * A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.
 * 
 *
 * 

* The following features are supported: *

    *
  • {@link org.eclipse.uml2.uml.Classifier#getFeatures Feature}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getAttributes Attribute}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getCollaborationUses Collaboration Use}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getGenerals General}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getGeneralizations Generalization}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getPowertypeExtents Powertype Extent}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getInheritedMembers Inherited Member}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#isAbstract Is Abstract}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#isFinalSpecialization Is Final Specialization}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getOwnedUseCases Owned Use Case}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getUseCases Use Case}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getRedefinedClassifiers Redefined Classifier}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getRepresentation Representation}
  • *
  • {@link org.eclipse.uml2.uml.Classifier#getSubstitutions Substitution}
  • *
*

* * @see org.eclipse.uml2.uml.UMLPackage#getClassifier() * @model abstract="true" * @generated */ public interface Classifier extends Namespace, RedefinableElement, Type, TemplateableElement { /** * Returns the value of the 'Is Abstract' attribute. * The default value is "false". * * * * If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. * * @return the value of the 'Is Abstract' attribute. * @see #setIsAbstract(boolean) * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_IsAbstract() * @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" * @generated */ boolean isAbstract(); /** * Sets the value of the '{@link org.eclipse.uml2.uml.Classifier#isAbstract Is Abstract}' attribute. * * * @param value the new value of the 'Is Abstract' attribute. * @see #isAbstract() * @generated */ void setIsAbstract(boolean value); /** * Returns the value of the 'Is Final Specialization' attribute. * The default value is "false". * * * * If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false. * * @return the value of the 'Is Final Specialization' attribute. * @see #setIsFinalSpecialization(boolean) * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_IsFinalSpecialization() * @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" * @generated */ boolean isFinalSpecialization(); /** * Sets the value of the '{@link org.eclipse.uml2.uml.Classifier#isFinalSpecialization Is Final Specialization}' attribute. * * * @param value the new value of the 'Is Final Specialization' attribute. * @see #isFinalSpecialization() * @generated */ void setIsFinalSpecialization(boolean value); /** * Returns the value of the 'Generalization' containment reference list. * The list contents are of type {@link org.eclipse.uml2.uml.Generalization}. * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Generalization#getSpecific Specific}'. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Element#getOwnedElements() Owned Element}'
  • *
*

* * * * Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy. * * @return the value of the 'Generalization' containment reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Generalization() * @see org.eclipse.uml2.uml.Generalization#getSpecific * @model opposite="specific" containment="true" resolveProxies="true" ordered="false" * @generated */ EList getGeneralizations(); /** * Returns the value of the 'Powertype Extent' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.GeneralizationSet}. * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.GeneralizationSet#getPowertype Powertype}'. * * * * Designates the GeneralizationSet of which the associated Classifier is a power type. * * @return the value of the 'Powertype Extent' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_PowertypeExtent() * @see org.eclipse.uml2.uml.GeneralizationSet#getPowertype * @model opposite="powertype" ordered="false" * @generated */ EList getPowertypeExtents(); /** * Retrieves the first {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name' from the 'Powertype Extent' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.GeneralizationSet} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name', or null. * @see #getPowertypeExtents() * @generated */ GeneralizationSet getPowertypeExtent(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name' from the 'Powertype Extent' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.GeneralizationSet} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @return The first {@link org.eclipse.uml2.uml.GeneralizationSet} with the specified 'Name', or null. * @see #getPowertypeExtents() * @generated */ GeneralizationSet getPowertypeExtent(String name, boolean ignoreCase); /** * Returns the value of the 'Feature' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.Feature}. * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers Featuring Classifier}'. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Namespace#getMembers() Member}'
  • *
*

* This feature is a derived union. * * * * Specifies each feature defined in the classifier. * Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features. * * @return the value of the 'Feature' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Feature() * @see org.eclipse.uml2.uml.Feature#getFeaturingClassifiers * @model opposite="featuringClassifier" transient="true" changeable="false" volatile="true" derived="true" ordered="false" * @generated */ EList getFeatures(); /** * Retrieves the first {@link org.eclipse.uml2.uml.Feature} with the specified 'Name' from the 'Feature' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Feature} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Feature} with the specified 'Name', or null. * @see #getFeatures() * @generated */ Feature getFeature(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.Feature} with the specified 'Name' from the 'Feature' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Feature} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Feature} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Feature} with the specified 'Name', or null. * @see #getFeatures() * @generated */ Feature getFeature(String name, boolean ignoreCase, EClass eClass); /** * Returns the value of the 'Inherited Member' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Namespace#getMembers() Member}'
  • *
*

* * * * Specifies all elements inherited by this classifier from the general classifiers. * * @return the value of the 'Inherited Member' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_InheritedMember() * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false" * @generated */ EList getInheritedMembers(); /** * Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Inherited Member' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. * @see #getInheritedMembers() * @generated */ NamedElement getInheritedMember(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name' from the 'Inherited Member' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified 'Name', or null. * @see #getInheritedMembers() * @generated */ NamedElement getInheritedMember(String name, boolean ignoreCase, EClass eClass); /** * Returns the value of the 'Redefined Classifier' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinedElements() Redefined Element}'
  • *
*

* * * * References the Classifiers that are redefined by this Classifier. * * @return the value of the 'Redefined Classifier' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_RedefinedClassifier() * @model ordered="false" * @generated */ EList getRedefinedClassifiers(); /** * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Redefined Classifier' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. * @see #getRedefinedClassifiers() * @generated */ Classifier getRedefinedClassifier(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'Redefined Classifier' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. * @see #getRedefinedClassifiers() * @generated */ Classifier getRedefinedClassifier(String name, boolean ignoreCase, EClass eClass); /** * Returns the value of the 'General' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}. * * * * Specifies the general Classifiers for this Classifier. * References the general classifier in the Generalization relationship. * * @return the value of the 'General' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_General() * @model transient="true" volatile="true" derived="true" ordered="false" * @generated */ EList getGenerals(); /** * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'General' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. * @see #getGenerals() * @generated */ Classifier getGeneral(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name' from the 'General' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified 'Name', or null. * @see #getGenerals() * @generated */ Classifier getGeneral(String name, boolean ignoreCase, EClass eClass); /** * Returns the value of the 'Owned Use Case' containment reference list. * The list contents are of type {@link org.eclipse.uml2.uml.UseCase}. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Namespace#getOwnedMembers() Owned Member}'
  • *
*

* * * * References the use cases owned by this classifier. * * @return the value of the 'Owned Use Case' containment reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_OwnedUseCase() * @model containment="true" resolveProxies="true" ordered="false" * @generated */ EList getOwnedUseCases(); /** * Creates a new {@link org.eclipse.uml2.uml.UseCase}, with the specified 'Name', and appends it to the 'Owned Use Case' containment reference list. * * * @param name The 'Name' for the new {@link org.eclipse.uml2.uml.UseCase}, or null. * @return The new {@link org.eclipse.uml2.uml.UseCase}. * @see #getOwnedUseCases() * @generated */ UseCase createOwnedUseCase(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name' from the 'Owned Use Case' containment reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.UseCase} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name', or null. * @see #getOwnedUseCases() * @generated */ UseCase getOwnedUseCase(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name' from the 'Owned Use Case' containment reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.UseCase} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.UseCase} on demand if not found. * @return The first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name', or null. * @see #getOwnedUseCases() * @generated */ UseCase getOwnedUseCase(String name, boolean ignoreCase, boolean createOnDemand); /** * Returns the value of the 'Use Case' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.UseCase}. * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.UseCase#getSubjects Subject}'. * * * * The set of use cases for which this Classifier is the subject. * * @return the value of the 'Use Case' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_UseCase() * @see org.eclipse.uml2.uml.UseCase#getSubjects * @model opposite="subject" ordered="false" * @generated */ EList getUseCases(); /** * Retrieves the first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name' from the 'Use Case' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.UseCase} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name', or null. * @see #getUseCases() * @generated */ UseCase getUseCase(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name' from the 'Use Case' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.UseCase} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @return The first {@link org.eclipse.uml2.uml.UseCase} with the specified 'Name', or null. * @see #getUseCases() * @generated */ UseCase getUseCase(String name, boolean ignoreCase); /** * Returns the value of the 'Substitution' containment reference list. * The list contents are of type {@link org.eclipse.uml2.uml.Substitution}. * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier Substituting Classifier}'. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Element#getOwnedElements() Owned Element}'
  • *
  • '{@link org.eclipse.uml2.uml.NamedElement#getClientDependencies() Client Dependency}'
  • *
*

* * * * References the substitutions that are owned by this Classifier. * * @return the value of the 'Substitution' containment reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Substitution() * @see org.eclipse.uml2.uml.Substitution#getSubstitutingClassifier * @model opposite="substitutingClassifier" containment="true" resolveProxies="true" ordered="false" * @generated */ EList getSubstitutions(); /** * Creates a new {@link org.eclipse.uml2.uml.Substitution}, with the specified 'Name', and 'Contract', and appends it to the 'Substitution' containment reference list. * * * @param name The 'Name' for the new {@link org.eclipse.uml2.uml.Substitution}, or null. * @param contract The 'Contract' for the new {@link org.eclipse.uml2.uml.Substitution}, or null. * @return The new {@link org.eclipse.uml2.uml.Substitution}. * @see #getSubstitutions() * @generated */ Substitution createSubstitution(String name, Classifier contract); /** * Retrieves the first {@link org.eclipse.uml2.uml.Substitution} with the specified 'Name', and 'Contract' from the 'Substitution' containment reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Substitution} to retrieve, or null. * @param contract The 'Contract' of the {@link org.eclipse.uml2.uml.Substitution} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Substitution} with the specified 'Name', and 'Contract', or null. * @see #getSubstitutions() * @generated */ Substitution getSubstitution(String name, Classifier contract); /** * Retrieves the first {@link org.eclipse.uml2.uml.Substitution} with the specified 'Name', and 'Contract' from the 'Substitution' containment reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Substitution} to retrieve, or null. * @param contract The 'Contract' of the {@link org.eclipse.uml2.uml.Substitution} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.Substitution} on demand if not found. * @return The first {@link org.eclipse.uml2.uml.Substitution} with the specified 'Name', and 'Contract', or null. * @see #getSubstitutions() * @generated */ Substitution getSubstitution(String name, Classifier contract, boolean ignoreCase, boolean createOnDemand); /** * Returns the value of the 'Attribute' reference list. * The list contents are of type {@link org.eclipse.uml2.uml.Property}. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Classifier#getFeatures() Feature}'
  • *
*

* This feature is a derived union. * * * * Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier. * * @return the value of the 'Attribute' reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Attribute() * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false" * @generated */ EList getAttributes(); /** * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified 'Name', and 'Type' from the 'Attribute' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or null. * @param type The 'Type' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Property} with the specified 'Name', and 'Type', or null. * @see #getAttributes() * @generated */ Property getAttribute(String name, Type type); /** * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified 'Name', and 'Type' from the 'Attribute' reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or null. * @param type The 'Type' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Property} with the specified 'Name', and 'Type', or null. * @see #getAttributes() * @generated */ Property getAttribute(String name, Type type, boolean ignoreCase, EClass eClass); /** * Returns the value of the 'Representation' reference. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Classifier#getCollaborationUses() Collaboration Use}'
  • *
*

* * * * References a collaboration use which indicates the collaboration that represents this classifier. * * @return the value of the 'Representation' reference. * @see #setRepresentation(CollaborationUse) * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_Representation() * @model ordered="false" * @generated */ CollaborationUse getRepresentation(); /** * Sets the value of the '{@link org.eclipse.uml2.uml.Classifier#getRepresentation Representation}' reference. * * * @param value the new value of the 'Representation' reference. * @see #getRepresentation() * @generated */ void setRepresentation(CollaborationUse value); /** * Creates a new {@link org.eclipse.uml2.uml.CollaborationUse},with the specified 'Name', and sets the 'Representation' reference. * * * @param name The 'Name' for the new {@link org.eclipse.uml2.uml.CollaborationUse}, or null. * @return The new {@link org.eclipse.uml2.uml.CollaborationUse}. * @see #getRepresentation() * @generated */ CollaborationUse createRepresentation(String name); /** * Returns the value of the 'Collaboration Use' containment reference list. * The list contents are of type {@link org.eclipse.uml2.uml.CollaborationUse}. *

* This feature subsets the following features: *

    *
  • '{@link org.eclipse.uml2.uml.Element#getOwnedElements() Owned Element}'
  • *
*

* * * * References the collaboration uses owned by the classifier. * * @return the value of the 'Collaboration Use' containment reference list. * @see org.eclipse.uml2.uml.UMLPackage#getClassifier_CollaborationUse() * @model containment="true" resolveProxies="true" ordered="false" * @generated */ EList getCollaborationUses(); /** * Creates a new {@link org.eclipse.uml2.uml.CollaborationUse}, with the specified 'Name', and appends it to the 'Collaboration Use' containment reference list. * * * @param name The 'Name' for the new {@link org.eclipse.uml2.uml.CollaborationUse}, or null. * @return The new {@link org.eclipse.uml2.uml.CollaborationUse}. * @see #getCollaborationUses() * @generated */ CollaborationUse createCollaborationUse(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.CollaborationUse} with the specified 'Name' from the 'Collaboration Use' containment reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.CollaborationUse} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.CollaborationUse} with the specified 'Name', or null. * @see #getCollaborationUses() * @generated */ CollaborationUse getCollaborationUse(String name); /** * Retrieves the first {@link org.eclipse.uml2.uml.CollaborationUse} with the specified 'Name' from the 'Collaboration Use' containment reference list. * * * @param name The 'Name' of the {@link org.eclipse.uml2.uml.CollaborationUse} to retrieve, or null. * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.CollaborationUse} on demand if not found. * @return The first {@link org.eclipse.uml2.uml.CollaborationUse} with the specified 'Name', or null. * @see #getCollaborationUses() * @generated */ CollaborationUse getCollaborationUse(String name, boolean ignoreCase, boolean createOnDemand); /** * * * * Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier. * not self.allParents()->includes(self) * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateNoCyclesInGeneralization(DiagnosticChain diagnostics, Map context); /** * * * * A classifier may only specialize classifiers of a valid type. * self.parents()->forAll(c | self.maySpecializeType(c)) * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateSpecializeType(DiagnosticChain diagnostics, Map context); /** * * * * The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses. * true * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateMapsToGeneralizationSet(DiagnosticChain diagnostics, Map context); /** * * * * The parents of a classifier must be non-final. * self.parents()->forAll(not isFinalSpecialization) * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateNonFinalParents(DiagnosticChain diagnostics, Map context); /** * Creates a new {@link org.eclipse.uml2.uml.Generalization}, with the specified 'General', and appends it to the 'Generalization' containment reference list. * * * @param general The 'General' for the new {@link org.eclipse.uml2.uml.Generalization}, or null. * @return The new {@link org.eclipse.uml2.uml.Generalization}. * @see #getGeneralizations() * @generated */ Generalization createGeneralization(Classifier general); /** * Retrieves the first {@link org.eclipse.uml2.uml.Generalization} with the specified 'General' from the 'Generalization' containment reference list. * * * @param general The 'General' of the {@link org.eclipse.uml2.uml.Generalization} to retrieve, or null. * @return The first {@link org.eclipse.uml2.uml.Generalization} with the specified 'General', or null. * @see #getGeneralizations() * @generated */ Generalization getGeneralization(Classifier general); /** * Retrieves the first {@link org.eclipse.uml2.uml.Generalization} with the specified 'General' from the 'Generalization' containment reference list. * * * @param general The 'General' of the {@link org.eclipse.uml2.uml.Generalization} to retrieve, or null. * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.Generalization} on demand if not found. * @return The first {@link org.eclipse.uml2.uml.Generalization} with the specified 'General', or null. * @see #getGeneralizations() * @generated */ Generalization getGeneralization(Classifier general, boolean createOnDemand); /** * * * * Retrieves all the attributes of this classifier, including those inherited from its parents. * * @model kind="operation" ordered="false" * @generated */ EList getAllAttributes(); /** * * * * Retrieves the operations of this classifier. * * @model kind="operation" ordered="false" * @generated */ EList getOperations(); /** * * * * Retrieves all the operations of this classifier, including those inherited from its parents. * * @model kind="operation" ordered="false" * @generated */ EList getAllOperations(); /** * * * * Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier. * @param name The name of the operation to retrieve, or null. * @param parameterNames The parameter names of the operation to retrieve, or null. * @param parameterTypes The parameter types of the operation to retrieve, or null. * * @model ordered="false" nameDataType="org.eclipse.uml2.types.String" nameOrdered="false" parameterNamesDataType="org.eclipse.uml2.types.String" parameterNamesMany="true" parameterTypesUnique="false" parameterTypesMany="true" * @generated */ Operation getOperation(String name, EList parameterNames, EList parameterTypes); /** * * * * Retrieves the first operation with the specified name, parameter names, and parameter types from this classifier, ignoring case if indicated. * @param name The name of the operation to retrieve, or null. * @param parameterNames The parameter names of the operation to retrieve, or null. * @param parameterTypes The parameter types of the operation to retrieve, or null. * @param ignoreCase Whether to ignore case in String comparisons. * * @model ordered="false" nameDataType="org.eclipse.uml2.types.String" nameOrdered="false" parameterNamesDataType="org.eclipse.uml2.types.String" parameterNamesMany="true" parameterTypesUnique="false" parameterTypesMany="true" ignoreCaseDataType="org.eclipse.uml2.types.Boolean" ignoreCaseRequired="true" ignoreCaseOrdered="false" * @generated */ Operation getOperation(String name, EList parameterNames, EList parameterTypes, boolean ignoreCase); /** * * * * Retrieves the interfaces on which this classifier has a usage dependency. * * @model kind="operation" ordered="false" * @generated */ EList getUsedInterfaces(); /** * * * * Retrieves all the interfaces on which this classifier or any of its parents has a usage dependency. * * @model kind="operation" ordered="false" * @generated */ EList getAllUsedInterfaces(); /** * * * * The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints. * result = self.oclIsKindOf(c.oclType) * * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" cRequired="true" cOrdered="false" * @generated */ boolean maySpecializeType(Classifier c); /** * * * * The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature. * result = member->select(oclIsKindOf(Feature)) * * @model ordered="false" * @generated */ EList allFeatures(); /** * * * * The query parents() gives all of the immediate ancestors of a generalized Classifier. * result = generalization.general * * @model ordered="false" * @generated */ EList parents(); /** * * * * The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply. * c.allParents()->includes(self) * result = member->select(m | c.hasVisibilityOf(m)) * * @model ordered="false" cRequired="true" cOrdered="false" * @generated */ EList inheritableMembers(Classifier c); /** * * * * The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent. * self.allParents()->including(self)->collect(c | c.member)->includes(n) * result = (n.visibility <> VisibilityKind::private) * * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" nRequired="true" nOrdered="false" * @generated */ boolean hasVisibilityOf(NamedElement n); /** *

* This operation redefines the following operations: *

    *
  • '{@link org.eclipse.uml2.uml.Type#conformsTo(org.eclipse.uml2.uml.Type) Conforms To}'
  • *
*

* * * * The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations. * result = (self=other) or (self.allParents()->includes(other)) * * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" otherRequired="true" otherOrdered="false" * @generated */ boolean conformsTo(Classifier other); /** * * * * The inherit operation is overridden to exclude redefined properties. * The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition. * result = inhs * * @model ordered="false" inhsMany="true" inhsOrdered="false" * @generated */ EList inherit(EList inhs); /** * * * * The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier. * result = self.parents()->union(self.parents()->collect(p | p.allParents()) * * @model ordered="false" * @generated */ EList allParents(); } // Classifier




© 2015 - 2024 Weber Informatics LLC | Privacy Policy