View Javadoc

1   /*
2    * Copyright 2001,2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.apache.commons.scaffold.util;
18  
19  
20  import java.util.Collection;
21  import java.util.Iterator;
22  import java.util.List;
23  import java.util.Map;
24  
25  
26  /**
27   * A container for a set of results returned from the
28   * resource tier. The list may contain a Map for each
29   * record in a set, or a collection of beans. A setter
30   * for the list is not provided, so that different
31   * implementations can specify the type it expects.
32   * @author Ted Husted
33   * @version $Revision: 155464 $ $Date: 2005-02-26 13:26:54 +0000 (Sat, 26 Feb 2005) $
34   */
35  public interface ResultList extends Collection {
36  
37  
38  // ----------------------------------------------------------- Properties
39  
40  
41      /**
42       * Return the result list
43       * @return the result list
44       */
45      public List getResult();
46  
47  
48      /**
49       * Set our result
50       * @param result The new result
51       */
52      public void setResult(List result);
53  
54  
55      /**
56       * Return our scroller.
57       * The scroller object tracks the client's current
58       * position in a result list.
59       * The database (or a cache) can return part of a
60       * larger list at a time.
61       * The scroller object can be used to request the
62       * appropriate next or previous entry on the list,
63       * and also to display the relative postion of the
64       * first item in this batch (x of xx).
65       * @return Our scroller
66       */
67      public Scroller getScroller();
68  
69  
70      /**
71       * Set our scroller.
72       * @param scroller The new scroller
73       */
74      public void setScroller(Scroller scroller);
75  
76  
77      /**
78       * Convenience method for maintaining a counter
79       * that can be shared among multiple components
80       * in some presentation systems (e.g, Tiles).
81       * @return The next counter value
82       */
83      public int getCounter();
84  
85  
86      /**
87       * Set a new counter value.
88       */
89      public void setCounter(int counter);
90  
91  
92      /**
93       * Return the code.
94       * @return the code
95       */
96      public Integer getCode();
97  
98  
99      /**
100      * Set the code.
101      * @param code The new code
102      */
103     public void setCode(Integer code);
104 
105 
106     /**
107      * Return the legend.
108      * @return the legend
109      */
110     public String getLegend();
111 
112 
113     /**
114      * Set the legend.
115      * @param legend The new legend
116      */
117     public void setLegend(String legend);
118 
119 
120     /**
121      * Set the legend.
122      * @param legend The new legend
123      */
124     public void setLegend(String name, String value);
125 
126 
127     /**
128      * Return the displayName map (a HashMap).
129      * These are localized titles for the
130      * properties names in the result list.
131      * @return the displayName list
132      */
133     public Map getDisplayName();
134 
135 
136     /**
137      * Assign a new displayName list.
138      * These are localized titles for the
139      * properties names in the result list.
140      */
141     public void setDisplayName(Map displayName);
142 
143 
144 // ------------------------------------------------------- Collection Methods
145 
146     // ----- array operations -----
147 
148 
149     /**
150      * Returns an array containing all of the elements in this collection.
151      * @return an array containing all of the elements in this collection
152      */
153     public Object[] toArray();
154 
155 
156     /**
157      * Returns an array containing all of the elements in this collection; the
158      * runtime type of the returned array is that of the specified array.
159      * @return an array containing the elements of this collection
160      */
161     public Object[] toArray(Object a[]);
162 
163 
164     // ----- basic operations -----
165 
166 
167     /**
168      * Returns true if this collection contains no elements.
169      * @return true if this collection contains no elements
170      */
171     public boolean isEmpty();
172 
173 
174     /**
175      * Return the number of elements on the List.
176      * @return the size of the List
177      */
178     public int size();
179 
180 
181     /**
182      * Returns true if this collection contains the specified element.
183      * @return true if this collection contains the specified element
184      */
185     public boolean contains(Object element);
186 
187 
188     /**
189      * Appends the specified element to the end of this list (optional
190      * operation).
191      * @return the row count
192      */
193     public boolean add(Object o);
194 
195 
196     /**
197      * Return an iterator for the List.
198      * @return an iterator for the List
199      */
200     public Iterator iterator();
201 
202 
203     // ----- list operations -----
204 
205     /**
206      * Returns the element at the specified position in this list.
207      */
208     public Object get(int index);
209 
210 
211     // ----- bulk operations ------
212 
213     /**
214      * Appends all of the elements in the specified Collection
215      * to the end of this list, in the order that they are
216      * returned by the specified Collection's Iterator.
217      */
218     public boolean addAll(Collection c);
219 
220 
221     /**
222      * Removes all of the elements from this list..
223      */
224     public void clear();
225 
226 
227     /**
228      * Returns true if this collection contains all of the elements in the
229      * specified collection.
230      * @return true if this collection contains all of the elements in the
231      * specified collection
232      */
233     public boolean containsAll(Collection c);
234 
235 
236     /**
237      * Removes a single instance of the specified element from this
238      * collection, if it is present (optional operation).
239      */
240     public boolean remove(Object o);
241 
242 
243     /**
244      * Removes all this collection's elements that are also contained in the
245      * specified collection.
246      */
247     public boolean removeAll(Collection c);
248 
249     /**
250      * Retains only the elements in this collection that are contained in the
251      * specified collection.
252      */
253     public boolean retainAll(Collection c);
254 
255 
256 
257 // ----------------------------------------------------------- Public Methods
258 
259 
260     /**
261      * Convenience accessor for <code>get()</code>.
262      */
263     public Object getElement(int index);
264 
265 
266     /**
267      * Convenience accessor for <code>iterator()</code>.
268      * @return an iterator for the List
269      */
270     public Iterator getIterator();
271 
272 
273     /**
274      * Convenience accessor for <code>size()</code>.
275      * @return the size of the List
276      */
277     public int getSize();
278 
279 
280     /**
281      * Populate matching properties on given object,
282      * using bean at given index. Returns false if index>size.
283      * <code>PropertyUtils.describe</code>.
284      * @exception Throws StateException on any error.
285      */
286     public boolean populate(Object o, int index) throws Exception;
287 
288 }