View Javadoc
1   package net.sumaris.core.util.type;
2   
3   /*-
4    * #%L
5    * SUMARiS:: Core shared
6    * %%
7    * Copyright (C) 2018 - 2019 SUMARiS Consortium
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
23   */
24  
25  import java.util.Iterator;
26  
27  public class SequenceIterator implements Iterator<Integer> {
28  
29  	private int sequence = 0;
30  	private int increment = 1;
31  
32  	public SequenceIterator() {
33  		sequence = 0;
34  		this.increment = 1;
35  	}
36  
37  	public SequenceIterator(int initValue, int increment) {
38  		sequence = initValue;
39  		this.increment = increment;
40  	}
41  
42  	@Override
43  	public boolean hasNext() {
44  		return true;
45  	}
46  
47  	@Override
48  	public Integer next() {
49  		this.sequence += increment;
50  		return sequence;
51  	}
52  
53  	@Override
54  	public void remove() {
55  		// LP : special behavior for this sequence iterator : it decrement the sequence by one increment
56  		sequence -= increment;
57  		// the next call of next() will return the actual sequence number
58  	}
59  
60  	public int getCurrentValue() {
61  		return sequence;
62  	}
63  
64  }