Package org.eclipse.emf.cdo.util

## Class CDOCrossReferenceAdapter

- java.lang.Object
- - org.eclipse.emf.ecore.util.ECrossReferenceAdapter
  - - org.eclipse.emf.cdo.util.CDOCrossReferenceAdapter

- All Implemented Interfaces:
    `Adapter`, `Adapter.Internal`

      public final class CDOCrossReferenceAdapter
      extends ECrossReferenceAdapter

  An `ECrossReferenceAdapter` that does instanceof checks of `Notifier` instances in the order `Resource`, `EObject`, and `ResourceSet`.

  Background: For performance reasons (assuming that there are typically more `EObject` instances than `Resource` instances) EMF does instanceof checks of `Notifier` instances in the order `EObject`, `Resource`, and `ResourceSet`. That is problematic with CDOResources because they implement both `Resource` and `EObject`.

  Since:
    4.6
  Author:
    Eike Stepper

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `CDOCrossReferenceAdapter.CDOInverseCrossReferencer` | An `InverseCrossReferencer` with an `CDOCrossReferenceAdapter.CDOInverseCrossReferencer.addProxy(EObject, EObject)` method that is visible to `CDOCrossReferenceAdapter`.

    - ### Nested classes/interfaces inherited from class org.eclipse.emf.ecore.util.ECrossReferenceAdapter

      `ECrossReferenceAdapter.InverseCrossReferencer`

    - ### Nested classes/interfaces inherited from interface org.eclipse.emf.common.notify.Adapter

      `Adapter.Internal`

  - ### Field Summary

    - ### Fields inherited from class org.eclipse.emf.ecore.util.ECrossReferenceAdapter

      `inverseCrossReferencer, iterating, settingTargets, unloadedEObjects, unloadedResources`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CDOCrossReferenceAdapter()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected CDOCrossReferenceAdapter.CDOInverseCrossReferencer` | `createInverseCrossReferencer()` |
    `protected CDOCrossReferenceAdapter.CDOInverseCrossReferencer` | `getInverseCrossReferencer()` |
    `protected void` | `selfAdapt​(Notification notification)` |
    `void` | `setTarget​(Notifier target)` |
    `void` | `unsetTarget​(Notifier target)` |

    - ### Methods inherited from class org.eclipse.emf.ecore.util.ECrossReferenceAdapter

      `addAdapter, dump, getCrossReferenceAdapter, getInverseReferences, getInverseReferences, getInverseReferences, getNonNavigableInverseReferences, getNonNavigableInverseReferences, getTarget, handleContainment, handleCrossReference, isAdapterForType, isIncluded, notifyChanged, removeAdapter, resolve, resolveAll, resolveProxy, setTarget, setTarget, setTarget, unsetTarget, unsetTarget, unsetTarget, useRecursion`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CDOCrossReferenceAdapter

          public CDOCrossReferenceAdapter()

  - ### Method Detail

    - #### setTarget

          public void setTarget​(Notifier target)

      Specified by:
        `setTarget` in interface `Adapter`
      Overrides:
        `setTarget` in class `ECrossReferenceAdapter`

    - #### unsetTarget

          public void unsetTarget​(Notifier target)

      Specified by:
        `unsetTarget` in interface `Adapter.Internal`
      Overrides:
        `unsetTarget` in class `ECrossReferenceAdapter`

    - #### selfAdapt

          protected void selfAdapt​(Notification notification)

      Overrides:
        `selfAdapt` in class `ECrossReferenceAdapter`

    - #### createInverseCrossReferencer

          protected CDOCrossReferenceAdapter.CDOInverseCrossReferencer createInverseCrossReferencer()

      Overrides:
        `createInverseCrossReferencer` in class `ECrossReferenceAdapter`

    - #### getInverseCrossReferencer

          protected CDOCrossReferenceAdapter.CDOInverseCrossReferencer getInverseCrossReferencer()