Parcourir la source

Begin defining the RegLink

Baglio Tabifata il y a 4 ans
Parent
commit
da108bd4e6

+ 1 - 1
src/main/java/info/hkzlab/dupal/analyzer/palanalisys/graph/OutLink.java

@@ -5,7 +5,7 @@ public class OutLink implements GraphLink {
    public final int inputs;
    public final OutState src, dest;
    
-   public OutLink(OutState src, OutState dest, int inputs) {
+   public OutLink(final OutState src, final OutState dest, final int inputs) {
        this.src = src;
        this.dest = dest;
        this.inputs = inputs;

+ 49 - 6
src/main/java/info/hkzlab/dupal/analyzer/palanalisys/graph/RegLink.java

@@ -1,23 +1,66 @@
 package info.hkzlab.dupal.analyzer.palanalisys.graph;
 
 public class RegLink implements GraphLink {
+   public final int inputs;
+   public final OutState src, middle, dest;
+   
+   public RegLink(final OutState src, final OutState middle, final OutState dest, final int inputs) {
+       this.src = src;
+       this.middle = middle;
+       this.dest = dest;
+       this.inputs = inputs;
+   }
+
+    @Override
+    public int hashCode() {
+        int hash = 7;
+
+        hash = hash*31 + inputs;
+        hash = hash*31 + src.hashCode();
+        hash = hash*31 + middle.hashCode();
+        hash = hash*31 + dest.hashCode();
+
+        return hash;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o)
+            return true;
+        if (o == null)
+            return false;
+        if (this.getClass() != o.getClass())
+            return false;
+
+        return  (this.src.equals(((RegLink)o).src)) &&
+                (this.dest.equals(((RegLink)o).dest)) &&
+                (this.middle.equals(((RegLink)o).middle)) &&
+                (this.inputs == ((RegLink)o).inputs);
+    }
+
+    @Override
+    public String toString() {
+        return "("+src+")->("+middle+")->RL["+String.format("%06X", inputs)+"]->("+dest+")";
+    }
+
 
     @Override
     public int getLinkInputs() {
-        // TODO Auto-generated method stub
-        return 0;
+        return inputs;
+    }
+
+    public OutState getMiddleState() {
+        return middle;
     }
 
     @Override
     public GraphState getSourceState() {
-        // TODO Auto-generated method stub
-        return null;
+        return src;
     }
 
     @Override
     public GraphState getDestinationState() {
-        // TODO Auto-generated method stub
-        return null;
+        return dest;
     }
     
 }

+ 0 - 23
src/main/java/info/hkzlab/dupal/analyzer/palanalisys/graph/RegState.java

@@ -1,23 +0,0 @@
-package info.hkzlab.dupal.analyzer.palanalisys.graph;
-
-public class RegState implements GraphState {
-
-    @Override
-    public OutStatePins getInternalState() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public boolean isStateFull() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public GraphLink[] getLinks() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-    
-}