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 and 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, settingTargets, unloadedEObjects, unloadedResources`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CDOCrossReferenceAdapter()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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, getNonNavigableInverseReferences, getNonNavigableInverseReferences, getTarget, handleContainment, handleCrossReference, isAdapterForType, isIncluded, notifyChanged, removeAdapter, resolve, resolveAll, resolveProxy, setTarget, setTarget, setTarget, unsetTarget, unsetTarget, unsetTarget`

    - ### 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()

Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html