1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.struts2.views.jsp;
19
20
21 /***
22 * The iterator tag can export an IteratorStatus object so that
23 * one can get information about the status of the iteration, such as
24 * the size, current index, and whether any more items are available.
25 *
26 */
27 public class IteratorStatus {
28 protected StatusState state;
29
30 public IteratorStatus(StatusState aState) {
31 state = aState;
32 }
33
34 public int getCount() {
35 return state.index + 1;
36 }
37
38 public boolean isEven() {
39 return ((state.index + 1) % 2) == 0;
40 }
41
42 public boolean isFirst() {
43 return state.index == 0;
44 }
45
46 public int getIndex() {
47 return state.index;
48 }
49
50 public boolean isLast() {
51 return state.last;
52 }
53
54 public boolean isOdd() {
55 return ((state.index + 1) % 2) == 1;
56 }
57
58 public int modulus(int operand) {
59 return (state.index + 1) % operand;
60 }
61
62 public static class StatusState {
63 boolean last = false;
64 int index = 0;
65
66 public void setLast(boolean isLast) {
67 last = isLast;
68 }
69
70 public void next() {
71 index++;
72 }
73 }
74 }