Newer
Older
import java.util.List;
import java.util.ArrayList;
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) {
if (chan.getChildrenList().isEmpty()) {
pathlist.add(path);
} else {
for (Channel ch : chan.getChildrenList()) {
getAllPathsRecursive(ch, new ArrayList<Channel>(path), pathlist);
}
}
}