blob: 69050074a27b50880a480eb3caea4270e61cc607 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004-2008 Akos Horvath, Gergely Varro and Daniel Varro
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Akos Horvath, Gergely Varro - initial API and implementation
*******************************************************************************/
package org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.term;
import org.eclipse.viatra2.gtasm.interpreter.executionEnvironment.IExecutionEnvironment;
import org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.operation.TermCheckOperation;
import org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.operation.TermEvaluationOperation;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.terms.Term;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.gt.ContainmentConstraint;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.gt.GTPattern;
public class BasicTermHandler extends TermHandler {
private IExecutionEnvironment parentEnv;
public BasicTermHandler(IExecutionEnvironment parentEnv) {
this.parentEnv = parentEnv;
}
@Override
public AbstractTermCheckOperation getTermCheckOperation(GTPattern pattern, int uid,
Term term) {
return new TermCheckOperation(parentEnv, pattern, uid, term);
}
@Override //currentyl not used as TermEvaluation is only nedded in case of constant parent element in containment constraints
public AbstractTermCheckOperation getTermEvaluationOperation(GTPattern pattern,
int uid, Term term, int resultSlot) {
return new TermEvaluationOperation(parentEnv, pattern, uid, term, resultSlot);
}
public AbstractTermCheckOperation getTermEvaluationOperation(
GTPattern pattern, int uid, ContainmentConstraint conCons,
int resultSlot) {
return new TermEvaluationOperation(parentEnv, pattern, uid, conCons, resultSlot);
}
}