Coverage Report - argos.util.graph.Node
 
Classes in this File Line Coverage Branch Coverage Complexity
Node
0%
0/43
0%
0/28
0
 
 1  
 package argos.util.graph;
 2  
 
 3  
 import java.util.ArrayList;
 4  
 import java.util.List;
 5  
 
 6  0
 public class Node implements Comparable<Node> {
 7  
         public List<Node> dependsOnThis;
 8  
         public List<Node> thisDependsOn;
 9  
         protected String name;
 10  
         protected int level;
 11  
         
 12  
         public Node() {
 13  0
                 super();
 14  0
                 level = -1;
 15  0
                 dependsOnThis = new ArrayList<Node>();
 16  0
                 thisDependsOn = new ArrayList<Node>();
 17  0
         }
 18  
         
 19  
         public void resetDependencies() {
 20  0
                 dependsOnThis.clear();
 21  0
                 for(Node node : thisDependsOn) {
 22  0
                         node.remove(this);
 23  
                 }
 24  0
                 thisDependsOn.clear();
 25  0
         }
 26  
         
 27  
         public void remove(Node node) {
 28  0
                 dependsOnThis.remove(node);
 29  0
         }
 30  
         
 31  
         @Override
 32  
         public int hashCode() {
 33  0
                 return 31 + ((name == null) ? 0 : name.hashCode());
 34  
         }
 35  
         
 36  
         @Override
 37  
         public boolean equals(Object obj) {
 38  0
                 if(this == obj) {
 39  0
                         return true;
 40  
                 }
 41  0
                 else if(obj == null) {
 42  0
                         return false;
 43  
                 }
 44  0
                 else if(getClass() != obj.getClass()) {
 45  0
                         return false;
 46  
                 }
 47  
                 
 48  0
                 Node other = (Node) obj;
 49  0
                 if(name == null && other.name != null) {
 50  0
                         return false;
 51  
                 }
 52  0
                 else if(name != null && !name.equals(other.name)) {
 53  0
                         return false;
 54  
                 }
 55  0
                 return true;
 56  
         }
 57  
         
 58  
         public int compareTo(Node node) {
 59  0
                 if(getLevel() < node.getLevel()) {
 60  0
                         return -1;
 61  
                 }
 62  0
                 else if(getLevel() == node.getLevel()) {
 63  0
                         return 0;
 64  
                 }
 65  
                 else {
 66  0
                         return 1;
 67  
                 }
 68  
         }
 69  
 
 70  
         public String getName() {
 71  0
                 return name;
 72  
         }
 73  
 
 74  
         public void setName(String name) {
 75  0
                 this.name = name;
 76  0
         }
 77  
         
 78  
         public List<Node> getDependsOnThis() {
 79  0
                 return dependsOnThis;
 80  
         }
 81  
 
 82  
         public List<Node> getThisDependsOn() {
 83  0
                 return thisDependsOn;
 84  
         }
 85  
 
 86  
         public int getLevel() {
 87  0
                 if(level == -1) {
 88  0
                         level = 0;
 89  0
                         for(Node node : thisDependsOn) {
 90  0
                                 if(level < node.getLevel() + 1) {
 91  0
                                         level = node.getLevel() + 1;
 92  
                                 }
 93  
                         }
 94  
                 }
 95  
                 
 96  0
                 return level;
 97  
         }
 98  
         
 99  
         @Override
 100  
         public String toString() {
 101  0
                 return getName();
 102  
         }
 103  
 }