1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package olr.rdf.util;
20
21 import java.util.ArrayList;
22 import java.util.Collection;
23 import java.util.Iterator;
24
25 public abstract class SortedList extends ArrayList
26 {
27
28 protected abstract boolean isValidItem(Object obj);
29
30 protected abstract int compare(Object obj, Object obj1);
31
32 public SortedList()
33 {
34 }
35
36 public SortedList(Collection coll)
37 {
38 this();
39 for(Iterator it = coll.iterator(); it.hasNext(); add(it.next()));
40 }
41
42 public boolean add(Object o)
43 {
44 if(isValidItem(o))
45 {
46 for(int i = 0; i < size(); i++)
47 if(compare(get(i), o) > 0)
48 {
49 super.add(i, o);
50 return true;
51 }
52
53 return super.add(o);
54 } else
55 {
56 return false;
57 }
58 }
59
60 public void add(int pos, Object o)
61 {
62 if(isValidItem(o))
63 add(o);
64 }
65
66 public boolean addAll(Collection collection)
67 {
68 for(Iterator it = collection.iterator(); it.hasNext(); add(it.next()));
69 return true;
70 }
71
72 public boolean addAll(int pos, Collection collection)
73 {
74 return addAll(collection);
75 }
76 }