Source code: org/alicebot/server/core/util/StringTripleMatrix.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.util;
6
7 import java.util.*;
8
9 // Referenced classes of package org.alicebot.server.core.util:
10 // DeveloperError, StringTriple, Trace
11
12 public class StringTripleMatrix
13 {
14
15 public StringTripleMatrix()
16 {
17 horizontal = new LinkedList();
18 }
19
20 public LinkedList getAll()
21 {
22 return horizontal;
23 }
24
25 public Iterator iterator()
26 {
27 return horizontal.iterator();
28 }
29
30 public ListIterator listIterator()
31 {
32 return horizontal.listIterator();
33 }
34
35 public boolean contains(StringTriple stringtriple)
36 {
37 return horizontal.contains(stringtriple);
38 }
39
40 public LinkedList getFirsts()
41 {
42 return vertical[0];
43 }
44
45 public LinkedList getSeconds()
46 {
47 return vertical[1];
48 }
49
50 public LinkedList getThirds()
51 {
52 return vertical[2];
53 }
54
55 public void add(StringTriple stringtriple)
56 {
57 horizontal.add(stringtriple);
58 vertical[0].add(stringtriple.getFirst());
59 vertical[1].add(stringtriple.getSecond());
60 vertical[2].add(stringtriple.getThird());
61 }
62
63 public void addAll(StringTripleMatrix stringtriplematrix)
64 {
65 horizontal.addAll(stringtriplematrix.getAll());
66 vertical[0].addAll(stringtriplematrix.getFirsts());
67 vertical[1].addAll(stringtriplematrix.getSeconds());
68 vertical[2].addAll(stringtriplematrix.getThirds());
69 }
70
71 public int size()
72 {
73 if(vertical[0].size() != vertical[1].size() || vertical[1].size() != vertical[2].size() || vertical[2].size() != horizontal.size())
74 {
75 Trace.devinfo("vertical[0].size(): " + vertical[0].size());
76 Trace.devinfo("vertical[1].size(): " + vertical[1].size());
77 Trace.devinfo("vertical[2].size(): " + vertical[2].size());
78 Trace.devinfo("horizontal.size(): " + horizontal.size());
79 throw new DeveloperError("Triple matrix integrity violated!");
80 } else
81 {
82 return horizontal.size();
83 }
84 }
85
86 public void ensureSize(int i)
87 {
88 if(size() >= i)
89 return;
90 for(int j = 3; --j >= 0;)
91 {
92 Vector vector = new Vector(vertical[j]);
93 vector.setSize(i);
94 vertical[j] = new LinkedList(vector);
95 }
96
97 Vector vector1 = new Vector(horizontal);
98 vector1.setSize(i);
99 horizontal = new LinkedList(vector1);
100 }
101
102 private LinkedList vertical[] = {
103 new LinkedList(), new LinkedList(), new LinkedList()
104 };
105 private LinkedList horizontal;
106 }