/** * Copyright (c) 2009-2011, The HATS Consortium. All rights reserved. * This file is licensed under the terms of the Modified BSD License. */ package deadlock.analyser.detection; import java.io.PrintStream; import java.util.HashMap; import java.util.LinkedList; import java.util.Map; import deadlock.analyser.factory.Factory; import deadlock.analyser.factory.MainMethodContract; import deadlock.analyser.factory.MethodContract; import com.gzoumix.semisolver.term.Term; public abstract class DASolver { protected Boolean deadlock; protected LinkedList<State> deadlockStates; protected Map<String, MethodContract> methodMap; protected MainMethodContract mmc; protected Factory df; protected Map<String, BigLam> lampMap; public DASolver(Factory f, Map<String, MethodContract> map, MainMethodContract mmc){ this.df = f; this.methodMap = map; this.deadlock = false; this.mmc = mmc; this.lampMap = new HashMap<String, BigLam>(); for(String mName : methodMap.keySet()){ this.lampMap.put(mName, new BigLam(mName, methodMap.get(mName))); } } public boolean isDeadlockMain(){ return this.deadlock; } public abstract void computeSolution(); public abstract String getName(); public abstract void printDeadlockDetails(PrintStream out); }