package org.marketcetera.photon.commons.emf; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.resource.Resource; import org.marketcetera.util.misc.ClassVersion; import com.google.common.collect.ForwardingObject; /* $License$ */ /** * A delegating EObject. Subclasses can override to compose an EObject in a * custom way. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: ForwardingEObject.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: ForwardingEObject.java 16154 2012-07-14 16:34:05Z colin $") public class ForwardingEObject extends ForwardingObject implements EObject { private final EObject mDelegate; /** * Constructor. * * @param delegate * the delegate to forward to */ public ForwardingEObject(EObject delegate) { mDelegate = delegate; } @Override protected EObject delegate() { return mDelegate; } @Override public TreeIterator<EObject> eAllContents() { return delegate().eAllContents(); } @Override public EClass eClass() { return delegate().eClass(); } @Override public EObject eContainer() { return delegate().eContainer(); } @Override public EStructuralFeature eContainingFeature() { return delegate().eContainingFeature(); } @Override public EReference eContainmentFeature() { return delegate().eContainmentFeature(); } @Override public EList<EObject> eContents() { return delegate().eContents(); } @Override public EList<EObject> eCrossReferences() { return delegate().eCrossReferences(); } @Override public Object eGet(EStructuralFeature feature) { return delegate().eGet(feature); } @Override public Object eGet(EStructuralFeature feature, boolean resolve) { return delegate().eGet(feature, resolve); } @Override public boolean eIsProxy() { return delegate().eIsProxy(); } @Override public boolean eIsSet(EStructuralFeature feature) { return delegate().eIsSet(feature); } @Override public Resource eResource() { return delegate().eResource(); } @Override public void eSet(EStructuralFeature feature, Object newValue) { delegate().eSet(feature, newValue); } @Override public void eUnset(EStructuralFeature feature) { delegate().eUnset(feature); } @Override public EList<Adapter> eAdapters() { return delegate().eAdapters(); } @Override public boolean eDeliver() { return delegate().eDeliver(); } @Override public void eNotify(Notification notification) { delegate().eNotify(notification); } @Override public void eSetDeliver(boolean deliver) { delegate().eSetDeliver(deliver); } }