CastFactory.java
package edu.udel.cis.vsl.tass.symbolic.cast;
import java.util.HashMap;
import java.util.Map;
import edu.udel.cis.vsl.tass.symbolic.NumericPrimitive;
import edu.udel.cis.vsl.tass.symbolic.IF.type.SymbolicTypeIF;
import edu.udel.cis.vsl.tass.symbolic.expression.SymbolicExpression;
import edu.udel.cis.vsl.tass.symbolic.expression.SymbolicExpressionKey;
import edu.udel.cis.vsl.tass.symbolic.type.SymbolicTypeFactory;
public class CastFactory {
private Map<SymbolicExpressionKey<RealCastExpression>, RealCastExpression> map = new HashMap<SymbolicExpressionKey<RealCastExpression>, RealCastExpression>();
private SymbolicTypeFactory typeFactory;
private SymbolicTypeIF realType;
public CastFactory(SymbolicTypeFactory typeFactory) {
this.typeFactory = typeFactory;
realType = typeFactory.realType();
}
public SymbolicTypeFactory typeFactory() {
return typeFactory;
}
public RealCastExpression realCast(NumericPrimitive integerExpression) {
return SymbolicExpression.flyweight(map, new RealCastExpression(
realType, integerExpression));
}
}