package fgmt; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; public class VariableFragment extends Fragment { public static final int magic_number = -265; public ArrayList<HashSet<Integer>> candTypes = null; public HashSet<Integer> candEntities = null; public boolean mayLiteral = false; public VariableFragment() { fragmentType = typeEnum.VAR_FRAGMENT; candTypes = new ArrayList<HashSet<Integer>>(); candEntities = new HashSet<Integer>(); } @Override public String toString() { return "("+ candEntities.size() +")"; } public boolean containsAll(HashSet<Integer> s1) { Iterator<HashSet<Integer>> it = candTypes.iterator(); while(it.hasNext()) { HashSet<Integer> s2 = it.next(); if (s2.contains(magic_number)) { if (!Collections.disjoint(s1, s2)) { return true; } } else { if (s1.containsAll(s2) && s2.containsAll(s1)) { return true; } } } return false; } public boolean contains(Integer i) { Iterator<HashSet<Integer>> it = candTypes.iterator(); while(it.hasNext()) { HashSet<Integer> s = it.next(); if (s.contains(i)) { return true; } } return false; } }