edu.cmu.sei.aadl.model.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.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.instance.impl.InstanceObjectImpl
All Implemented Interfaces:
AObject, NamedElement, PropertyHolder, InstanceObject, org.eclipse.core.runtime.IAdaptable, org.eclipse.emf.common.notify.Notifier, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.InternalEObject
Direct Known Subclasses:
ComponentInstanceImpl, EndToEndFlowInstanceImpl, FeatureInstanceImpl, FlowElementInstanceImpl, ModeInstanceImpl, ModeTransitionInstanceImpl

public class InstanceObjectImpl
extends PropertyHolderImpl
implements InstanceObject

An implementation of the model object 'Object'.

Note: This class is abstract in the metamodel.


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
           
 
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 InstanceObjectImpl()
           
 
Method Summary
protected  ModalPropertyValueAccumulator createAccumulator(PropertyDefinition property)
          Override this method so that it returns an accumulator suitable for looking up property values from instances.
protected  org.eclipse.emf.ecore.EClass eStaticClass()
           
 org.eclipse.emf.common.util.EList getComponentInstanceList()
          construct a list of component instance references It represents the path to the given Component Instance (excluding the system impl of the system instance
 java.lang.String getComponentInstancePath()
          construct a string path excluding the systeminstance as root.
 ComponentInstance getContainingComponentInstance()
          Returns the closest ancestor component (in the containment hierarchy) that is a ComponentInstance.
protected  ComponentInstance getContainingComponentInstanceOrSelf()
          get the containing component instance of an instance object, or itself if this is a component instance
protected  java.util.List 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 systeminstance as root
 java.util.List getInstantiatedObjects()
          Return the declarative objects that define this instance.
protected  void getPropertyValueFromDeclarativeModel(PropertyDefinition property, InstanceMPVA pva)
          Get the property value from the declarative model elements associated with the instance object.
 void getPropertyValueInternal(PropertyDefinition property, ModalPropertyValueAccumulator pva, boolean fromInstanceSlaveCall)
          Helper routine for computing the value of the property.
 SystemInstance getSystemInstance()
          find the enclosing SystemInstance
 
Methods inherited from class edu.cmu.sei.aadl.model.core.impl.PropertyHolderImpl
acceptsProperty, addProperty, addPropertyValue, basicSetProperties, checkPropertyAssociation, createPropertyAssociation, eGet, eInverseRemove, eIsSet, eSet, eUnset, 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, 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.PropertyHolder
acceptsProperty, 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, 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
Constructor Detail

InstanceObjectImpl

protected InstanceObjectImpl()

Method Detail

eStaticClass

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

Overrides:
eStaticClass in class PropertyHolderImpl

getSystemInstance

public SystemInstance getSystemInstance()
find the enclosing SystemInstance

Specified by:
getSystemInstance in interface AObject
Specified by:
getSystemInstance in interface InstanceObject
Overrides:
getSystemInstance in class AObjectImpl
Returns:
SystemInstance object

createAccumulator

protected ModalPropertyValueAccumulator createAccumulator(PropertyDefinition property)
Override this method so that it returns an accumulator suitable for looking up property values from instances.

Overrides:
createAccumulator in class PropertyHolderImpl
Parameters:
property - The property for which the accumulator will hold a value.
Returns:
A property value accumulator

getPropertyValueInternal

public final void getPropertyValueInternal(PropertyDefinition property,
                                           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:
property - 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.

getPropertyValueFromDeclarativeModel

protected void getPropertyValueFromDeclarativeModel(PropertyDefinition property,
                                                    InstanceMPVA pva)
                                             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 retreived 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

getContainingComponentInstance

public ComponentInstance getContainingComponentInstance()
Returns the closest ancestor component (in the containment hierarchy) that is a ComponentInstance.

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

getInstanceObjectPath

public java.lang.String getInstanceObjectPath()
construct a string path from the systeminstance as root

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

getComponentInstancePath

public java.lang.String getComponentInstancePath()
construct a string path excluding the systeminstance as root.

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

getComponentInstanceList

public org.eclipse.emf.common.util.EList getComponentInstanceList()
construct a list of component instance references It represents the path to the given Component Instance (excluding the system impl of the system instance

Specified by:
getComponentInstanceList in interface InstanceObject
Returns:
EList of subcomponents making up the path

getInstantiatedObjects

public java.util.List 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 PropertyHolder objects that should be declarative model elements. Returns an empty list if no named declarative object exists, such as in the case of ModeTransitionInstances.

getExistsInModes

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