83
|
1 package christie.topology.manager;
|
|
2
|
|
3 import java.util.LinkedList;
|
|
4
|
|
5 public class ParentManager {
|
|
6
|
|
7 private int maxChildren;
|
|
8 private int position = 0;
|
|
9 private LinkedList<Parent> list;
|
|
10 public ParentManager(int hasChildren){
|
|
11 list = new LinkedList<Parent>();
|
|
12 maxChildren = hasChildren;
|
|
13 }
|
|
14
|
|
15 public String getMyParent() {
|
|
16 checkChildNumber();
|
|
17 return list.get(position).getName();
|
|
18 }
|
|
19
|
|
20 public int getMyNumber() {
|
|
21 checkChildNumber();
|
|
22 int num = list.get(position).children();
|
|
23 list.get(position).increment();
|
|
24 return num;
|
|
25 }
|
|
26
|
|
27 private void checkChildNumber() {
|
|
28 for (;;next()) {
|
|
29 if (list.get(position).children() < maxChildren)
|
|
30 break;
|
|
31 }
|
|
32 }
|
|
33
|
|
34 public void register(String name) {
|
|
35 Parent p = new Parent(name);
|
|
36 list.add(p);
|
|
37 }
|
|
38
|
|
39 public void next() {
|
|
40 position++;
|
|
41 }
|
|
42
|
|
43 public void previous() {
|
|
44 position--;
|
|
45 }
|
|
46
|
|
47 public void replaceAndRemove(String remove, String replace) {
|
|
48 Parent removeNode = find(remove);
|
|
49 remove(replace);
|
|
50 removeNode.setName(replace);
|
|
51 }
|
|
52
|
|
53 public void remove(String remove) {
|
|
54 Parent removeNode = find(remove);
|
|
55 list.remove(removeNode);
|
|
56 }
|
|
57
|
|
58 public Parent find(String name) {
|
|
59 boolean found = false;
|
|
60 int i = 0;
|
|
61 for (;i<list.size();i++) {
|
|
62 if (list.get(i).getName().equals(name)) {
|
|
63 found = true;
|
|
64 break;
|
|
65 }
|
|
66 }
|
|
67 if (found) {
|
|
68 return list.get(i);
|
|
69 } else {
|
|
70 return null;
|
|
71 }
|
|
72 }
|
|
73
|
|
74 public Parent getLastNode(){
|
|
75 return list.getLast();
|
|
76 }
|
|
77
|
|
78 public void show() {
|
|
79 int counter = 0;
|
|
80 System.out.print("| ");
|
|
81 for (Parent p :list) {
|
|
82 if (counter==position)
|
|
83 System.out.print("P ");
|
|
84 System.out.print(p.getName()+" "+p.children()+" | ");
|
|
85 counter++;
|
|
86 }
|
|
87 }
|
|
88
|
|
89 public LinkedList<Parent> getList() {
|
|
90 return list;
|
|
91 }
|
|
92 }
|