public boolean isSharedLoc(T loc) {
return sharedLocSet.contains(loc);
}
+
+ public Set<T> getElementSet(){
+ Set<T> set=new HashSet<T>();
+
+ Set<T> keySet=getKeySet();
+ for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
+ T key = (T) iterator.next();
+ set.add(key);
+ set.addAll(getTable().get(key));
+ }
+
+ set.remove(getTopItem());
+ set.remove(getBottomItem());
+ return set;
+ }
public boolean addRelationHigherToLower(T higher, T lower) {
removeSet.add(cur);
}
}
+
if (!removeSet.isEmpty()) {
- // remove relations of locationElement -> cycle
+ // // remove relations of locationElement -> cycle
connectedSet.removeAll(removeSet);
// add a new relation of location Element -> shared loc
connectedSet.add(newLoc);
}
+ public void remove(T loc) {
+
+ Set<T> keySet = getKeySet();
+
+ Set<T> inSet = new HashSet<T>();
+ for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
+ T keyElement = (T) iterator.next();
+ Set<T> connectedSet = get(keyElement);
+ if (connectedSet.contains(loc)) {
+ inSet.add(loc);
+ connectedSet.remove(loc);
+ }
+ }
+
+ Set<T> outSet = get(loc);
+
+ for (Iterator iterator = inSet.iterator(); iterator.hasNext();) {
+ T in = (T) iterator.next();
+ for (Iterator iterator2 = outSet.iterator(); iterator2.hasNext();) {
+ T out = (T) iterator2.next();
+ put(in, out);
+ }
+ }
+
+ getTable().remove(loc);
+
+ }
+
public void substituteLocation(T oldLoc, T newLoc) {
// the new location is going to take all relations of the old location
if (!getKeySet().contains(newLoc)) {