View Javadoc

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 }