1 /*
2 * Scope: a generic MVC framework.
3 * Copyright (c) 2000-2002, The Scope team
4 * All rights reserved.
5 *
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 *
18 * Neither the name "Scope" nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 *
36 * $Id: IntIndexSelectorIterator.java,v 1.5 2002/09/05 15:41:46 ludovicc Exp $
37 */
38 package org.scopemvc.model.util;
39
40
41 import java.util.Iterator;
42 import org.scopemvc.core.IntIndexSelector;
43 import org.scopemvc.core.Selector;
44 import org.scopemvc.util.Debug;
45
46 /***
47 * <P>
48 *
49 * An Iterator that iterates between a range of IntIndexSelectors. Construct
50 * with a start and end index: the iterator steps over this sequence inclusive.
51 * ie (0, 0) gives a 0 Selector, but (0, -1) gives no Selector. </P> <P>
52 *
53 * Note: the Selectors returned must be treated as immutable: it is the same
54 * Selector. </P>
55 *
56 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
57 * @created 05 September 2002
58 * @version $Revision: 1.5 $ $Date: 2002/09/05 15:41:46 $
59 */
60 public final class IntIndexSelectorIterator implements Iterator {
61
62 private int startIndex;
63 private int endIndex;
64
65 private int currentIndex = -1;
66
67 private IntIndexSelector currentSelector;
68
69
70 /***
71 * Constructor for the IntIndexSelectorIterator object
72 *
73 * @param inStartIndex TODO: Describe the Parameter
74 * @param inEndIndex TODO: Describe the Parameter
75 */
76 public IntIndexSelectorIterator(int inStartIndex, int inEndIndex) {
77 if (inStartIndex > inEndIndex) {
78 int temp = inStartIndex;
79 inStartIndex = inEndIndex;
80 inEndIndex = temp;
81 }
82 startIndex = inStartIndex;
83 endIndex = inEndIndex;
84 currentIndex = startIndex;
85
86 currentSelector = (IntIndexSelector) Selector.fromInt(0);
87 // create shared instance
88 }
89
90
91 /***
92 * TODO: document the method
93 *
94 * @return TODO: Describe the Return Value
95 */
96 public boolean hasNext() {
97 if (Debug.ON) {
98 Debug.assertTrue(currentIndex >= startIndex);
99 }
100 return currentIndex <= endIndex;
101 }
102
103
104 /***
105 * TODO: document the method
106 *
107 * @return TODO: Describe the Return Value
108 */
109 public Object next() {
110 if (!(currentIndex >= startIndex && currentIndex <= endIndex)) {
111 throw new RuntimeException("Iterator past end of Selector list.");
112 }
113
114 currentSelector.setIndex(currentIndex);
115 ++currentIndex;
116 return currentSelector;
117 }
118
119
120 /***
121 * TODO: document the method
122 */
123 public void remove() {
124 throw new UnsupportedOperationException("Can't remove Selectors from a model.");
125 }
126 }
This page was automatically generated by Maven