1 /***
2 * Copyright (c) 2003 held jointly by the individual authors.
3 *
4 * This library is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License as published
6 * by the Free Software Foundation; either version 2.1 of the License, or
7 * (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; with out even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this library; if not, write to the Free Software Foundation,
16 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17 *
18 * > http://www.gnu.org/copyleft/lesser.html
19 * > http://www.opensource.org/licenses/lgpl-license.php
20 */
21 package net.mlw.vlh;
22
23 import java.util.ArrayList;
24 import java.util.Iterator;
25 import java.util.List;
26 import java.util.NoSuchElementException;
27
28 /*** Wrapper for a <CODE>List</CODE> and a <CODE>ValueListInfo</CODE> object.
29 * This is the Default implementation of ValueList.
30 *
31 * @author Matthew L. Wilson, Andrej Zachar
32 * @version $Revision: 1.10 $ $Date: 2005/08/19 15:46:25 $
33 */
34 public class DefaultListBackedValueList implements ValueList
35 {
36 private List list = null;
37 private ValueListInfo info = null;
38 private Iterator iter = null;
39
40 /*** Creates a new instance of DefaultValueList
41 */
42 public DefaultListBackedValueList()
43 {
44 this(new ArrayList(), new ValueListInfo());
45 }
46
47 /*** Default constructor.
48 * Here is always the same the list.size and info.getTotalNumberOfEntries.
49 * @param list The List to be sorted.
50 */
51 public DefaultListBackedValueList(List list)
52 {
53 this.list = list;
54 this.info = new ValueListInfo();
55 if (list != null)
56 {
57 info.setTotalNumberOfEntries(list.size());
58 }
59
60 }
61
62 /*** Default constructor.
63 * Warning! list.size and info.getTotalNumberOfEntries could be different!
64 * @param list The List to be sorted.
65 * @param info The sorting/paging/filtering info.
66 */
67 public DefaultListBackedValueList(List list, ValueListInfo info)
68 {
69 this.list = list;
70 this.info = info;
71 }
72
73 /*** @see com.mlw.vlh.ValueList.getList()
74 */
75 public List getList()
76 {
77 return list;
78 }
79
80 /*** @see com.mlw.vlh.ValueList.getListInfo()
81 */
82 public ValueListInfo getValueListInfo()
83 {
84 return info;
85 }
86
87 /*** @see com.mlw.vlh.ValueList.hasNext()
88 */
89 public boolean hasNext()
90 {
91 if (iter == null && list != null)
92 {
93 this.iter = list.iterator();
94 }
95
96 return (iter == null) ? false : iter.hasNext();
97 }
98
99 /*** @see java.util.Iterator#next()
100 */
101 public Object next() throws NoSuchElementException
102 {
103 if (iter == null)
104 {
105 if (list != null)
106 {
107 this.iter = list.iterator();
108 }
109 else
110 {
111 throw new NoSuchElementException();
112 }
113 }
114
115 return iter.next();
116 }
117
118 /*** @see java.util.Iterator#remove()
119 */
120 public void remove()
121 {
122 }
123
124 /*** Resets the Iterator in this ValueList.
125 */
126 public void reset()
127 {
128 iter = null;
129 }
130 }