edu.cmu.sei.aadl.aadl2
Interface Classifier

All Superinterfaces:
AObject, Element, org.eclipse.emf.ecore.EObject, org.eclipse.core.runtime.IAdaptable, NamedElement, Namespace, org.eclipse.emf.common.notify.Notifier, Type
All Known Subinterfaces:
AbstractClassifier, AbstractImplementation, AbstractType, BehavioredImplementation, BusClassifier, BusImplementation, BusType, ComponentClassifier, ComponentImplementation, ComponentType, DataClassifier, DataImplementation, DataType, DeviceClassifier, DeviceImplementation, DeviceType, FeatureGroupType, MemoryClassifier, MemoryImplementation, MemoryType, ProcessClassifier, ProcessImplementation, ProcessorClassifier, ProcessorImplementation, ProcessorType, ProcessType, SubprogramClassifier, SubprogramGroupClassifier, SubprogramGroupImplementation, SubprogramGroupType, SubprogramImplementation, SubprogramType, SystemClassifier, SystemImplementation, SystemType, ThreadClassifier, ThreadGroupClassifier, ThreadGroupImplementation, ThreadGroupType, ThreadImplementation, ThreadType, VirtualBusClassifier, VirtualBusImplementation, VirtualBusType, VirtualProcessorClassifier, VirtualProcessorImplementation, VirtualProcessorType
All Known Implementing Classes:
AbstractClassifierImpl, AbstractImplementationImpl, AbstractTypeImpl, BehavioredImplementationImpl, BusClassifierImpl, BusImplementationImpl, BusTypeImpl, ClassifierImpl, ComponentClassifierImpl, ComponentImplementationImpl, ComponentTypeImpl, DataClassifierImpl, DataImplementationImpl, DataTypeImpl, DeviceClassifierImpl, DeviceImplementationImpl, DeviceTypeImpl, FeatureGroupTypeImpl, MemoryClassifierImpl, MemoryImplementationImpl, MemoryTypeImpl, ProcessClassifierImpl, ProcessImplementationImpl, ProcessorClassifierImpl, ProcessorImplementationImpl, ProcessorTypeImpl, ProcessTypeImpl, SubprogramClassifierImpl, SubprogramGroupClassifierImpl, SubprogramGroupImplementationImpl, SubprogramGroupTypeImpl, SubprogramImplementationImpl, SubprogramTypeImpl, SystemClassifierImpl, SystemImplementationImpl, SystemTypeImpl, ThreadClassifierImpl, ThreadGroupClassifierImpl, ThreadGroupImplementationImpl, ThreadGroupTypeImpl, ThreadImplementationImpl, ThreadTypeImpl, VirtualBusClassifierImpl, VirtualBusImplementationImpl, VirtualBusTypeImpl, VirtualProcessorClassifierImpl, VirtualProcessorImplementationImpl, VirtualProcessorTypeImpl

public interface Classifier
extends Namespace, Type

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.

The following features are supported:

See Also:
Aadl2Package.getClassifier()

Field Summary
 
Fields inherited from interface edu.cmu.sei.aadl.aadl2.parsesupport.AObject
copyright
 
Method Summary
 org.eclipse.emf.common.util.EList<ClassifierFeature> allFeatures()
          The query allFeatures() gives all of the features in the namespace of the classifier.
 org.eclipse.emf.common.util.EList<Classifier> allParents()
          The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
 boolean checkAppliesToClassifier(Property property)
          Check whether the applies to classifiers in a property definition describe this classifier.
 AnnexSubclause createOwnedAnnexSubclause()
          Creates a new DefaultAnnexSubclause and appends it to the 'Owned Annex Subclause' containment reference list
 AnnexSubclause createOwnedAnnexSubclause(org.eclipse.emf.ecore.EClass eClass)
          Creates a new AnnexSubclause and appends it to the 'Owned Annex Subclause' containment reference list
 Prototype createOwnedPrototype(org.eclipse.emf.ecore.EClass eClass)
          Creates a new Prototype and appends it to the 'Owned Prototype' containment reference list
 PrototypeBinding createOwnedPrototypeBinding(org.eclipse.emf.ecore.EClass eClass)
          Creates a new PrototypeBinding and appends it to the 'Owned Prototype Binding' containment reference list
 org.eclipse.emf.common.util.EList<Classifier> getAllExtendPlusSelf()
          Return a list of classifiers extended by this classifier including itself.
 org.eclipse.emf.common.util.EList<Feature> getAllFeatures()
          get all features including inherited features
 org.eclipse.emf.common.util.EList<PropertyAssociation> getAllPropertyAssociations()
          Get all the property associations, including those from any ancestor classifiers.
 org.eclipse.emf.common.util.EList<ClassifierFeature> getClassifierFeatures()
          Returns the value of the 'Classifier Feature' reference list.
 Classifier getExtended()
          returns the reference to the classifier being extended
 org.eclipse.emf.common.util.EList<Generalization> getGeneralizations()
          Returns the value of the 'Generalization' containment reference list.
 org.eclipse.emf.common.util.EList<Classifier> getGenerals()
          Returns the value of the 'General' reference list.
 org.eclipse.emf.common.util.EList<NamedElement> getInheritedMembers()
          Returns the value of the 'Inherited Member' reference list.
 org.eclipse.emf.common.util.EList<AnnexSubclause> getOwnedAnnexSubclauses()
          Returns the value of the 'Owned Annex Subclause' containment reference list.
 org.eclipse.emf.common.util.EList<PrototypeBinding> getOwnedPrototypeBindings()
          Returns the value of the 'Owned Prototype Binding' containment reference list.
 org.eclipse.emf.common.util.EList<Prototype> getOwnedPrototypes()
          Returns the value of the 'Owned Prototype' containment reference list.
 boolean hasVisibilityOf(NamedElement n)
          The query hasVisibilityOf() determines whether a named element is visible in the classifier.
 org.eclipse.emf.common.util.EList<NamedElement> inherit(org.eclipse.emf.common.util.EList<NamedElement> inhs)
          The query inherit() defines how to inherit a set of elements.
 org.eclipse.emf.common.util.EList<NamedElement> inheritableMembers(Classifier c)
          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.
 org.eclipse.emf.common.util.EList<NamedElement> inheritedMember()
          The inheritedMember association is derived by inheriting the inheritable members of the parents.
 boolean isDescendentOf(Classifier c)
          Does this component classifier descend from the given classifier?
 boolean isNoAnnexes()
          Returns the value of the 'No Annexes' attribute
 boolean isNoProperties()
          Returns the value of the 'No Properties' attribute
 boolean isNoPrototypes()
          Returns the value of the 'No Prototypes' attribute
 PrototypeBinding lookupPrototypeBinding(Prototype proto)
           
 boolean maySpecializeType(Classifier c)
          The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type.
 boolean no_cycles_in_generalization(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          Generalization hierarchies must be directed and acyclical.
 org.eclipse.emf.common.util.EList<Classifier> parents()
          The query parents() gives all of the immediate ancestors of a generalized Classifier.
 void setNoAnnexes(boolean value)
          Sets the value of the 'No Annexes' attribute
 void setNoProperties(boolean value)
          Sets the value of the 'No Properties' attribute
 void setNoPrototypes(boolean value)
          Sets the value of the 'No Prototypes' attribute
 boolean specialize_type(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          A classifier may only specialize classifiers of a valid type.
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.Namespace
findNamedElement, getMembers, getNamesOfMember, getOwnedMembers, members_distinguishable, membersAreDistinguishable
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.Type
conformsTo
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.NamedElement
acceptsProperty, allNamespaces, checkPropertyAssociation, createOwnedPropertyAssociation, getName, getNamespace, getOwnedPropertyAssociations, getPropertyValue, getPropertyValueInternal, getPropertyValueList, getQualifiedName, getSimplePropertyValue, has_no_qualified_name, has_qualified_name, hasName, isDistinguishableFrom, qualifiedName, removePropertyAssociations, removePropertyAssociations, separator, setName, setPropertyValue, setPropertyValue, setPropertyValue
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.Element
allOwnedElements, createOwnedComment, getChildren, getContainingClassifier, getContainingComponentImpl, getElementRoot, getOwnedComments, getOwnedElements, getOwner, has_owner, mustBeOwned, not_own_self
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.parsesupport.AObject
getLocationReference, setLocationReference, setLocationReference
 
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, 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.core.runtime.IAdaptable
getAdapter
 

Method Detail

getClassifierFeatures

org.eclipse.emf.common.util.EList<ClassifierFeature> getClassifierFeatures()
Returns the value of the 'Classifier Feature' reference list. The list contents are of type ClassifierFeature. It is bidirectional and its opposite is 'Featuring Classifier'.

This feature subsets the following features:

This feature is a derived union. Specifies each feature defined in the classifier.

Returns:
the value of the 'Classifier Feature' reference list.
See Also:
Aadl2Package.getClassifier_ClassifierFeature(), ClassifierFeature.getFeaturingClassifiers()

getInheritedMembers

org.eclipse.emf.common.util.EList<NamedElement> getInheritedMembers()
Returns the value of the 'Inherited Member' reference list. The list contents are of type NamedElement.

This feature subsets the following features:

Specifies all elements inherited by this classifier from the general classifiers.

Returns:
the value of the 'Inherited Member' reference list.
See Also:
Aadl2Package.getClassifier_InheritedMember()

getGeneralizations

org.eclipse.emf.common.util.EList<Generalization> getGeneralizations()
Returns the value of the 'Generalization' containment reference list. The list contents are of type Generalization. It is bidirectional and its opposite is 'Specific'.

This feature subsets the following features:

This feature is a derived union. Specifies the Generalization relationships for this Classifier. These Generalizations navigate to more general classifiers in the generalization hierarchy.

Returns:
the value of the 'Generalization' containment reference list.
See Also:
Aadl2Package.getClassifier_Generalization(), Generalization.getSpecific()

getGenerals

org.eclipse.emf.common.util.EList<Classifier> getGenerals()
Returns the value of the 'General' reference list. The list contents are of type Classifier. This feature is a derived union. Specifies the more general classifiers in the generalization hierarchy for this Classifier.

Returns:
the value of the 'General' reference list.
See Also:
Aadl2Package.getClassifier_General()

getOwnedPrototypes

org.eclipse.emf.common.util.EList<Prototype> getOwnedPrototypes()
Returns the value of the 'Owned Prototype' containment reference list. The list contents are of type Prototype.

This feature subsets the following features:

If the meaning of the 'Owned Prototype' containment reference list isn't clear, there really should be more of a description here...

Returns:
the value of the 'Owned Prototype' containment reference list.
See Also:
Aadl2Package.getClassifier_OwnedPrototype()

createOwnedPrototype

Prototype createOwnedPrototype(org.eclipse.emf.ecore.EClass eClass)
Creates a new Prototype and appends it to the 'Owned Prototype' containment reference list.

Parameters:
eClass - The Ecore class of the Prototype to create.
Returns:
The new Prototype.
See Also:
getOwnedPrototypes()

getOwnedPrototypeBindings

org.eclipse.emf.common.util.EList<PrototypeBinding> getOwnedPrototypeBindings()
Returns the value of the 'Owned Prototype Binding' containment reference list. The list contents are of type PrototypeBinding.

If the meaning of the 'Owned Prototype Binding' containment reference list isn't clear, there really should be more of a description here...

Returns:
the value of the 'Owned Prototype Binding' containment reference list.
See Also:
Aadl2Package.getClassifier_OwnedPrototypeBinding()

createOwnedPrototypeBinding

PrototypeBinding createOwnedPrototypeBinding(org.eclipse.emf.ecore.EClass eClass)
Creates a new PrototypeBinding and appends it to the 'Owned Prototype Binding' containment reference list.

Parameters:
eClass - The Ecore class of the PrototypeBinding to create.
Returns:
The new PrototypeBinding.
See Also:
getOwnedPrototypeBindings()

getOwnedAnnexSubclauses

org.eclipse.emf.common.util.EList<AnnexSubclause> getOwnedAnnexSubclauses()
Returns the value of the 'Owned Annex Subclause' containment reference list. The list contents are of type AnnexSubclause.

This feature subsets the following features:

If the meaning of the 'Owned Annex Subclause' containment reference list isn't clear, there really should be more of a description here...

Returns:
the value of the 'Owned Annex Subclause' containment reference list.
See Also:
Aadl2Package.getClassifier_OwnedAnnexSubclause()

createOwnedAnnexSubclause

AnnexSubclause createOwnedAnnexSubclause(org.eclipse.emf.ecore.EClass eClass)
Creates a new AnnexSubclause and appends it to the 'Owned Annex Subclause' containment reference list.

Parameters:
eClass - The Ecore class of the AnnexSubclause to create.
Returns:
The new AnnexSubclause.
See Also:
getOwnedAnnexSubclauses()

createOwnedAnnexSubclause

AnnexSubclause createOwnedAnnexSubclause()
Creates a new DefaultAnnexSubclause and appends it to the 'Owned Annex Subclause' containment reference list.

Returns:
The new DefaultAnnexSubclause.
See Also:
getOwnedAnnexSubclauses()

isNoProperties

boolean isNoProperties()
Returns the value of the 'No Properties' attribute.

If the meaning of the 'No Properties' attribute isn't clear, there really should be more of a description here...

Returns:
the value of the 'No Properties' attribute.
See Also:
setNoProperties(boolean), Aadl2Package.getClassifier_NoProperties()

setNoProperties

void setNoProperties(boolean value)
Sets the value of the 'No Properties' attribute.

Parameters:
value - the new value of the 'No Properties' attribute.
See Also:
isNoProperties()

isNoPrototypes

boolean isNoPrototypes()
Returns the value of the 'No Prototypes' attribute.

If the meaning of the 'No Prototypes' attribute isn't clear, there really should be more of a description here...

Returns:
the value of the 'No Prototypes' attribute.
See Also:
setNoPrototypes(boolean), Aadl2Package.getClassifier_NoPrototypes()

setNoPrototypes

void setNoPrototypes(boolean value)
Sets the value of the 'No Prototypes' attribute.

Parameters:
value - the new value of the 'No Prototypes' attribute.
See Also:
isNoPrototypes()

isNoAnnexes

boolean isNoAnnexes()
Returns the value of the 'No Annexes' attribute.

If the meaning of the 'No Annexes' attribute isn't clear, there really should be more of a description here...

Returns:
the value of the 'No Annexes' attribute.
See Also:
setNoAnnexes(boolean), Aadl2Package.getClassifier_NoAnnexes()

setNoAnnexes

void setNoAnnexes(boolean value)
Sets the value of the 'No Annexes' attribute.

Parameters:
value - the new value of the 'No Annexes' attribute.
See Also:
isNoAnnexes()

no_cycles_in_generalization

boolean no_cycles_in_generalization(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                    java.util.Map<java.lang.Object,java.lang.Object> context)
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)

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

specialize_type

boolean specialize_type(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                        java.util.Map<java.lang.Object,java.lang.Object> context)
A classifier may only specialize classifiers of a valid type. self.parents()->forAll(c | self.maySpecializeType(c))

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

allFeatures

org.eclipse.emf.common.util.EList<ClassifierFeature> allFeatures()
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))


inheritedMember

org.eclipse.emf.common.util.EList<NamedElement> inheritedMember()
The inheritedMember association is derived by inheriting the inheritable members of the parents. result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self))


parents

org.eclipse.emf.common.util.EList<Classifier> parents()
The query parents() gives all of the immediate ancestors of a generalized Classifier. result = general


allParents

org.eclipse.emf.common.util.EList<Classifier> allParents()
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())


inheritableMembers

org.eclipse.emf.common.util.EList<NamedElement> inheritableMembers(Classifier c)
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))


hasVisibilityOf

boolean hasVisibilityOf(NamedElement n)
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()->collect(c | c.member)->includes(n) result = if (self.inheritedMember->includes (n)) then (n.visibility <> #private) else true


inherit

org.eclipse.emf.common.util.EList<NamedElement> inherit(org.eclipse.emf.common.util.EList<NamedElement> inhs)
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


maySpecializeType

boolean maySpecializeType(Classifier c)
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)


getAllExtendPlusSelf

org.eclipse.emf.common.util.EList<Classifier> getAllExtendPlusSelf()
Return a list of classifiers extended by this classifier including itself. That is, if classifier C extends classifier B that extends classifier A, then the list will contain classifiers C, B, and A in that order.

Although a well-formed model should not contain loops in the extension hierarchy, they may arise from erroneous editors or through badly formed AAXL files. This method is safe to use even if a cycle exists. In such a case, the returned list will contain all the classifiers up to but not including the cyclic reference. So if the cycle is A extends B extends C extends D extends A, and the method is invoked on classifier C, then the returned list will be [C, D, A, B].


getExtended

Classifier getExtended()
returns the reference to the classifier being extended

Returns:
classifier

getAllFeatures

org.eclipse.emf.common.util.EList<Feature> getAllFeatures()
get all features including inherited features

Returns:
EList of features

isDescendentOf

boolean isDescendentOf(Classifier c)
Does this component classifier descend from the given classifier? A component type descends from another component type if they are the same type, it extends the other type, or it extends a descendant of the other type. A component type never descends from a component implementation or a feature group type. A component implementation descends from another component implementation if they are the same implementation, it extends the other implementation, or it extends a desendant of the other implementation. A component implementation descends from a component type if the implementation's component type descends from the type. A component implementation never descends from a feature group type. A feature group type descends from another feature group type if they are the same, it extends the other feature group type, or it extends a descendant of the other feature group type. A feature group type type never descends from another component type or implementation.

Returns:
Whether this classifier descends from the given classifier.

checkAppliesToClassifier

boolean checkAppliesToClassifier(Property property)
Check whether the applies to classifiers in a property definition describe this classifier.

Parameters:
property - The property definition
Returns:
Whether this classifier is a descendant of one of the classifiers named in the property definition.

getAllPropertyAssociations

org.eclipse.emf.common.util.EList<PropertyAssociation> getAllPropertyAssociations()
Get all the property associations, including those from any ancestor classifiers.

Returns:
A list of the property associations. Property associations from an ancestor component classifier will appear before those of any descendents.

lookupPrototypeBinding

PrototypeBinding lookupPrototypeBinding(Prototype proto)