LightSimplifierFactory.java

package edu.udel.cis.vsl.tass.simplify.light;

import java.util.HashMap;
import java.util.Map;

import edu.udel.cis.vsl.tass.simplify.IF.SymbolicSimplifierFactoryIF;
import edu.udel.cis.vsl.tass.simplify.IF.SymbolicSimplifierIF;
import edu.udel.cis.vsl.tass.symbolic.IF.SymbolicExpressionIF;
import edu.udel.cis.vsl.tass.symbolic.IF.SymbolicUniverseIF;

public class LightSimplifierFactory implements SymbolicSimplifierFactoryIF {

	SymbolicUniverseIF universe;

	Map<SymbolicExpressionIF, SymbolicSimplifierIF> cache = new HashMap<SymbolicExpressionIF, SymbolicSimplifierIF>();

	public LightSimplifierFactory(SymbolicUniverseIF universe) {
		this.universe = universe;
	}

	public void close() {

	}

	public SymbolicSimplifierIF simplifier(SymbolicExpressionIF assumption) {
		SymbolicSimplifierIF simplifier = cache.get(assumption);

		if (simplifier == null) {
			simplifier = new LightSymbolicSimplifier(universe, assumption);
			cache.put(assumption, simplifier);
		}
		return simplifier;
	}

}