code: private boolean moveNext()
              throws JspException
      {
          // increment the current position, if we are beyond the end of the array return
          _repIdx++;
          if (_repIdx == _order.length)
              return false;
  
          // Get the next stage and clear the _repeaterIterator
          _repCurStage = _order[_repIdx];
          _repeaterIterator = null;
  
          // process each type of iteration...
          // Each will recursively call moveNext, if that stage doesn't support iteration
          switch (_repCurStage.getValue()) {
              case RepeatingStages.INT_BEFORE:
                  break;
              case RepeatingStages.INT_OPTION:
                  // This produces an error if the optionsDataSource is an instance of an iterator
                  if (!(_dynamicOptions instanceof Iterator)) {
                      String s = Bundle.getString("Tags_OptionsDSIteratorError");
                      registerTagError(s, null);
                      return false;
                  }
  
                  assert(_dynamicOptions instanceof Iterator);
                  _repeaterIterator = (Iterator) _dynamicOptions;
                  break;
  
              case RepeatingStages.INT_DEFAULT:
                  if (_defaultSelections != null)
                      _repeaterIterator = _defaultSelections.iterator();
                  break;
              case RepeatingStages.INT_DATASOURCE:
                  if (_match != null)
                      _repeaterIterator = Arrays.asList(_match).iterator();
                  break;
              case RepeatingStages.INT_NULL:
                  if (_nullable)
                      _repeaterIterator = new ArrayIterator(NULL_INSTANCE);
                  break;
          }
  
          // return true when we set the iterator, otherwise move to the next stage.
          return (_repeaterIterator != null) ? true : moveNext();
      }
docs: This method will move to the next iteration type.  The order of the
  iteration is defined by the <code>_order</code> array.  The result
  is side affecting the _repeaterIterator by initializing it.  If there
  is nothing further, then we will return false, otherwise we return true.
  @return
  @throws JspException