## org.eclipse.emf.ecore.impl
Class FlatEObjectImpl

    java.lang.Object
      org.eclipse.emf.common.notify.impl.BasicNotifierImpl
          org.eclipse.emf.ecore.impl.BasicEObjectImpl
              org.eclipse.emf.ecore.impl.EObjectImpl
                  org.eclipse.emf.ecore.impl.FlatEObjectImpl

All Implemented Interfaces:
  Notifier, EObject, InternalEObject

    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, eContainerAdapterArray, 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
`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 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 `EObject`s 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 `EObject`s 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.