org.eclipse.emf.ecore.impl
Class FlatEObjectImpl

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 org.eclipse.emf.ecore.impl.FlatEObjectImpl
All Implemented Interfaces:
Notifier, EObject, InternalEObject
Direct Known Subclasses:
EModelElementImpl

public class FlatEObjectImpl
extends EObjectImpl

An implementation of the model object 'EObject'. This implementation flattens the fields for storing the eProxyURI, the eContents, and the eCrossReferences, which in EObjectImpl are stored in the properties holder. This reduces the likelihood of needing to allocate a properties holder and speeds up the access to these fields.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
BasicEObjectImpl.EPropertiesHolder, BasicEObjectImpl.EPropertiesHolderBaseImpl, BasicEObjectImpl.EPropertiesHolderImpl
 
Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
BasicNotifierImpl.EAdapterList<E extends java.lang.Object & Adapter>
 
Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.InternalEObject
InternalEObject.EStore
 
Field Summary
protected  EList<EObject> eContents
           
protected  EList<EObject> eCrossReferences
           
protected  URI eProxyURI
           
 
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 FlatEObjectImpl()
          Creates an EObject that is faster and more space efficient for the case where eSetProxyURI(URI), eContents(), eCrossReferences() are expected to be frequently used.
 
Method Summary
 EList<EObject> eContents()
          Returns a list view of the content objects; it is unmodifiable.
 EList<EObject> eCrossReferences()
          Returns a list view of the cross referenced objects; it is unmodifiable.
 boolean eIsProxy()
          Indicates whether this object is a proxy.
protected  BasicEObjectImpl.EPropertiesHolder eProperties()
           
 URI eProxyURI()
          Returns the proxy URI of this object.
 void eSetProxyURI(URI uri)
          Set the proxy URI of this object.
 
Methods inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eBasicAdapters, eBasicProperties, eBasicSetContainer, eClass, eContainerFeatureID, eDeliver, eInternalContainer, eSetClass, eSetDeliver, eStaticClass
 
Methods inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
eAddVirtualValue, eAllContents, eBaseStructuralFeatureID, eBasicRemoveFromContainer, eBasicRemoveFromContainerFeature, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, 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, eGet, eHasSettings, eInternalResource, eInverseAdd, eInverseAdd, eInverseRemove, eInverseRemove, eIsSet, eIsSet, eObjectForURIFragmentSegment, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStore, eUnset, eUnset, eURIFragmentSegment, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues, toString
 
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 org.eclipse.emf.ecore.EObject
eAllContents, eContainer, eContainingFeature, eContainmentFeature, eGet, eGet, eIsSet, eResource, eSet, eUnset
 
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eNotify
 
Methods inherited from interface org.eclipse.emf.ecore.InternalEObject
eNotificationRequired
 

Field Detail

eProxyURI

protected URI eProxyURI

eContents

protected EList<EObject> eContents

eCrossReferences

protected EList<EObject> eCrossReferences
Constructor Detail

FlatEObjectImpl

protected FlatEObjectImpl()
Creates an EObject that is faster and more space efficient for the case where eSetProxyURI(URI), eContents(), eCrossReferences() are expected to be frequently used.

Method Detail

eProperties

protected BasicEObjectImpl.EPropertiesHolder eProperties()
Overrides:
eProperties in class EObjectImpl

eIsProxy

public boolean eIsProxy()
Description copied from interface: EObject
Indicates whether this object is a proxy.

A proxy is an object that is defined in a Resource that has not been loaded. An object may be a proxy either because proxy resolution was disabled when the object was accessed (see EObject.eGet(EStructuralFeature,boolean)) or because proxy resolution failed.

Specified by:
eIsProxy in interface EObject
Overrides:
eIsProxy in class EObjectImpl
Returns:
true if this object is a proxy or false, otherwise.
See Also:
Resource.unload(), EcoreUtil.resolve(EObject, org.eclipse.emf.ecore.resource.ResourceSet)

eProxyURI

public URI eProxyURI()
Description copied from interface: InternalEObject
Returns the proxy URI of this object. It can be used to resolve to the actual object.

Specified by:
eProxyURI in interface InternalEObject
Overrides:
eProxyURI in class BasicEObjectImpl
Returns:
the proxy URI of this object.
See Also:
EcoreUtil.resolve(EObject, org.eclipse.emf.ecore.resource.ResourceSet), Resource.unload()

eSetProxyURI

public void eSetProxyURI(URI uri)
Description copied from interface: InternalEObject
Set the proxy URI of this object. It will be used to resolve to the actual object.

Specified by:
eSetProxyURI in interface InternalEObject
Overrides:
eSetProxyURI in class EObjectImpl
Parameters:
uri - the URI.
See Also:
EcoreUtil.resolve(EObject, org.eclipse.emf.ecore.resource.ResourceSet), Resource.unload()

eContents

public EList<EObject> eContents()
Description copied from interface: EObject
Returns a list view of the content objects; it is unmodifiable.

This will be the list of EObjects determined by the contents of the containment features of this object's meta class. Objects can, indirectly, be removed and will change to reflect container changes. The implicit tree of contents is also directly available.

Specified by:
eContents in interface EObject
Overrides:
eContents in class BasicEObjectImpl
Returns:
a list view of the content objects.
See Also:
EObject.eContainer(), EClass.getEAllContainments(), EObject.eGet(EStructuralFeature), EcoreUtil.remove(EObject), EObject.eAllContents()

eCrossReferences

public EList<EObject> eCrossReferences()
Description copied from interface: EObject
Returns a list view of the cross referenced objects; it is unmodifiable.

This will be the list of EObjects determined by the contents of the reference features of this object's meta class, excluding containment features and their opposites. The cross reference list's iterator will be of type EContentsEList.FeatureIterator, for efficient determination of the feature of each cross reference in the list, e.g.,

  for (EContentEList.FeatureIterator featureIterator = 
        (EContentEList.FeatureIterator)eObject.eCrossReferences().iterator();
       featureIterator.hasNext(); )
  {
    EObject eObject = (EObject)featureIterator.next();
    EReference eReference = (EReference)featureIterator.feature();
    ...
  }

Specified by:
eCrossReferences in interface EObject
Overrides:
eCrossReferences in class BasicEObjectImpl
Returns:
a list view of the cross referenced objects.
See Also:
EObject.eContents(), EClass.getEAllReferences(), EClass.getEAllContainments(), EObject.eGet(EStructuralFeature), EcoreUtil.CrossReferencer

Copyright 2001-2006 IBM Corporation and others.
All Rights Reserved.