View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.jetspeed.om.page.impl;
18  
19  import java.util.AbstractList;
20  
21  /***
22   * FragmentList
23   *
24   * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
25   * @version $Id$
26   */
27  class FragmentList extends AbstractList
28  {
29      private FragmentImpl fragment;
30  
31      FragmentList(FragmentImpl fragment)
32      {
33          super();
34          this.fragment = fragment;
35      }
36  
37      /* (non-Javadoc)
38       * @see java.util.List#add(int,java.lang.Object)
39       */
40      public void add(int index, Object element)
41      {
42          // implement for modifiable AbstractList:
43          // add and maintain page implementation reference
44          fragment.accessFragments().add(index, element);
45          if ((fragment.getPage() != null) && (element instanceof FragmentImpl))
46          {
47              ((FragmentImpl)element).setPage(fragment.getPage());
48          }
49      }
50  
51      /* (non-Javadoc)
52       * @see java.util.List#get(int)
53       */
54      public Object get(int index)
55      {
56          // implement for modifiable AbstractList
57          return fragment.accessFragments().get(index);
58      }
59  
60      /* (non-Javadoc)
61       * @see java.util.List#remove(int)
62       */
63      public Object remove(int index)
64      {
65          // implement for modifiable AbstractList
66          return fragment.accessFragments().remove(index);
67      }
68  
69      /* (non-Javadoc)
70       * @see java.util.List#set(int,java.lang.Object)
71       */
72      public Object set(int index, Object element)
73      {
74          // implement for modifiable AbstractList:
75          // set and maintain page implementation reference
76          Object o = fragment.accessFragments().set(index, element);
77          if ((fragment.getPage() != null) && (element instanceof FragmentImpl))
78          {
79              ((FragmentImpl)element).setPage(fragment.getPage());
80          }
81          return o;
82      }
83  
84      /* (non-Javadoc)
85       * @see java.util.List#size()
86       */
87      public int size()
88      {
89          // implement for modifiable AbstractList
90          return fragment.accessFragments().size();
91      }
92  }