View Javadoc

1   // BlockIterator.java
2   /*
3    * Copyright (c) 2003, Henri Yandell
4    * All rights reserved.
5    * 
6    * Redistribution and use in source and binary forms, with or 
7    * without modification, are permitted provided that the 
8    * following conditions are met:
9    * 
10   * + Redistributions of source code must retain the above copyright notice, 
11   *   this list of conditions and the following disclaimer.
12   * 
13   * + Redistributions in binary form must reproduce the above copyright notice, 
14   *   this list of conditions and the following disclaimer in the documentation 
15   *   and/or other materials provided with the distribution.
16   * 
17   * + Neither the name of Genjava-Core nor the names of its contributors 
18   *   may be used to endorse or promote products derived from this software 
19   *   without specific prior written permission.
20   * 
21   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
22   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
24   * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
25   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
28   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
29   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
30   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
31   * POSSIBILITY OF SUCH DAMAGE.
32   */
33  package com.generationjava.collections;
34  
35  import java.util.Iterator;
36  import java.util.ArrayList;
37  
38  public class BlockIterator implements Iterator {
39  
40      private Iterator iterator;
41      private int size;
42  
43      public BlockIterator(int size, Iterator iterator) {
44          this.size = size;
45          this.iterator = iterator;
46      }
47  
48      public boolean hasNext() {
49          return this.iterator.hasNext();
50      }
51  
52      public Object next() {
53          ArrayList list = new ArrayList(size);
54          int loop = this.size;
55          while( (loop > 0) && (this.iterator.hasNext()) ) {
56              list.add(this.iterator.next());
57              loop--;
58          }
59          return list;
60      }
61  
62      public void remove() {
63          //
64      }
65  
66  }