View Javadoc
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