SimplifyCache.java

package edu.udel.cis.vsl.tass.dynamic.impl.simplify;

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

import edu.udel.cis.vsl.tass.dynamic.IF.simplify.DynamicSimplifierIF;
import edu.udel.cis.vsl.tass.dynamic.IF.simplify.MorphicSimplifierCacheIF;
import edu.udel.cis.vsl.tass.dynamic.IF.value.ValueIF;
import edu.udel.cis.vsl.tass.morph.Morphic;
import edu.udel.cis.vsl.tass.util.Pair;

public class SimplifyCache implements MorphicSimplifierCacheIF {

	private Map<Pair<ValueIF, Morphic>, Morphic> cache = new HashMap<Pair<ValueIF, Morphic>, Morphic>();

	@Override
	public void cacheResult(DynamicSimplifierIF dynamicSimplifier,
			Morphic object, Morphic result) {
		cache.put(new Pair<ValueIF, Morphic>(dynamicSimplifier.oldAssumption(),
				object), result);

	}

	@Override
	public Morphic getCachedResult(DynamicSimplifierIF dynamicSimplifier,
			Morphic object) {
		return cache.get(new Pair<ValueIF, Morphic>(dynamicSimplifier
				.oldAssumption(), object));
	}

}