IntegerOperationFactory.java
package edu.udel.cis.vsl.tass.symbolic.integer;
import java.util.HashMap;
import java.util.Map;
import edu.udel.cis.vsl.tass.symbolic.IF.tree.TreeExpressionIF;
import edu.udel.cis.vsl.tass.symbolic.expression.SymbolicExpression;
import edu.udel.cis.vsl.tass.symbolic.expression.SymbolicExpressionKey;
public class IntegerOperationFactory {
Map<SymbolicExpressionKey<IntegerDivisionExpression>, IntegerDivisionExpression> integerDivisionMap = new HashMap<SymbolicExpressionKey<IntegerDivisionExpression>, IntegerDivisionExpression>();
Map<SymbolicExpressionKey<IntegerModulusExpression>, IntegerModulusExpression> integerModulusMap = new HashMap<SymbolicExpressionKey<IntegerModulusExpression>, IntegerModulusExpression>();
public IntegerDivisionExpression integerDivision(
TreeExpressionIF numerator, TreeExpressionIF denominator) {
return SymbolicExpression.flyweight(integerDivisionMap,
new IntegerDivisionExpression(numerator, denominator));
}
public IntegerModulusExpression integerModulus(
TreeExpressionIF numerator, TreeExpressionIF denominator) {
return SymbolicExpression.flyweight(integerModulusMap,
new IntegerModulusExpression(numerator, denominator));
}
}