public Set possibleTypes() { if (subsets == null) { return Collections.EMPTY_SET; } HashSet ret = new HashSet(); for (Iterator subsetIt = subsets.iterator(); subsetIt.hasNext(); ) { final PointsToSet subset = (PointsToSet) subsetIt.next(); ret.addAll(subset.possibleTypes()); } return ret; }
public boolean addAll(PointsToSet s) { boolean ret = false; if (subsets == null) subsets = new HashSet(); if (s instanceof Union) { MemoryEfficientRasUnion meru = (MemoryEfficientRasUnion) s; if (meru.subsets == null || subsets.containsAll(meru.subsets)) { return false; } return subsets.addAll(meru.subsets); } else { PointsToSet r = (PointsToSet) s; return subsets.add(s); } }