Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.71 KB | None | 0 0
  1. public class Node {
  2.  
  3.     private Node parentNode;
  4.     private IPAddress ownAddress;
  5.     private IPAddress rangeStart;
  6.     private IPAddress rangeEnd;
  7.     private ArrayList<Node> children;
  8.    
  9.     public Node(IPAddress ownAddress, IPAddress rangeStart, IPAddress rangeEnd ) {
  10.        // this.parentNode = null;
  11.         this.ownAddress = ownAddress;
  12.         this.rangeStart = rangeStart;
  13.         this.rangeEnd = rangeEnd;
  14.         this.children = new ArrayList<>();
  15.     }
  16.    
  17.     public Node(Node parentNode, IPAddress ownAddress, IPAddress rangeStart, IPAddress rangeEnd ) {
  18.         this.parentNode = parentNode;
  19.         this.ownAddress = ownAddress;
  20.         this.rangeStart = rangeStart;
  21.         this.rangeEnd = rangeEnd;
  22.         this.children = new ArrayList<>();
  23.         this.parentNode.children.add(this);
  24.     }
  25.    
  26.     public String tracePacket(Packet packet){
  27.         packet.recordPath(ownAddress);        
  28.         if (packet.getDestination().isTheSame(ownAddress)) {
  29.             return packet.toString();
  30.         }else if (!packet.isLive()) {
  31.             getResponsibleChild(packet.getDestination());
  32.         }
  33.        
  34.         Node childToSend = getResponsibleChild(packet.getDestination());
  35.         if (childToSend != null) {
  36.             return childToSend.tracePacket(packet);
  37.         }
  38.        
  39.         if (parentNode == null) {
  40.             return "OUT";
  41.         }else return parentNode.tracePacket(packet);
  42.     }
  43.    
  44.     private Node getResponsibleChild(IPAddress address){
  45.         for (Node child : children) {
  46.             if (address.insideRng(child.rangeStart, child.rangeEnd)) {
  47.                 return child.tracePacket(packet);
  48.             }
  49.         }
  50.         return null;
  51.     }
  52.    
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement