package nloc; import java.util.List; import java.util.ArrayList; import java.util.ListIterator; import java.util.Arrays; public class Nloc { private static final int MIN_TIMEDIFF = 6; public int getNumberOfDroplets(List<Channel> desiredPath) { int numOfDroplets = 1; ListIterator<Channel> iter = desiredPath.listIterator(); while(iter.hasNext()) { Channel current = iter.next(); if (current.isBifurcation()) { numOfDroplets *= (current.getChildrenList().indexOf(iter.next()) + 1); iter.previous(); } } return numOfDroplets; } public List<Droplet> generateDropletSequence(List<String> modules) { } public List<Channel> getDesiredPath(List<Channel> modules, List<List<Channel>> pathlist) { List<Channel> found = new ArrayList<Channel>(); for (List<Channel> path : pathlist) { if (path.containsAll(modules)) { found = path; } } return found; } public List<Channel> getModulesByName(List<String> names, List<Channel> chanlist) { List<Channel> ret = new ArrayList<Channel>(); for (String name : names) { for (Channel ch : chanlist) { if (ch instanceof Module && ((Module)ch).getModuleName().equals(name)) { ret.add(ch); } } } return ret; } public List<List<Channel>> getAllPaths(Channel chan, List<Channel> path) { List<List<Channel>> pl = new ArrayList<List<Channel>>(); getAllPathsRecursive(chan, path, pl); return pl; } private void getAllPathsRecursive(Channel chan, List<Channel> path, List<List<Channel>> pathlist) { path.add(chan); if (chan.getChildrenList().isEmpty()) { pathlist.add(path); } else { for (Channel ch : chan.getChildrenList()) { getAllPathsRecursive(ch, new ArrayList<Channel>(path), pathlist); } } } }