Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package router;
- import java.util.ArrayList;
- import java.util.List;
- public class Node {
- private Node parent;
- private List<Node> childs;
- private IPAddress own;
- private IPAddress a;
- private IPAddress b;
- public Node(IPAddress own, IPAddress a, IPAddress b) {
- this.childs = new ArrayList<>();
- this.own=own;
- this.a=a;
- this.b=b;
- }
- public Node(Node parent, IPAddress own, IPAddress a, IPAddress b) {
- this.parent=parent;
- this.childs = new ArrayList<>();
- parent.childs.add(this);
- this.own=own;
- this.a=a;
- this.b=b;
- }
- private IPAddress getOwn() {
- return own;
- }
- public String tracePacket(Packet packet) {
- /*if(packet.getDestination().isTheSame(this.own)){
- if(packet.isLive() == true) {
- packet.recordPath(this.own);
- return packet.toString();
- }else{
- return "LOOP";
- }
- }else{
- if(packet.getDestination().insideRng(this.a, this.b)){
- for(Node child : childs){
- if(packet.getDestination().insideRng(child.a, child.b)){
- if(packet.isLive() == true) {
- packet.recordPath(this.own);
- child.tracePacket(packet);
- }else {
- return "LOOP";
- }
- }
- }
- }else{
- if(parent == null){
- return "OUT";
- }else{
- if(packet.isLive() == true) {
- packet.recordPath(this.own);
- this.parent.tracePacket(packet);
- }else {
- return "LOOP";
- }
- }
- }
- }
- return packet.toString();*/
- packet.recordPath(own);
- IPAddress destiny = packet.getDestination();
- if(own == destiny) {
- return packet.toString();
- } else {
- if(!childs.isEmpty()) {
- for(Node child : childs) {
- if(destiny.insideRng(child.a,child.b)) {
- if(packet.isLive()) {
- return child.tracePacket(packet);
- } else {
- return "LOOP";
- }
- }
- }
- }
- if(parent != null && packet.isLive()) {
- return parent.tracePacket(packet);
- } else {
- return "OUT";
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement