/** * <copyright> * </copyright> * * */ package org.reuseware.air.language.abstractsyntax.resource.as.mopp; public class AsLayoutInformation { private final org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsSyntaxElement syntaxElement; private final int startOffset; private final java.lang.String hiddenTokenText; private final java.lang.String visibleTokenText; private java.lang.Object object; private boolean wasResolved; public AsLayoutInformation(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsSyntaxElement syntaxElement, java.lang.Object object, int startOffset, java.lang.String hiddenTokenText, java.lang.String visibleTokenText) { super(); this.syntaxElement = syntaxElement; this.object = object; this.startOffset = startOffset; this.hiddenTokenText = hiddenTokenText; this.visibleTokenText = visibleTokenText; } public org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsSyntaxElement getSyntaxElement() { return syntaxElement; } public int getStartOffset() { return startOffset; } public java.lang.Object getObject(org.eclipse.emf.ecore.EObject container) { if (wasResolved) { return object; } // we need to try to resolve proxy objects again, because the proxy might have // been resolved before this adapter existed, which means we missed the // replaceProxy() notification if (object instanceof org.eclipse.emf.ecore.InternalEObject) { org.eclipse.emf.ecore.InternalEObject internalObject = (org.eclipse.emf.ecore.InternalEObject) object; if (internalObject.eIsProxy()) { if (container instanceof org.eclipse.emf.ecore.InternalEObject) { org.eclipse.emf.ecore.InternalEObject internalContainer = (org.eclipse.emf.ecore.InternalEObject) container; org.eclipse.emf.ecore.EObject resolvedObject = internalContainer.eResolveProxy(internalObject); if (resolvedObject != internalObject) { object = resolvedObject; wasResolved = true; } } } } else { wasResolved = true; } return object; } public java.lang.String getHiddenTokenText() { return hiddenTokenText; } public java.lang.String getVisibleTokenText() { return visibleTokenText; } public void replaceProxy(org.eclipse.emf.ecore.EObject proxy, org.eclipse.emf.ecore.EObject target) { if (this.object == proxy) { this.object = target; } } }