/*******************************************************************************
* Copyright (c) 2009 University of Edinburgh.
* All rights reserved. This program and the accompanying materials are made
* available under the terms of the BSD Licence, which accompanies this feature
* and can be downloaded from http://groups.inf.ed.ac.uk/pepa/update/licence.txt
******************************************************************************/
package uk.ac.ed.inf.biopepa.core.dom.internal;
import uk.ac.ed.inf.biopepa.core.dom.IBinding;
import uk.ac.ed.inf.biopepa.core.dom.IBindingResolver;
import uk.ac.ed.inf.biopepa.core.dom.Model;
import uk.ac.ed.inf.biopepa.core.dom.Statement;
import uk.ac.ed.inf.biopepa.core.dom.VariableDeclaration;
/**
* Naive binding resolver
*
* @author mtribast
*
*/
public class BindingResolver implements IBindingResolver {
private Model model;
public BindingResolver(Model newModel) {
if (newModel == null)
throw new IllegalArgumentException();
this.model = newModel;
}
public IBinding resolveName(String identifier) {
for (Statement s : model.statements()) {
if (s instanceof VariableDeclaration) {
final VariableDeclaration dec = (VariableDeclaration) s;
if (dec.getKind() != VariableDeclaration.Kind.SPECIES) {
if (dec.getName().getIdentifier().equals(identifier)) {
return new IBinding() {
public VariableDeclaration getVariableDeclaration() {
return dec;
}
};
}
}
}
}
return null;
}
}