package org.eclipse.gmf.tooling.runtime.parsers; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; import org.eclipse.gmf.tooling.runtime.GMFToolingRuntimePlugin; import org.eclipse.gmf.tooling.runtime.ocl.tracker.HasOclTracker; import org.eclipse.gmf.tooling.runtime.ocl.tracker.OclTracker; import org.eclipse.gmf.tooling.runtime.ocl.tracker.OclTrackerFactory; public abstract class ExpressionLabelParserBase implements HasOclTracker, IParser { private final OclTrackerWrapper myDelegate; public ExpressionLabelParserBase() { this(GMFToolingRuntimePlugin.getInstance().getOclTrackerFactory()); } public ExpressionLabelParserBase(OclTrackerFactory.Type preferredType) { this(GMFToolingRuntimePlugin.getInstance().getOclTrackerFactory(preferredType)); } public ExpressionLabelParserBase(OclTrackerFactory oclTrackerFactory) { myDelegate = new OclTrackerWrapper(oclTrackerFactory) { @Override protected String getExpressionBody() { return ExpressionLabelParserBase.this.getExpressionBody(); } }; } public OclTracker getOclTracker() { return myDelegate.getOclTracker(); } public String getPrintString(IAdaptable element, int flags) { return myDelegate.getUpdatedString(element, flags); } public boolean isAffectingEvent(Object event, int flags) { return myDelegate.isAffectingEvent(event, flags); } protected abstract String getExpressionBody(); }