package nloc; import java.util.List; import java.util.ArrayList; import java.util.ListIterator; import java.util.Arrays; public class TestNloc { public static void main(String[] args) { //Nloc nl = new Nloc(getNlocS5()); List<Channel> chList = getNlocS5(); Nloc nl = new Nloc(chList); //Pump pump = nl.getPump(); //pump.setSteps(2); //Channel c1 = new Channel("ch1", 3, 5); //Sink s0 = new Sink(); //Channel c2 = new Channel("ch2", 3, 5); //Module m0 = new Module("m0", 5,1); //c1.addChild(c2); //Droplet pld = new Droplet(DropletType.PAYLOAD, new Position(pump,1)); //pld.setName("p"); //Droplet hdr = new Droplet(DropletType.HEADER, new Position(pump,2)); //hdr.setName("h"); // //System.out.println(pld.coalesce()); // //int normStep = hdr.getNormalizedSteps(); //System.out.println("Normalized Steps: " + normStep); //nl.setDropletList(pump.getDropletList()); //if (nl.simulate()) { // System.out.println("Success!! Don't coalesce"); //} else { // System.out.println("Did coalesce!"); //} List<List<Channel>> allPaths = nl.getAllPaths(); List<Channel> critPath = allPaths.get(4); //try { // String[] mtv = {"f2", "m3", "h0", "m5"}; // List<List<SequenceTuple>> posSeqs = nl.getPossibleSequences(mtv); // //printSequences(posSeqs); // System.out.println("DEBUG:"); // Pump p0 = nl.getShortestSequence(mtv); // printPumpcontents(p0); //} catch (Exception e) { // System.out.println(e.getMessage()); //} //printPaths(allPaths); //int count = 0; //for (List<Channel> path: allPaths) { String[] modulesToVisit = extractModuleStringArrayFromPath(critPath); System.out.println("Modules to visit: "); for (String str: modulesToVisit) { System.out.print(str + " " ); } try { List<List<SequenceTuple>> seTupList = nl.getPossibleSequences(modulesToVisit); printSequences(seTupList); } catch (Exception e) { System.out.println(e.getMessage()); } //System.out.println("Pathnum: " + count++); //Pump p = nl.getShortestSequence(modulesToVisit); //printPumpcontents(p); //} } public static void printPumpcontents(Pump pump) { List<Droplet> drlist = pump.getDropletList(); for (Droplet dr: drlist) { System.out.print("Droplet: " + dr.getName() + " Pos: " + dr.getPosition().getSteps() + " Outlet: " + dr.getPumpOutlet().getName()); if (drlist.indexOf(dr) == drlist.size() - 1) { System.out.println(""); } else { System.out.print(" | "); } } System.out.println(""); } public static String[] extractModuleStringArrayFromPath(List<Channel> path) { List<String> strlist = new ArrayList<String>(); for (Channel ch: path) { if (ch instanceof Module) { strlist.add(ch.getName()); } } return strlist.toArray(new String[strlist.size()]); } public static void printSequence(List<SequenceTuple> seq) { for (SequenceTuple stup: seq) { if (seq.indexOf(stup) == (seq.size() - 1)) { System.out.print(stup.getDroplet().getName() + ": " + stup.getMinPos() + ":" + stup.getMaxPos() + " : " + stup.getPath().get(1).getName()); } else { System.out.print(stup.getDroplet().getName() + ": " + stup.getMinPos() + ":" + stup.getMaxPos() + " : " + stup.getPath().get(1).getName() + " -> "); } } System.out.println("\n"); } public static void printSequences(List<List<SequenceTuple>> sequences) { System.out.println("##################"); System.out.println("# " + sequences.size() + " Sequences Found"); System.out.println("##################"); System.out.println(""); for (List<SequenceTuple> sl: sequences) { printSequence(sl); } } public static void printPath(List<Channel> path) { System.out.println("Pathlength Payload: " + Nloc.getPayloadPathlength(path)); System.out.println("Pathlength Header: " + Nloc.getHeaderPathlength(path)); for (Channel ch : path) { if (path.indexOf(ch) == (path.size() - 1)) { System.out.print(ch.getName()); } else { System.out.print(ch.getName() + " -> "); } } System.out.println(""); System.out.println(""); } public static void printPaths(List<List<Channel>> pathlist) { System.out.println(""); System.out.println("#############################"); System.out.println("# Number of paths found: " + pathlist.size()); System.out.println("#############################"); for (List<Channel> p : pathlist) { printPath(p); } } public static List<Channel> getNlocS1() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",1,1); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",1,1); Channel ch11 = new Channel("ch11",3,3); Channel ch12 = new Channel("ch12",1,1); Channel ch13 = new Channel("ch13",1,1); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m2 = new Module("m2", 5,1); Module d1 = new Module("d1", 5,1); Module d2 = new Module("d2", 5,1); Module h1 = new Module("h1", 5,1); Module h2 = new Module("h2", 5,1); Module f2 = new Module("f2", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, m0, m1, m2, d1, d2, h1, h2, f2, p0, s0); p0.addChild(ch1); p0.addChild(ch2); p0.addChild(ch3); ch1.addChild(m2); m2.addChild(ch4); ch4.addChild(d2); d2.addChild(ch6); ch2.addChild(h2); h2.addChild(ch5); ch6.addChild(ch7); ch5.addChild(ch7); ch3.addChild(ch7); ch7.addChild(m1); m1.addChild(ch8); ch8.addChild(f2); f2.addChild(ch9); ch9.addChild(ch11); ch9.addChild(ch10); ch11.addChild(h1); h1.addChild(ch12); ch12.addChild(ch13); ch10.addChild(ch13); ch13.addChild(m0); m0.addChild(ch14); ch14.addChild(d1); d1.addChild(ch15); ch15.addChild(s0); return chlist; } public static List<Channel> getNlocS2() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",3,3); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",1,1); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",1,1); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",3,3); Channel ch13 = new Channel("ch13",1,1); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Channel ch16 = new Channel("ch16",1,1); Channel ch17 = new Channel("ch17",3,3); Channel ch18 = new Channel("ch18",1,1); Channel ch19 = new Channel("ch19",1,1); Channel ch20 = new Channel("ch20",1,1); Channel ch21 = new Channel("ch21",3,3); Channel ch22 = new Channel("ch22",1,1); Channel ch23 = new Channel("ch23",1,1); Channel ch24 = new Channel("ch24",1,1); Channel ch25 = new Channel("ch25",3,3); Channel ch26 = new Channel("ch26",1,1); Channel ch27 = new Channel("ch27",1,1); Channel ch28 = new Channel("ch28",1,1); Channel ch29 = new Channel("ch29",1,1); Channel ch30 = new Channel("ch30",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m2 = new Module("m2", 5,1); Module m3 = new Module("m3", 5,1); Module m4 = new Module("m4", 5,1); Module m5 = new Module("m5", 5,1); Module h0 = new Module("h0", 5,1); Module h3 = new Module("h3", 5,1); Module d1 = new Module("d1", 5,1); Module f2 = new Module("f2", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, ch19, ch20, ch21, ch22, ch23, ch24, ch25, ch26, ch27, ch28, ch29, ch30, m0, m1, m2, m3, m4, m5, h0, h3, d1, f2, p0, s0); p0.addChild(ch1); p0.addChild(ch2); p0.addChild(ch3); p0.addChild(ch4); ch1.addChild(m4); m4.addChild(ch8); ch8.addChild(ch11); ch8.addChild(ch12); ch12.addChild(d1); d1.addChild(ch15); ch2.addChild(ch9); ch3.addChild(m2); m2.addChild(ch5); ch5.addChild(ch6); ch5.addChild(ch7); ch6.addChild(ch9); ch9.addChild(h3); h3.addChild(ch13); ch4.addChild(ch10); ch7.addChild(ch10); ch10.addChild(f2); f2.addChild(ch14); ch14.addChild(ch16); ch14.addChild(ch17); ch11.addChild(ch18); ch15.addChild(ch18); ch13.addChild(ch18); ch16.addChild(ch18); ch18.addChild(m1); m1.addChild(ch19); ch19.addChild(ch20); ch19.addChild(ch21); ch21.addChild(ch22); ch17.addChild(ch22); ch22.addChild(m3); m3.addChild(ch23); ch23.addChild(ch24); ch23.addChild(ch25); ch20.addChild(ch26); ch24.addChild(ch26); ch26.addChild(m0); m0.addChild(ch28); ch25.addChild(h0); h0.addChild(ch27); ch28.addChild(ch29); ch27.addChild(ch29); ch29.addChild(m5); m5.addChild(ch30); ch30.addChild(s0); return chlist; } public static List<Channel> getNlocS6() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",3,3); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",1,1); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",3,3); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",1,1); Channel ch13 = new Channel("ch13",1,1); Channel ch14 = new Channel("ch14",3,3); Channel ch15 = new Channel("ch15",1,1); Channel ch16 = new Channel("ch16",1,1); Channel ch17 = new Channel("ch17",1,1); Channel ch18 = new Channel("ch18",1,1); Channel ch19 = new Channel("ch19",1,1); Channel ch20 = new Channel("ch20",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m3 = new Module("m3", 5,1); Module m4 = new Module("m4", 5,1); Module m5 = new Module("m5", 5,1); Module h0 = new Module("h0", 5,1); Module h3 = new Module("h3", 5,1); Module d1 = new Module("d1", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, ch19, ch20, m0, m1, m3, m4, m5, h0, h3, d1, p0, s0); p0.addChild(ch1); p0.addChild(ch2); ch2.addChild(h3); h3.addChild(ch4); ch1.addChild(m4); m4.addChild(ch3); ch3.addChild(ch5); ch3.addChild(ch6); ch5.addChild(d1); d1.addChild(ch7); ch7.addChild(ch8); ch6.addChild(ch8); ch4.addChild(ch8); ch8.addChild(m1); m1.addChild(ch9); ch9.addChild(ch10); ch9.addChild(ch11); ch10.addChild(ch12); ch12.addChild(m3); m3.addChild(ch13); ch13.addChild(ch14); ch13.addChild(ch15); ch14.addChild(h0); h0.addChild(ch16); ch15.addChild(ch17); ch11.addChild(ch17); ch17.addChild(m0); m0.addChild(ch18); ch16.addChild(ch19); ch18.addChild(ch19); ch19.addChild(m5); m5.addChild(ch20); ch20.addChild(s0); return chlist; } public static List<Channel> getNlocS7() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",3,3); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",1,1); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",3,3); Channel ch13 = new Channel("ch13",1,1); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Channel ch16 = new Channel("ch16",1,1); Channel ch17 = new Channel("ch17",1,1); Channel ch18 = new Channel("ch18",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m3 = new Module("m3", 5,1); Module m4 = new Module("m4", 5,1); Module m5 = new Module("m5", 5,1); Module h0 = new Module("h0", 5,1); Module h3 = new Module("h3", 5,1); Module d1 = new Module("d1", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, m0, m1, m3, m4, m5, h0, h3, d1, p0, s0); p0.addChild(ch1); p0.addChild(ch2); ch2.addChild(h3); h3.addChild(ch4); ch1.addChild(m4); m4.addChild(ch3); ch3.addChild(d1); d1.addChild(ch5); ch5.addChild(ch6); ch4.addChild(ch6); ch6.addChild(m1); m1.addChild(ch7); ch7.addChild(ch8); ch7.addChild(ch9); ch8.addChild(ch10); ch10.addChild(m3); m3.addChild(ch11); ch11.addChild(ch12); ch11.addChild(ch13); ch13.addChild(ch15); ch9.addChild(ch15); ch12.addChild(h0); h0.addChild(ch14); ch15.addChild(m0); m0.addChild(ch16); ch14.addChild(ch17); ch16.addChild(ch17); ch17.addChild(m5); m5.addChild(ch18); ch18.addChild(s0); return chlist; } public static List<Channel> getNlocS3() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",1,1); Channel ch9 = new Channel("ch9",3,3); Channel ch10 = new Channel("ch10",1,1); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",1,1); Channel ch13 = new Channel("ch13",3,3); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Channel ch16 = new Channel("ch16",3,3); Channel ch17 = new Channel("ch17",1,1); Channel ch18 = new Channel("ch18",1,1); Channel ch19 = new Channel("ch19",1,1); Channel ch20 = new Channel("ch20",1,1); Channel ch21 = new Channel("ch21",3,3); Channel ch22 = new Channel("ch22",1,1); Channel ch23 = new Channel("ch23",1,1); Channel ch24 = new Channel("ch24",1,1); Channel ch25 = new Channel("ch25",1,1); Channel ch26 = new Channel("ch26",1,1); Channel ch27 = new Channel("ch27",3,3); Channel ch28 = new Channel("ch28",1,1); Channel ch29 = new Channel("ch29",1,1); Channel ch30 = new Channel("ch30",1,1); Channel ch31 = new Channel("ch31",1,1); Channel ch32 = new Channel("ch32",1,1); Channel ch33 = new Channel("ch33",3,3); Channel ch34 = new Channel("ch34",1,1); Channel ch35 = new Channel("ch35",1,1); Channel ch36 = new Channel("ch36",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m2 = new Module("m2", 5,1); Module m3 = new Module("m3", 5,1); Module m4 = new Module("m4", 5,1); Module m5 = new Module("m5", 5,1); Module h1 = new Module("h1", 5,1); Module h2 = new Module("h2", 5,1); Module h5 = new Module("h5", 5,1); Module d1 = new Module("d1", 5,1); Module d5 = new Module("d5", 5,1); Module f5 = new Module("f5", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, ch19, ch20, ch21, ch22, ch23, ch24, ch25, ch26, ch27, ch28, ch29, ch30, ch31, ch32, ch33, ch34, ch35, ch36, m0, m1, m2, m3, m4, m5, h1, h2, h5, d1, d5, f5, p0, s0); p0.addChild(ch1); p0.addChild(ch2); p0.addChild(ch3); p0.addChild(ch4); p0.addChild(ch5); ch2.addChild(h1); h1.addChild(ch6); ch3.addChild(m0); m0.addChild(ch7); ch7.addChild(ch8); ch7.addChild(ch9); ch4.addChild(ch10); ch9.addChild(ch10); ch10.addChild(f5); f5.addChild(ch11); ch11.addChild(ch12); ch11.addChild(ch13); ch1.addChild(ch14); ch6.addChild(ch14); ch8.addChild(ch14); ch12.addChild(ch14); ch14.addChild(m2); m2.addChild(ch15); ch15.addChild(ch16); ch15.addChild(ch17); ch17.addChild(ch19); ch5.addChild(ch19); ch16.addChild(d1); d1.addChild(ch18); ch19.addChild(m5); m5.addChild(ch20); ch20.addChild(ch21); ch20.addChild(ch22); ch13.addChild(ch23); ch21.addChild(ch23); ch23.addChild(h5); h5.addChild(ch24); ch18.addChild(ch25); ch24.addChild(ch25); ch22.addChild(ch25); ch25.addChild(m4); m4.addChild(ch26); ch26.addChild(ch27); ch26.addChild(ch28); ch27.addChild(h2); h2.addChild(ch29); ch29.addChild(ch30); ch28.addChild(ch30); ch30.addChild(m1); m1.addChild(ch31); ch31.addChild(ch32); ch31.addChild(ch33); ch32.addChild(m3); m3.addChild(ch34); ch34.addChild(ch35); ch33.addChild(ch35); ch35.addChild(d5); d5.addChild(ch36); ch36.addChild(s0); return chlist; } public static List<Channel> getNlocS4() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",3,3); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",1,1); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",3,3); Channel ch13 = new Channel("ch13",1,1); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Channel ch16 = new Channel("ch16",3,3); Channel ch17 = new Channel("ch17",1,1); Channel ch18 = new Channel("ch18",1,1); Channel ch19 = new Channel("ch19",1,1); Channel ch20 = new Channel("ch20",1,1); Channel ch21 = new Channel("ch21",1,1); Channel ch22 = new Channel("ch22",3,3); Channel ch23 = new Channel("ch23",3,3); Channel ch24 = new Channel("ch24",1,1); Channel ch25 = new Channel("ch25",1,1); Channel ch26 = new Channel("ch26",1,1); Channel ch27 = new Channel("ch27",1,1); Channel ch28 = new Channel("ch28",1,1); Channel ch29 = new Channel("ch29",1,1); Channel ch30 = new Channel("ch30",3,3); Channel ch31 = new Channel("ch31",1,1); Channel ch32 = new Channel("ch32",1,1); Channel ch33 = new Channel("ch33",1,1); Channel ch34 = new Channel("ch34",1,1); Channel ch35 = new Channel("ch35",1,1); Channel ch36 = new Channel("ch36",1,1); Channel ch37 = new Channel("ch37",3,3); Channel ch38 = new Channel("ch38",1,1); Channel ch39 = new Channel("ch39",1,1); Channel ch40 = new Channel("ch40",3,3); Channel ch41 = new Channel("ch41",1,1); Channel ch42 = new Channel("ch42",1,1); Channel ch43 = new Channel("ch43",1,1); Channel ch44 = new Channel("ch44",1,1); Channel ch45 = new Channel("ch45",1,1); Channel ch46 = new Channel("ch46",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m2 = new Module("m2", 5,1); Module m3 = new Module("m3", 5,1); Module m4 = new Module("m4", 5,1); Module m5 = new Module("m5", 5,1); Module m6 = new Module("m6", 5,1); Module h1 = new Module("h1", 5,1); Module h2 = new Module("h2", 5,1); Module h6 = new Module("h6", 5,1); Module d0 = new Module("d0", 5,1); Module d2 = new Module("d2", 5,1); Module f1 = new Module("f1", 5,1); Module f3 = new Module("f3", 5,1); Module f6 = new Module("f6", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, ch19, ch20, ch21, ch22, ch23, ch24, ch25, ch26, ch27, ch28, ch29, ch30, ch31, ch32, ch33, ch34, ch35, ch36, ch37, ch38, ch39, ch40, ch41, ch42, ch43, ch44, ch45, ch46, m0, m1, m2, m3, m4, m5, m6, h1, h2, h6, d0, d2, f1, f3, f6, p0, s0); p0.addChild(ch1); p0.addChild(ch2); p0.addChild(ch3); p0.addChild(ch4); p0.addChild(ch5); ch2.addChild(h2); h2.addChild(ch6); ch6.addChild(ch7); ch6.addChild(ch8); ch5.addChild(d0); d0.addChild(ch9); ch9.addChild(ch11); ch9.addChild(ch12); ch8.addChild(ch10); ch3.addChild(ch10); ch10.addChild(f3); f3.addChild(ch13); ch13.addChild(ch17); ch4.addChild(ch17); ch7.addChild(ch17); ch15.addChild(ch17); ch1.addChild(m2); m2.addChild(ch14); ch14.addChild(ch15); ch14.addChild(ch16); ch11.addChild(m1); m1.addChild(ch19); ch12.addChild(ch20); ch22.addChild(ch20); ch20.addChild(h6); h6.addChild(ch21); ch21.addChild(ch23); ch21.addChild(ch24); ch19.addChild(ch26); ch23.addChild(ch26); ch17.addChild(m6); m6.addChild(ch18); ch18.addChild(ch25); ch18.addChild(ch22); ch25.addChild(ch28); ch24.addChild(ch28); ch26.addChild(f1); f1.addChild(ch32); ch28.addChild(m3); m3.addChild(ch29); ch29.addChild(ch30); ch29.addChild(ch33); ch33.addChild(ch34); ch32.addChild(ch34); ch30.addChild(ch27); ch16.addChild(ch27); ch27.addChild(d2); d2.addChild(ch31); ch34.addChild(m5); m5.addChild(ch35); ch35.addChild(ch36); ch35.addChild(ch37); ch31.addChild(ch38); ch36.addChild(ch38); ch38.addChild(m4); m4.addChild(ch39); ch39.addChild(ch40); ch39.addChild(ch41); ch41.addChild(ch43); ch37.addChild(ch43); ch40.addChild(h1); h1.addChild(ch42); ch43.addChild(f6); f6.addChild(ch44); ch42.addChild(ch45); ch44.addChild(ch45); ch45.addChild(m0); m0.addChild(ch46); ch46.addChild(s0); return chlist; } public static List<Channel> getNlocS5() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Channel ch4 = new Channel("ch4",1,1); Channel ch5 = new Channel("ch5",1,1); Channel ch6 = new Channel("ch6",1,1); Channel ch7 = new Channel("ch7",1,1); Channel ch8 = new Channel("ch8",3,3); Channel ch9 = new Channel("ch9",1,1); Channel ch10 = new Channel("ch10",3,3); Channel ch11 = new Channel("ch11",1,1); Channel ch12 = new Channel("ch12",1,1); Channel ch13 = new Channel("ch13",3,3); Channel ch14 = new Channel("ch14",1,1); Channel ch15 = new Channel("ch15",1,1); Channel ch16 = new Channel("ch16",1,1); Channel ch17 = new Channel("ch17",1,1); Channel ch18 = new Channel("ch18",3,3); Channel ch19 = new Channel("ch19",1,1); Channel ch20 = new Channel("ch20",1,1); Channel ch21 = new Channel("ch21",3,3); Channel ch22 = new Channel("ch22",1,1); Channel ch23 = new Channel("ch23",1,1); Channel ch24 = new Channel("ch24",1,1); Channel ch25 = new Channel("ch25",1,1); Channel ch26 = new Channel("ch26",3,3); Channel ch27 = new Channel("ch27",3,3); Channel ch28 = new Channel("ch28",1,1); Channel ch29 = new Channel("ch29",1,1); Channel ch30 = new Channel("ch30",1,1); Channel ch31 = new Channel("ch31",3,3); Channel ch32 = new Channel("ch32",1,1); Channel ch33 = new Channel("ch33",1,1); Channel ch34 = new Channel("ch34",1,1); Channel ch35 = new Channel("ch35",1,1); Channel ch36 = new Channel("ch36",1,1); Channel ch37 = new Channel("ch37",1,1); Channel ch38 = new Channel("ch38",3,3); Channel ch39 = new Channel("ch39",1,1); Channel ch40 = new Channel("ch40",1,1); Channel ch41 = new Channel("ch41",3,3); Channel ch42 = new Channel("ch42",1,1); Channel ch43 = new Channel("ch43",1,1); Channel ch44 = new Channel("ch44",1,1); Channel ch45 = new Channel("ch45",3,3); Channel ch46 = new Channel("ch46",1,1); Channel ch47 = new Channel("ch47",1,1); Channel ch48 = new Channel("ch48",3,3); Channel ch49 = new Channel("ch49",1,1); Channel ch50 = new Channel("ch50",1,1); Channel ch51 = new Channel("ch51",1,1); Channel ch52 = new Channel("ch52",1,1); Channel ch53 = new Channel("ch53",1,1); Module m0 = new Module("m0", 5,1); Module m1 = new Module("m1", 5,1); Module m2 = new Module("m2", 5,1); Module m3 = new Module("m3", 5,1); Module m4 = new Module("m4", 5,1); Module m5 = new Module("m5", 5,1); Module m6 = new Module("m6", 5,1); Module h1 = new Module("h1", 5,1); Module h2 = new Module("h2", 5,1); Module h4 = new Module("h4", 5,1); Module h5 = new Module("h5", 5,1); Module h6 = new Module("h6", 5,1); Module d0 = new Module("d0", 5,1); Module d1 = new Module("d1", 5,1); Module f0 = new Module("f0", 5,1); Module f1 = new Module("f1", 5,1); Module f3 = new Module("f3", 5,1); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, ch19, ch20, ch21, ch22, ch23, ch24, ch25, ch26, ch27, ch28, ch29, ch30, ch31, ch32, ch33, ch34, ch35, ch36, ch37, ch38, ch39, ch40, ch41, ch42, ch43, ch44, ch45, ch46, ch47, ch48, ch49, ch50, ch51, ch52, ch53, m0, m1, m2, m3, m4, m5, m6, h1, h2, h4, h5, h6, d0, d1, f0, f1, f3, p0, s0); p0.addChild(ch1); p0.addChild(ch2); p0.addChild(ch3); p0.addChild(ch4); ch2.addChild(h1); h1.addChild(ch5); ch5.addChild(ch8); ch5.addChild(ch9); ch3.addChild(f0); f0.addChild(ch6); ch6.addChild(ch10); ch6.addChild(ch11); ch4.addChild(m1); m1.addChild(ch7); ch7.addChild(ch12); ch7.addChild(ch13); ch1.addChild(ch14); ch8.addChild(ch14); ch10.addChild(ch14); ch9.addChild(ch15); ch11.addChild(ch15); ch12.addChild(ch15); ch14.addChild(m4); m4.addChild(ch16); ch16.addChild(ch18); ch16.addChild(ch19); ch13.addChild(h4); h4.addChild(ch17); ch17.addChild(ch20); ch17.addChild(ch21); ch19.addChild(ch22); ch20.addChild(ch22); ch22.addChild(f3); f3.addChild(ch23); ch23.addChild(ch25); ch23.addChild(ch26); ch15.addChild(m2); m2.addChild(ch24); ch24.addChild(ch27); ch24.addChild(ch28); ch26.addChild(ch29); ch21.addChild(ch29); ch27.addChild(ch29); ch29.addChild(d0); d0.addChild(ch30); ch30.addChild(ch31); ch30.addChild(ch32); ch18.addChild(ch33); ch31.addChild(ch33); ch33.addChild(h6); h6.addChild(ch34); ch34.addChild(ch35); ch25.addChild(ch35); ch32.addChild(ch35); ch28.addChild(ch35); ch35.addChild(m3); m3.addChild(ch36); ch36.addChild(ch37); ch36.addChild(ch38); ch37.addChild(m6); m6.addChild(ch39); ch39.addChild(ch41); ch39.addChild(ch42); ch41.addChild(h5); h5.addChild(ch43); ch43.addChild(ch44); ch43.addChild(ch45); ch38.addChild(f1); f1.addChild(ch40); ch45.addChild(ch46); ch42.addChild(ch46); ch40.addChild(ch46); ch46.addChild(m5); m5.addChild(ch47); ch47.addChild(ch48); ch47.addChild(ch49); ch48.addChild(h2); h2.addChild(ch50); ch44.addChild(ch51); ch49.addChild(ch51); ch50.addChild(ch51); ch51.addChild(m0); m0.addChild(ch52); ch52.addChild(d1); d1.addChild(ch53); ch53.addChild(s0); return chlist; } public static List<Channel> getNlocSC() { // channel(name, psteps, hsteps) Channel ch1 = new Channel("ch1",1,1); Channel ch2 = new Channel("ch2",1,1); Channel ch3 = new Channel("ch3",1,1); Module m0 = new Module("m0", 3,1); Module m1 = new Module("m1", 1,3); Pump p0 = new Pump(); Sink s0 = new Sink(); List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, m0, m1, p0, s0); p0.addChild(ch1); ch1.addChild(m0); m0.addChild(ch2); ch2.addChild(m1); m1.addChild(ch3); ch3.addChild(s0); return chlist; } }