3 import java.util.HashSet;
4 import java.util.Iterator;
6 public class SESELock {
8 private HashSet<ConflictNode> conflictNodeSet;
12 conflictNodeSet=new HashSet<ConflictNode>();
15 public void addEdge(ConflictEdge edge){
16 conflictNodeSet.add(edge.getVertexU());
17 conflictNodeSet.add(edge.getVertexV());
24 public void setID(int id){
28 public boolean containsConflictNode(ConflictNode node){
30 return conflictNodeSet.contains(node);
35 public boolean testEdge(ConflictEdge newEdge){
38 if( !conflictNodeSet.contains(newEdge.getVertexU()) && !conflictNodeSet.contains(newEdge.getVertexV()) ){
42 ConflictNode nodeToAdd=conflictNodeSet.contains(newEdge.getVertexU())?newEdge.getVertexV():newEdge.getVertexU();
44 HashSet<ConflictNode> nodeSet=new HashSet<ConflictNode>(conflictNodeSet);
46 for(Iterator edgeIter=nodeToAdd.getEdgeSet().iterator();edgeIter.hasNext();){
47 ConflictEdge edge=(ConflictEdge)edgeIter.next();
48 if(nodeSet.contains(edge.getVertexU())){
49 nodeSet.remove(edge.getVertexU());
50 }else if(nodeSet.contains(edge.getVertexV())){
51 nodeSet.remove(edge.getVertexV());
55 return nodeSet.isEmpty();
59 public String toString(){
62 for (Iterator<ConflictNode> iterator = conflictNodeSet.iterator(); iterator.hasNext();) {
63 ConflictNode node = (ConflictNode) iterator.next();