Mercurial > hg > Database > Christie
diff src/main/java/christie/topology/manager/ParentManager.java @ 83:2314c55534ef
add TreeTopology
author | akahori |
---|---|
date | Sat, 15 Sep 2018 09:24:36 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/christie/topology/manager/ParentManager.java Sat Sep 15 09:24:36 2018 +0900 @@ -0,0 +1,92 @@ +package christie.topology.manager; + +import java.util.LinkedList; + +public class ParentManager { + + private int maxChildren; + private int position = 0; + private LinkedList<Parent> list; + public ParentManager(int hasChildren){ + list = new LinkedList<Parent>(); + maxChildren = hasChildren; + } + + public String getMyParent() { + checkChildNumber(); + return list.get(position).getName(); + } + + public int getMyNumber() { + checkChildNumber(); + int num = list.get(position).children(); + list.get(position).increment(); + return num; + } + + private void checkChildNumber() { + for (;;next()) { + if (list.get(position).children() < maxChildren) + break; + } + } + + public void register(String name) { + Parent p = new Parent(name); + list.add(p); + } + + public void next() { + position++; + } + + public void previous() { + position--; + } + + public void replaceAndRemove(String remove, String replace) { + Parent removeNode = find(remove); + remove(replace); + removeNode.setName(replace); + } + + public void remove(String remove) { + Parent removeNode = find(remove); + list.remove(removeNode); + } + + public Parent find(String name) { + boolean found = false; + int i = 0; + for (;i<list.size();i++) { + if (list.get(i).getName().equals(name)) { + found = true; + break; + } + } + if (found) { + return list.get(i); + } else { + return null; + } + } + + public Parent getLastNode(){ + return list.getLast(); + } + + public void show() { + int counter = 0; + System.out.print("| "); + for (Parent p :list) { + if (counter==position) + System.out.print("P "); + System.out.print(p.getName()+" "+p.children()+" | "); + counter++; + } + } + + public LinkedList<Parent> getList() { + return list; + } +}