//Christian Tirella //Brian Sweeney //CSU670 Project import java.util.ArrayList; public class FCSP { private ArrayList listOfClauses; //constructor public FCSP(){ this.listOfClauses = new ArrayList(); } //add clauses to a FCSP public void addClause(FClause clause){ listOfClauses.add(clause); } //get size of FCSP public int size(){ return listOfClauses.size(); } //get clause at certain index public FClause get(int i){ return listOfClauses.get(i); } //checks all clauses in csp for staisfiability and returns true or false public boolean cspSatisfied () { boolean result = true; for (int index = 0; index < listOfClauses.size(); index++) { if (listOfClauses.get(index).isSatisfied() == false) result = false; } return result; } //which literals from this csp are forced as per the latest set of decisions? public ArrayList cspForced () { ArrayList result = new ArrayList (); for (int index = 0; index < listOfClauses.size(); index++) { result.addAll(listOfClauses.get(index).forced()); } //add some method to remove any duplicate entries from result... //...should not affect program aside from efficiency return result; } public boolean contains (Object o) { boolean result = false; if (o.getClass().toString() == "FClause") { result = listOfClauses.contains(o); } if (o.getClass().toString() == "FLiteral") { for (int i = 0; i < listOfClauses.size() - 1; i++) { if (listOfClauses.get(i).literals.contains(o)) { result = true; } } } return result; } public void trimToSize() { listOfClauses.trimToSize(); } }