package nloc;

public class Nloc {
  public static void main(String[] args) {
    Channel chan0 = new Channel(6,6);
    Channel chan1 = new Channel(8,8);
    Channel chan2 = new Channel(8,8);
    Channel chan3 = new Channel(11,12);
    Channel chan4 = new Channel(19,21);
    Channel chan5 = new Channel(5,5);
    Channel chan6 = new Channel(8,8);
    Channel chan7 = new Channel(9,10);
    Channel chan8 = new Channel(25,28);

    Module m0 = new Module("m0", 22,10);
    Module m1 = new Module("m1", 10,10);

    Pump p0 = new Pump();
    Sink s0 = new Sink();


    p0.addChild(chan0);
    chan0.addChild(chan1);
    chan1.addChild(chan3);
    chan1.addChild(chan2);
    chan2.addChild(chan4);
    chan3.addChild(chan5);
    chan4.addChild(chan7);
    chan7.addChild(m1);
    m1.addChild(chan8);
    chan8.addChild(s0);

    chan5.addChild(m0);
    m0.addChild(chan6);
    chan6.addChild(chan7);

    printPath(p0);


   // for(Channel ch : chan0.getChildren()) {
   //   System.out.println("ID: " + ch.getID() + " pSteps: " + ch.getPSteps());
   // }
   // for(Channel ch : chan1.getChildren()) {
   //   System.out.println("ID: " + ch.getID() + " pSteps: " + ch.getPSteps());
   // }
   // for(Channel ch : chan2.getChildren()) {
   //   System.out.println("ID: " + ch.getID() + " pSteps: " + ch.getPSteps());
   // }
  }
  // list nodes_to_visit = {root};
  // while( nodes_to_visit isn't empty ) {
  //     currentnode = nodes_to_visit.take_first();
  //       nodes_to_visit.prepend( currentnode.children );
  //         //do something
  //         }
  public static void printPath(Channel chan) {
    System.out.println("ID: " + chan.getID() + " pSteps: " + chan.getPSteps());
    if (chan.getChildren().size() != 0) {
      for (Channel ch : chan.getChildren()) {
        printPath(ch);
      }
    }
  }

}