package org.reuseware.air.language.abstractsyntax.resource.as.analysis.helper;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.reuseware.air.language.abstractsyntax.AbstractSyntax;
import org.reuseware.air.language.abstractsyntax.Definition;
import org.reuseware.air.language.abstractsyntax.resource.as.IAsReferenceResolveResult;
public abstract class DefinitionReferenceResolver<ContainerType extends EObject> extends DefinitionNamespaceResolverBase<ContainerType,Definition> {
public String deResolve(Definition element, ContainerType container, EReference reference) {
return ((Definition)element).getName();
}
public void resolve(String identifier, ContainerType container, EReference reference, int position, boolean resolveFuzzy, IAsReferenceResolveResult<Definition> result) {
//System.out.println();
//System.out.println(this);
AbstractSyntax as = ((AbstractSyntax)container.eResource().getContents().get(0));
Definition def = lookup(identifier,as);
if(def==null){
result.setErrorMessage("Could not find definition with name '" + identifier + "'.");
}
else{
result.addMapping(identifier,def);
}
}
public void setOptions(Map<?, ?> options) {
}
}