1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.om.page.impl;
18
19 import java.util.AbstractList;
20 import java.util.List;
21 import java.util.ListIterator;
22
23 /***
24 * FragmentList
25 *
26 * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
27 * @version $Id$
28 */
29 class FilteredFragmentList extends AbstractList
30 {
31 private FragmentImpl fragment;
32 private List filteredList;
33
34 FilteredFragmentList(FragmentImpl fragment, List filteredList)
35 {
36 super();
37 this.fragment = fragment;
38 this.filteredList = filteredList;
39 }
40
41
42
43
44 public void add(int index, Object element)
45 {
46
47 filteredList.add(index, element);
48
49 fragment.accessFragments().add(element);
50
51 if ((fragment.getPage() != null) && (element instanceof FragmentImpl))
52 {
53 ((FragmentImpl)element).setPage(fragment.getPage());
54 }
55 }
56
57
58
59
60 public Object get(int index)
61 {
62
63 return filteredList.get(index);
64 }
65
66
67
68
69 public Object remove(int index)
70 {
71
72 Object o = filteredList.remove(index);
73
74 if (o != null)
75 {
76 ListIterator iter = fragment.accessFragments().listIterator();
77 while (iter.hasNext())
78 {
79 if (iter.next() == o)
80 {
81 iter.remove();
82 break;
83 }
84 }
85 }
86 return o;
87 }
88
89
90
91
92 public Object set(int index, Object element)
93 {
94
95 Object o = filteredList.set(index, element);
96
97 if (o != null)
98 {
99 ListIterator iter = fragment.accessFragments().listIterator();
100 while (iter.hasNext())
101 {
102 if (iter.next() == o)
103 {
104 iter.set(element);
105 break;
106 }
107 }
108 }
109
110 if ((fragment.getPage() != null) && (element instanceof FragmentImpl))
111 {
112 ((FragmentImpl)element).setPage(fragment.getPage());
113 }
114 return o;
115 }
116
117
118
119
120 public int size()
121 {
122
123 return filteredList.size();
124 }
125 }