edu.cmu.sei.aadl.model.feature.impl
Class PortGroupTypeImpl

java.lang.Object
  extended by org.eclipse.emf.common.notify.impl.BasicNotifierImpl
      extended by org.eclipse.emf.ecore.impl.BasicEObjectImpl
          extended by org.eclipse.emf.ecore.impl.EObjectImpl
              extended by edu.cmu.sei.aadl.model.core.impl.AObjectImpl
                  extended by edu.cmu.sei.aadl.model.core.impl.NamedElementImpl
                      extended by edu.cmu.sei.aadl.model.core.impl.PropertyHolderImpl
                          extended by edu.cmu.sei.aadl.model.core.impl.ClassifierImpl
                              extended by edu.cmu.sei.aadl.model.feature.impl.PortGroupTypeImpl
All Implemented Interfaces:
AObject, Classifier, NamedElement, PropertyHolder, PortGroupType, org.eclipse.core.runtime.IAdaptable, org.eclipse.emf.common.notify.Notifier, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.InternalEObject

public class PortGroupTypeImpl
extends ClassifierImpl
implements PortGroupType

An implementation of the model object 'Port Group Type'.

The following features are implemented:


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolder, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderBaseImpl, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderImpl
 
Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList<E extends java.lang.Object & org.eclipse.emf.common.notify.Adapter>
 
Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.InternalEObject
org.eclipse.emf.ecore.InternalEObject.EStore
 
Field Summary
static java.lang.String copyright
           
protected  PortGroupType extend
          The cached value of the 'Extend' reference
protected  PortGroupFeatures features
          The cached value of the 'Features' containment reference
protected  ClassifierReference inverseClassifierReference
          holds inverse classifier reference
protected  PortGroupType inverseOf
          The cached value of the 'Inverse Of' reference
 
Fields inherited from class edu.cmu.sei.aadl.model.core.impl.ClassifierImpl
annexSubclause, extendedClassifierReference
 
Fields inherited from class edu.cmu.sei.aadl.model.core.impl.PropertyHolderImpl
properties
 
Fields inherited from class edu.cmu.sei.aadl.model.core.impl.NamedElementImpl
name, NAME_EDEFAULT
 
Fields inherited from class edu.cmu.sei.aadl.model.core.impl.AObjectImpl
comment, locationReference
 
Fields inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eContainer, eContainerFeatureID, EDELIVER, EDYNAMIC_CLASS, eFlags, ELAST_EOBJECT_FLAG, ELAST_NOTIFIER_FLAG, eProperties, EPROXY
 
Fields inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
EVIRTUAL_GET, EVIRTUAL_IS_SET, EVIRTUAL_NO_VALUE, EVIRTUAL_SET, EVIRTUAL_UNSET
 
Fields inherited from interface org.eclipse.emf.ecore.InternalEObject
EOPPOSITE_FEATURE_BASE
 
Constructor Summary
protected PortGroupTypeImpl()
           
 
Method Summary
 boolean acceptsProperty(PropertyDefinition property)
          Query whether this object accepts values for the given property.
 boolean areFeatureDirectionsInverted()
          Should the directions of the features returned by getAllFeature() be inverted.
 PortGroupType basicGetExtend()
           
 PortGroupType basicGetInverseOf()
           
 org.eclipse.emf.common.notify.NotificationChain basicSetFeatures(PortGroupFeatures newFeatures, org.eclipse.emf.common.notify.NotificationChain msgs)
           
 boolean deepIsInverseOf(PortGroupType other)
          Determines if the two port group type by recursively unwrapping nested port groups.
 java.lang.Object eGet(int featureID, boolean resolve, boolean coreType)
           
 org.eclipse.emf.common.notify.NotificationChain eInverseRemove(org.eclipse.emf.ecore.InternalEObject otherEnd, int featureID, org.eclipse.emf.common.notify.NotificationChain msgs)
           
 boolean eIsSet(int featureID)
           
 void eSet(int featureID, java.lang.Object newValue)
           
protected  org.eclipse.emf.ecore.EClass eStaticClass()
           
 void eUnset(int featureID)
           
 Feature findFeature(java.lang.String name)
          find the feature with the given name in a port group type first we look in the port group type itself, then we look in ancestors if they exist.
 org.eclipse.emf.common.util.EList getAllFeature()
          Get a list of Feature objects representing those features in the port group type, including those from super types or inverses.
 PortGroupType getExtend()
           
 org.eclipse.emf.common.util.EList getFeature()
          get the locally declared features of a port group type
 PortGroupFeatures getFeatures()
           
 int getIndexOf(Feature feature)
          return the index of the feature in the port group type
 ClassifierReference getInverseClassifierReference()
          get inverse reference names from ClassifierReference
 PortGroupType getInverseOf()
           
 java.lang.String getInverseOfQualifiedName()
          get qualified name of inverse. null if no inverse
 java.lang.String getPackageName()
          returns a package name if the component type is contained in a package It retrieves the name from the containing AadlPackage object
 void getPropertyValueInternal(PropertyDefinition pn, ModalPropertyValueAccumulator pva, boolean fromInstanceSlaveCall)
          Helper routine for computing the value of the property.
 java.lang.String getQualifiedName()
          get qualified port group type name.
 org.eclipse.emf.common.util.EList getXAllFeature()
          get all features including inherited features
 boolean hasExtends()
          returns true if classifier is an extension of another classifier
 boolean isDescendentOf(PortGroupType cc)
          Does this port group type descend from the given classifier?
 boolean isInverseOf()
          returns true if this port group type is an inverse of another port group type In this case the direction of the features returned must be inverted by the recipient of the feature list.
 boolean isInverseOf(PortGroupType pgt)
          returns true of this port group type is the inverse of the port group type pgt
 void setExtend(PortGroupType newExtend)
          phf: we want an add version for EList
 void setFeatures(PortGroupFeatures newFeatures)
          phf: we want an add version for EList
 void setInverseClassifierReference(ClassifierReference cr)
          set inverse reference names from ClassifierReference
 void setInverseOf(PortGroupType newInverseOf)
          phf: we want an add version for EList
 
Methods inherited from class edu.cmu.sei.aadl.model.core.impl.ClassifierImpl
addAnnexSubclause, getAllPropertyAssociation, getAnnexSubclause, getExtendedClassifierReference, getExtendedQualifiedName, getQualifiedTypeName, getXAllExtend, getXAllExtendPlusSelf, getXExtend, setExtendedClassifierReference
 
Methods inherited from class edu.cmu.sei.aadl.model.core.impl.PropertyHolderImpl
addProperty, addPropertyValue, basicSetProperties, checkPropertyAssociation, createAccumulator, createPropertyAssociation, findPropertyAssociation, getProperties, getPropertyAssociation, getPropertyValue, getPropertyValueList, getSimplePropertyValue, isModalPropertyValue, removeContainedPropertyAssociations, removeContainedPropertyAssociations, removePropertyAssociations, removePropertyAssociations, setContainedPropertyValue, setContainedPropertyValue, setContainedPropertyValue, setContainedPropertyValue, setProperties, setPropertyValue, setPropertyValue, setPropertyValue, setPropertyValue
 
Methods inherited from class edu.cmu.sei.aadl.model.core.impl.NamedElementImpl
checkName, getName, setName, toString
 
Methods inherited from class edu.cmu.sei.aadl.model.core.impl.AObjectImpl
addComment, eObjectForURIFragmentSegment, eURIFragmentSegment, getAadlSpec, getAdapter, getAObjectRoot, getChildren, getComment, getContainingClassifier, getContainingClassifierNameSpace, getContainingComponentImpl, getContainingComponentType, getContainingPropertyAssociationDefinitionConstant, getContainingSubcomponent, getLocationReference, getReferencedObject, getSecondReferencedObject, getSystemInstance, setLocationReference, setLocationReference
 
Methods inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eBasicAdapters, eBasicProperties, eBasicSetContainer, eClass, eContainerFeatureID, eDeliver, eInternalContainer, eIsProxy, eProperties, eSetClass, eSetDeliver, eSetProxyURI
 
Methods inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
eAddVirtualValue, eAllContents, eBaseStructuralFeatureID, eBasicRemoveFromContainer, eBasicRemoveFromContainerFeature, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, eContents, eCrossReferences, eDerivedStructuralFeatureID, eDerivedStructuralFeatureID, eDirectResource, eDynamicBasicRemoveFromContainer, eDynamicClass, eDynamicFeature, eDynamicFeatureID, eDynamicGet, eDynamicGet, eDynamicGet, eDynamicInverseAdd, eDynamicInverseAdd, eDynamicInverseRemove, eDynamicInverseRemove, eDynamicIsSet, eDynamicIsSet, eDynamicIsSet, eDynamicSet, eDynamicSet, eDynamicSet, eDynamicUnset, eDynamicUnset, eDynamicUnset, eGet, eGet, eGet, eHasSettings, eInternalResource, eInverseAdd, eInverseAdd, eInverseRemove, eIsSet, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eProxyURI, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStore, eUnset, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues
 
Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
eNotificationRequired, eNotify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.cmu.sei.aadl.model.core.Classifier
addAnnexSubclause, getAllPropertyAssociation, getAnnexSubclause, getExtendedClassifierReference, getExtendedQualifiedName, getXAllExtend, getXAllExtendPlusSelf, getXExtend, setExtendedClassifierReference
 
Methods inherited from interface edu.cmu.sei.aadl.model.core.PropertyHolder
addProperty, addPropertyValue, checkPropertyAssociation, findPropertyAssociation, getProperties, getPropertyAssociation, getPropertyValue, getPropertyValueList, getSimplePropertyValue, isModalPropertyValue, removeContainedPropertyAssociations, removeContainedPropertyAssociations, removePropertyAssociations, removePropertyAssociations, setContainedPropertyValue, setContainedPropertyValue, setContainedPropertyValue, setContainedPropertyValue, setProperties, setPropertyValue, setPropertyValue, setPropertyValue, setPropertyValue
 
Methods inherited from interface edu.cmu.sei.aadl.model.core.NamedElement
getName, setName
 
Methods inherited from interface edu.cmu.sei.aadl.model.core.AObject
addComment, getAadlSpec, getAObjectRoot, getChildren, getComment, getContainingClassifier, getContainingClassifierNameSpace, getContainingComponentImpl, getContainingComponentType, getContainingPropertyAssociationDefinitionConstant, getContainingSubcomponent, getLocationReference, getReferencedObject, getSecondReferencedObject, getSystemInstance, 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
 
Methods inherited from interface org.eclipse.emf.ecore.InternalEObject
eNotificationRequired
 

Field Detail

copyright

public static final java.lang.String copyright

See Also:
Constant Field Values

inverseClassifierReference

protected ClassifierReference inverseClassifierReference
holds inverse classifier reference


extend

protected PortGroupType extend
The cached value of the 'Extend' reference.

See Also:
getExtend()

inverseOf

protected PortGroupType inverseOf
The cached value of the 'Inverse Of' reference.

See Also:
getInverseOf()

features

protected PortGroupFeatures features
The cached value of the 'Features' containment reference.

See Also:
getFeatures()
Constructor Detail

PortGroupTypeImpl

protected PortGroupTypeImpl()

Method Detail

eStaticClass

protected org.eclipse.emf.ecore.EClass eStaticClass()

Overrides:
eStaticClass in class ClassifierImpl

getExtend

public PortGroupType getExtend()

Specified by:
getExtend in interface PortGroupType
Returns:
the value of the 'Extend' reference.
See Also:
PortGroupType.setExtend(PortGroupType), FeaturePackage.getPortGroupType_Extend()

basicGetExtend

public PortGroupType basicGetExtend()


setExtend

public void setExtend(PortGroupType newExtend)
phf: we want an add version for EList

Specified by:
setExtend in interface PortGroupType
Parameters:
newExtend - the new value of the 'Extend' reference.
See Also:
PortGroupType.getExtend()

getInverseOf

public PortGroupType getInverseOf()

Specified by:
getInverseOf in interface PortGroupType
Returns:
the value of the 'Inverse Of' reference.
See Also:
PortGroupType.setInverseOf(PortGroupType), FeaturePackage.getPortGroupType_InverseOf()

basicGetInverseOf

public PortGroupType basicGetInverseOf()


setInverseOf

public void setInverseOf(PortGroupType newInverseOf)
phf: we want an add version for EList

Specified by:
setInverseOf in interface PortGroupType
Parameters:
newInverseOf - the new value of the 'Inverse Of' reference.
See Also:
PortGroupType.getInverseOf()

getFeatures

public PortGroupFeatures getFeatures()

Specified by:
getFeatures in interface PortGroupType
Returns:
the value of the 'Features' containment reference.
See Also:
PortGroupType.setFeatures(PortGroupFeatures), FeaturePackage.getPortGroupType_Features()

getFeature

public org.eclipse.emf.common.util.EList getFeature()
get the locally declared features of a port group type

Specified by:
getFeature in interface PortGroupType
Returns:
A list of Feature objects

getXAllFeature

public final org.eclipse.emf.common.util.EList getXAllFeature()
Description copied from interface: Classifier
get all features including inherited features

Specified by:
getXAllFeature in interface Classifier
Returns:
EList of Features

areFeatureDirectionsInverted

public boolean areFeatureDirectionsInverted()
Should the directions of the features returned by getAllFeature() be inverted. This includes inverting the directions of features of nested port groups.

Specified by:
areFeatureDirectionsInverted in interface PortGroupType

getAllFeature

public org.eclipse.emf.common.util.EList getAllFeature()
Get a list of Feature objects representing those features in the port group type, including those from super types or inverses. In case of an inverse port group type, we returns its ports of the inverse target.

Specified by:
getAllFeature in interface PortGroupType
Returns:
A list of Feature objects

basicSetFeatures

public org.eclipse.emf.common.notify.NotificationChain basicSetFeatures(PortGroupFeatures newFeatures,
                                                                        org.eclipse.emf.common.notify.NotificationChain msgs)


setFeatures

public void setFeatures(PortGroupFeatures newFeatures)
phf: we want an add version for EList

Specified by:
setFeatures in interface PortGroupType
Parameters:
newFeatures - the new value of the 'Features' containment reference.
See Also:
PortGroupType.getFeatures()

eInverseRemove

public org.eclipse.emf.common.notify.NotificationChain eInverseRemove(org.eclipse.emf.ecore.InternalEObject otherEnd,
                                                                      int featureID,
                                                                      org.eclipse.emf.common.notify.NotificationChain msgs)

Overrides:
eInverseRemove in class ClassifierImpl

eGet

public java.lang.Object eGet(int featureID,
                             boolean resolve,
                             boolean coreType)

Specified by:
eGet in interface org.eclipse.emf.ecore.InternalEObject
Overrides:
eGet in class ClassifierImpl

eSet

public void eSet(int featureID,
                 java.lang.Object newValue)

Specified by:
eSet in interface org.eclipse.emf.ecore.InternalEObject
Overrides:
eSet in class ClassifierImpl

eUnset

public void eUnset(int featureID)

Specified by:
eUnset in interface org.eclipse.emf.ecore.InternalEObject
Overrides:
eUnset in class ClassifierImpl

eIsSet

public boolean eIsSet(int featureID)

Specified by:
eIsSet in interface org.eclipse.emf.ecore.InternalEObject
Overrides:
eIsSet in class ClassifierImpl

setInverseClassifierReference

public void setInverseClassifierReference(ClassifierReference cr)
set inverse reference names from ClassifierReference

Specified by:
setInverseClassifierReference in interface PortGroupType

getInverseClassifierReference

public ClassifierReference getInverseClassifierReference()
get inverse reference names from ClassifierReference

Specified by:
getInverseClassifierReference in interface PortGroupType

getPackageName

public java.lang.String getPackageName()
returns a package name if the component type is contained in a package It retrieves the name from the containing AadlPackage object

Specified by:
getPackageName in interface Classifier
Specified by:
getPackageName in interface PortGroupType
Overrides:
getPackageName in class ClassifierImpl
Returns:
String package name or empty string

getQualifiedName

public java.lang.String getQualifiedName()
get qualified port group type name. Always a String

Specified by:
getQualifiedName in interface Classifier
Specified by:
getQualifiedName in interface PortGroupType
Overrides:
getQualifiedName in class ClassifierImpl

getInverseOfQualifiedName

public java.lang.String getInverseOfQualifiedName()
get qualified name of inverse. null if no inverse

Specified by:
getInverseOfQualifiedName in interface PortGroupType

findFeature

public Feature findFeature(java.lang.String name)
find the feature with the given name in a port group type first we look in the port group type itself, then we look in ancestors if they exist. Otherwise we look in the inverse port group type if it exists

Specified by:
findFeature in interface PortGroupType
Parameters:
name - String
Returns:
Feature or null if not found

acceptsProperty

public final boolean acceptsProperty(PropertyDefinition property)
Description copied from interface: PropertyHolder
Query whether this object accepts values for the given property. That is, does the given property apply to this element?

Specified by:
acceptsProperty in interface PropertyHolder
Overrides:
acceptsProperty in class PropertyHolderImpl
Parameters:
property - The property definition to test.
Returns:
true if the given property applies to this element.

getPropertyValueInternal

public final void getPropertyValueInternal(PropertyDefinition pn,
                                           ModalPropertyValueAccumulator pva,
                                           boolean fromInstanceSlaveCall)
                                    throws InvalidModelException
Description copied from interface: PropertyHolder
Helper routine for computing the value of the property. As the name suggests, this method is not intended for use by clients of the model, but is used during the property lookup process. It should really be a protected method in PropertyHolderImpl, but because of the way that EMF deals with multiple inheritance, not all implementations of PropertyHolder actually extend from PropertyHolderImpl.

In particular, this method does not create a new property value accumulator—it uses the one provided—and it does not look up the default value of the property.

Specified by:
getPropertyValueInternal in interface PropertyHolder
Overrides:
getPropertyValueInternal in class PropertyHolderImpl
Parameters:
pn - The property whose value is to be retreived. It must be the case that this property is accepted by the property holder, i.e., PropertyHolder.acceptsProperty(PropertyDefinition) must return true.
pva - The working property value accumulator to add results to.
fromInstanceSlaveCall - true if the call is performing a lookup on the declarative model on behalf of an instance model object. When true the lookup algorithm ignores the "inherits" attribute on property definitions when it would mean that the lookup should defer to the containing component implemenation. Also disables the interpretation of contained property associations in the declarative model because they have already been applied to the instance model at this point. The expectation is that the instance model lookup itself is not ignoring the inherits attribute, and thus any inherited property values will still be found correctly. Interpreting the inherits attribute during the declarative model search is redundant and causes problems later on. This flag does not affect lookup for feature declarations because in that case the inherit flag defers to the component type or port group type.
Throws:
InvalidModelException - Thrown if the property value cannot be retreived because the model is incomplete or otherwise invalid.

isDescendentOf

public final boolean isDescendentOf(PortGroupType cc)
Does this port group type descend from the given classifier? A port group type descends from another port group type if they are the same, it extends the other port group type, or it extends a descendent of the other port group type. A port group type never descends from another component type or implementation.

Returns:
Whether this classifier descends from the given classifier.

isInverseOf

public boolean isInverseOf()
returns true if this port group type is an inverse of another port group type In this case the direction of the features returned must be inverted by the recipient of the feature list.

Specified by:
isInverseOf in interface PortGroupType
Returns:
true if the port group type is the inverse of another

isInverseOf

public boolean isInverseOf(PortGroupType pgt)
returns true of this port group type is the inverse of the port group type pgt

Specified by:
isInverseOf in interface PortGroupType
Parameters:
pgt - PortGroupType the port group type to compare to
Returns:
boolean true if they are inverse of each other

deepIsInverseOf

public boolean deepIsInverseOf(PortGroupType other)
Description copied from interface: PortGroupType
Determines if the two port group type by recursively unwrapping nested port groups. This is more thorough than PortGroupType.isInverseOf() because that method only relies on the declared inverses in the port group type declarations.

Specified by:
deepIsInverseOf in interface PortGroupType

getIndexOf

public int getIndexOf(Feature feature)
return the index of the feature in the port group type

Specified by:
getIndexOf in interface PortGroupType
Parameters:
feature - Feature
Returns:
int index of feature or -1 if not found

hasExtends

public boolean hasExtends()
returns true if classifier is an extension of another classifier

Specified by:
hasExtends in interface Classifier
Overrides:
hasExtends in class ClassifierImpl
Returns:
true if extends is specified by reference or by names