/**
* <copyright>
* </copyright>
*
* $Id$
*/
package tefkat.engine.runtime.impl;
import java.util.Collection;
import java.util.Iterator;
import org.eclipse.emf.ecore.EClass;
import tefkat.engine.runtime.Context;
import tefkat.engine.runtime.OrTerm;
import tefkat.engine.runtime.ResolutionException;
import tefkat.engine.runtime.RuntimePackage;
import tefkat.engine.runtime.Term;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Or Term</b></em>'.
* <!-- end-user-doc -->
* <p>
* </p>
*
* @generated
*/
public class OrTermImpl extends CompoundTermImpl implements OrTerm {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final String copyright = "Copyright michael lawley 2004";
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected OrTermImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected EClass eStaticClass() {
return RuntimePackage.Literals.OR_TERM;
}
public void match(Context context) throws ResolutionException {
/**
* Create a node for each disjunct, distributing them into
* the remaining conjuncts of the goal.
*/
Collection terms = getTerm();
if (null == terms || terms.isEmpty()) {
// context.error("Malformed (empty) OrTerm");
context.fail();
}
for (Iterator itr = terms.iterator(); itr.hasNext(); ) {
context.createBranch((Term) itr.next());
}
}
} //OrTermImpl