Source code: org/alicebot/server/core/node/Nodemaster.java
1 // Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov.
2 // Jad home page: http://www.geocities.com/kpdus/jad.html
3 // Decompiler options: packimports(3)
4
5 package org.alicebot.server.core.node;
6
7 import java.util.*;
8
9 // Referenced classes of package org.alicebot.server.core.node:
10 // Nodemapper
11
12 public class Nodemaster
13 implements Nodemapper
14 {
15
16 public Nodemaster()
17 {
18 size = 0;
19 height = 0x7fffffff;
20 }
21
22 public Object put(String s, Object obj)
23 {
24 if(size == 0)
25 {
26 key = s.toUpperCase();
27 value = obj;
28 size = 1;
29 return obj;
30 }
31 if(size == 1)
32 {
33 Hidden = new HashMap();
34 Hidden.put(key.toUpperCase(), value);
35 size = 2;
36 return Hidden.put(s.toUpperCase(), obj);
37 } else
38 {
39 return Hidden.put(s.toUpperCase(), obj);
40 }
41 }
42
43 public void remove(Object obj)
44 {
45 if(size > 2)
46 {
47 Hidden.remove(obj);
48 size--;
49 } else
50 if(size == 2)
51 {
52 value = Hidden.remove(obj);
53 size = 1;
54 } else
55 if(size == 1)
56 {
57 value = null;
58 size = 0;
59 }
60 }
61
62 public Object get(String s)
63 {
64 if(size == 0)
65 return null;
66 if(size == 1)
67 {
68 if(s.equalsIgnoreCase(key))
69 return value;
70 else
71 return null;
72 } else
73 {
74 return Hidden.get(s.toUpperCase());
75 }
76 }
77
78 public Set keySet()
79 {
80 if(size <= 1)
81 {
82 HashSet hashset = new HashSet();
83 if(key != null)
84 hashset.add(key);
85 return hashset;
86 } else
87 {
88 return Hidden.keySet();
89 }
90 }
91
92 public boolean containsKey(String s)
93 {
94 if(size == 0)
95 return false;
96 if(size <= 1)
97 return s.equalsIgnoreCase(key);
98 else
99 return Hidden.containsKey(s.toUpperCase());
100 }
101
102 public int size()
103 {
104 return size;
105 }
106
107 public void setParent(Nodemapper nodemapper)
108 {
109 parent = nodemapper;
110 }
111
112 public Nodemapper getParent()
113 {
114 return parent;
115 }
116
117 public int getHeight()
118 {
119 return height;
120 }
121
122 public void setTop()
123 {
124 fillInHeight(0);
125 }
126
127 private void fillInHeight(int i)
128 {
129 if(height > i)
130 height = i;
131 if(parent != null)
132 ((Nodemaster)parent).fillInHeight(i + 1);
133 }
134
135 protected int size;
136 protected String key;
137 protected Object value;
138 protected HashMap Hidden;
139 protected int height;
140 protected Nodemapper parent;
141 }