/** * <copyright> * </copyright> * * */ package org.dresdenocl.language.ocl.resource.ocl.mopp; import java.util.Collections; import java.util.Set; import org.eclipse.emf.ecore.EStructuralFeature; /** * A representation for a range in a document where a structural feature (e.g., a * reference) is expected. */ public class OclExpectedStructuralFeature extends org.dresdenocl.language.ocl.resource.ocl.mopp.OclAbstractExpectedElement { private org.dresdenocl.language.ocl.resource.ocl.grammar.OclPlaceholder placeholder; public OclExpectedStructuralFeature(org.dresdenocl.language.ocl.resource.ocl.grammar.OclPlaceholder placeholder) { super(placeholder.getMetaclass()); this.placeholder = placeholder; } public EStructuralFeature getFeature() { return placeholder.getFeature(); } /** * Returns the expected placeholder. */ public org.dresdenocl.language.ocl.resource.ocl.grammar.OclSyntaxElement getSymtaxElement() { return placeholder; } public String getTokenName() { return placeholder.getTokenName(); } public Set<String> getTokenNames() { return Collections.singleton(getTokenName()); } public String toString() { return "EFeature " + getFeature().getEContainingClass().getName() + "." + getFeature().getName(); } public boolean equals(Object o) { if (o instanceof OclExpectedStructuralFeature) { return getFeature().equals(((OclExpectedStructuralFeature) o).getFeature()); } return false; } @Override public int hashCode() { return getFeature().hashCode(); } }