edu.cmu.sei.aadl.aadl2.instance.impl
Class InstanceObjectImpl

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.aadl2.parsesupport.AObjectImpl
                  extended by edu.cmu.sei.aadl.aadl2.impl.ElementImpl
                      extended by edu.cmu.sei.aadl.aadl2.impl.NamedElementImpl
                          extended by edu.cmu.sei.aadl.aadl2.instance.impl.InstanceObjectImpl
All Implemented Interfaces:
Element, InstanceObject, NamedElement, AObject, org.eclipse.core.runtime.IAdaptable, org.eclipse.emf.common.notify.Notifier, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.InternalEObject
Direct Known Subclasses:
ConnectionInstanceEndImpl, ConnectionReferenceImpl, EndToEndFlowInstanceImpl, FlowElementInstanceImpl, ModeInstanceImpl

public abstract class InstanceObjectImpl
extends NamedElementImpl
implements InstanceObject

An implementation of the model object ' Object'.


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
 
Fields inherited from class edu.cmu.sei.aadl.aadl2.impl.NamedElementImpl
name, NAME_EDEFAULT, ownedPropertyAssociations, QUALIFIED_NAME_EDEFAULT
 
Fields inherited from class edu.cmu.sei.aadl.aadl2.impl.ElementImpl
OWNED_ELEMENT_ESUBSETS, ownedComments
 
Fields inherited from class edu.cmu.sei.aadl.aadl2.parsesupport.AObjectImpl
copyright, 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 edu.cmu.sei.aadl.aadl2.parsesupport.AObject
copyright
 
Fields inherited from interface org.eclipse.emf.ecore.InternalEObject
EOPPOSITE_FEATURE_BASE
 
Constructor Summary
protected InstanceObjectImpl()
           
 
Method Summary
 boolean acceptsProperty(Property property)
          Query whether this object accepts values for the given property.
protected  org.eclipse.emf.ecore.EClass eStaticClass()
           
 java.lang.String getComponentInstancePath()
          Construct a string path excluding the system instance as root.
 ComponentInstance getContainingComponentInstance()
          Get the closest component instance that contains this object.
protected  ComponentInstance getContainingComponentInstanceOrSelf()
          get the containing component instance of an instance object, or itself if this is a component instance
 java.util.List<SystemOperationMode> getExistsInModes()
          Returns the System Operation Modes in which the element exists, or null if the element always exists.
 java.lang.String getInstanceObjectPath()
          Construct a string path from the system instance as root
 java.util.List<? extends NamedElement> getInstantiatedObjects()
          Return the declarative objects that define this instance.
protected  void getPropertyValueFromDeclarativeModel(Property property, PropertyAcc pas)
          Get the property value from the declarative model elements associated with the instance object.
 void getPropertyValueInternal(Property property, PropertyAcc pas, boolean fromInstanceSlaveCall)
          Helper routine for computing the value of the property.
 SystemInstance getSystemInstance()
          Find the enclosing system instance.
 
Methods inherited from class edu.cmu.sei.aadl.aadl2.impl.NamedElementImpl
allNamespaces, checkPropertyAssociation, createOwnedPropertyAssociation, eBasicRemoveFromContainerFeature, eGet, eInverseRemove, eIsSet, eSet, eUnset, getName, getNamespace, getOwnedPropertyAssociations, getPropertyValue, getPropertyValueList, getQualifiedName, getSimplePropertyValue, has_no_qualified_name, has_qualified_name, hasName, isDistinguishableFrom, qualifiedName, removePropertyAssociations, removePropertyAssociations, separator, setName, setPropertyValue, setPropertyValue, setPropertyValue, toString
 
Methods inherited from class edu.cmu.sei.aadl.aadl2.impl.ElementImpl
allOwnedElements, create, createOwnedComment, getCacheAdapter, getChildren, getContainingClassifier, getContainingComponentImpl, getElementRoot, getOwnedComments, getOwnedElements, getOwner, has_owner, isSetOwnedElements, isSetOwner, mustBeOwned, not_own_self
 
Methods inherited from class edu.cmu.sei.aadl.aadl2.parsesupport.AObjectImpl
getAdapter, getLocationReference, 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, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainerAdapterArray, 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, eObjectForURIFragmentSegment, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eProxyURI, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStore, eUnset, eURIFragmentSegment, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues
 
Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
eBasicAdapterArray, eBasicHasAdapters, 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.aadl2.instance.InstanceObject
isActive
 
Methods inherited from interface edu.cmu.sei.aadl.aadl2.NamedElement
allNamespaces, checkPropertyAssociation, createOwnedPropertyAssociation, getName, getNamespace, getOwnedPropertyAssociations, getPropertyValue, 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
 
Methods inherited from interface org.eclipse.emf.ecore.InternalEObject
eNotificationRequired
 

Constructor Detail

InstanceObjectImpl

protected InstanceObjectImpl()
Method Detail

eStaticClass

protected org.eclipse.emf.ecore.EClass eStaticClass()
Description copied from class: NamedElementImpl

Overrides:
eStaticClass in class NamedElementImpl

getContainingComponentInstance

public ComponentInstance getContainingComponentInstance()
Get the closest component instance that contains this object.

Specified by:
getContainingComponentInstance in interface InstanceObject
Returns:
Closest containing component instance

getSystemInstance

public SystemInstance getSystemInstance()
Find the enclosing system instance.

Specified by:
getSystemInstance in interface InstanceObject
Returns:
The system instance object

getInstanceObjectPath

public java.lang.String getInstanceObjectPath()
Description copied from interface: InstanceObject
Construct a string path from the system instance as root

Specified by:
getInstanceObjectPath in interface InstanceObject
Returns:
path as string

getComponentInstancePath

public java.lang.String getComponentInstancePath()
Description copied from interface: InstanceObject
Construct a string path excluding the system instance as root.

Specified by:
getComponentInstancePath in interface InstanceObject
Returns:
path as string

getPropertyValueInternal

public final void getPropertyValueInternal(Property property,
                                           PropertyAcc pas,
                                           boolean fromInstanceSlaveCall)
                                    throws InvalidModelException
Description copied from interface: NamedElement
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 NamedElementImpl, but because of the way that EMF deals with multiple inheritance, not all implementations of NamedElement actually extend from NamedElementImpl.

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 NamedElement
Overrides:
getPropertyValueInternal in class NamedElementImpl
Parameters:
property - The property whose value is to be retrieved. It must be the case that this property is accepted by the property holder, i.e., NamedElement.acceptsProperty(Property) must return true.
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 implementation. 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 feature group type.
Throws:
InvalidModelException - Thrown if the property value cannot be retrieved because the model is incomplete or otherwise invalid.

getExistsInModes

public java.util.List<SystemOperationMode> getExistsInModes()
Returns the System Operation Modes in which the element exists, or null if the element always exists.

Specified by:
getExistsInModes in interface InstanceObject
Returns:

getPropertyValueFromDeclarativeModel

protected void getPropertyValueFromDeclarativeModel(Property property,
                                                    PropertyAcc pas)
                                             throws InvalidModelException
Get the property value from the declarative model elements associated with the instance object. This implementation works for everything but ConnectionInstances; this method is overridden in ConnectionInstance to handle the problem of dealing with all the connections that make up the semantic connection.

Parameters:
property - The property to lookup
pva - The property value accumulator to use to build the property value
Throws:
InvalidModelException - Thrown if the property value cannot be retrieved because the model is incomplete or otherwise invalid.

getContainingComponentInstanceOrSelf

protected ComponentInstance getContainingComponentInstanceOrSelf()
get the containing component instance of an instance object, or itself if this is a component instance

Returns:
containing component instance

getInstantiatedObjects

public java.util.List<? extends NamedElement> getInstantiatedObjects()
Return the declarative objects that define this instance. Most of the time this will return a singleton list. But in the case of semantic connections, it will return a list of connection objects.

Specified by:
getInstantiatedObjects in interface InstanceObject
Returns:
A List of NamedElement objects that should be declarative model elements. Returns an empty list if no named declarative object exists, such as in the case of ModeTransitionInstances.

acceptsProperty

public boolean acceptsProperty(Property property)
Description copied from interface: NamedElement
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 NamedElement
Overrides:
acceptsProperty in class NamedElementImpl
Parameters:
property - The property definition to test.
Returns:
true if the given property applies to this element.