View Javadoc

    1   /*
    2    * $Id: IteratorStatus.java 471756 2006-11-06 15:01:43Z husted $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.struts2.views.jsp;
    22
    23
    24  /***
    25   * The iterator tag can export an IteratorStatus object so that
    26   * one can get information about the status of the iteration, such as
    27   * the size, current index, and whether any more items are available.
    28   *
    29   */
    30  public class IteratorStatus {
    31      protected StatusState state;
    32
    33      public IteratorStatus(StatusState aState) {
    34          state = aState;
    35      }
    36
    37      public int getCount() {
    38          return state.index + 1;
    39      }
    40
    41      public boolean isEven() {
    42          return ((state.index + 1) % 2) == 0;
    43      }
    44
    45      public boolean isFirst() {
    46          return state.index == 0;
    47      }
    48
    49      public int getIndex() {
    50          return state.index;
    51      }
    52
    53      public boolean isLast() {
    54          return state.last;
    55      }
    56
    57      public boolean isOdd() {
    58          return ((state.index + 1) % 2) == 1;
    59      }
    60
    61      public int modulus(int operand) {
    62          return (state.index + 1) % operand;
    63      }
    64
    65      public static class StatusState {
    66          boolean last = false;
    67          int index = 0;
    68
    69          public void setLast(boolean isLast) {
    70              last = isLast;
    71          }
    72
    73          public void next() {
    74              index++;
    75          }
    76      }
    77  }