private bool setPreviousObject()
        {
            // if nextObjectSet,
            // then we've walked back one step in the
            // underlying list (due to a hasNext() call)
            // so skip ahead one matching object
            if (nextObjectSet)
            {
                clearNextObject();
                if (!setPreviousObject())
                {
                    return(false);
                }
                else
                {
                    clearPreviousObject();
                }
            }

            while (iterator.hasPrevious())
            {
                Object obj = iterator.previous();
                if (predicate.evaluate(obj))
                {
                    previousObject    = obj;
                    previousObjectSet = true;
                    return(true);
                }
            }
            return(false);
        }
Пример #2
0
 /**
  * Returns the previous object in the list.
  * <p>
  * If at the beginning of the list, return the last element. Note
  * that in this case, traversal to find that element takes linear time.
  *
  * @return the object before the last element returned
  * @throws NoSuchElementException if there are no elements in the list
  */
 public Object previous()
 {
     if (list.isEmpty())
     {
         throw new java.util.NoSuchElementException(
                   "There are no elements for this iterator to loop on");
     }
     if (iterator.hasPrevious() == false)
     {
         Object result = null;
         while (iterator.hasNext())
         {
             result = iterator.next();
         }
         iterator.previous();
         return(result);
     }
     else
     {
         return(iterator.previous());
     }
 }
Пример #3
0
        private int runLimit(java.util.List <IAC_Range> ranges)
        {
            int result = end;

            java.util.ListIterator <IAC_Range> it = ranges.listIterator(ranges.size());
            while (it.hasPrevious())
            {
                IAC_Range range = it.previous();
                if (range.end <= begin)
                {
                    break;
                }
                if (offset >= range.start && offset < range.end)
                {
                    return(inRange(range) ? range.end : result);
                }
                else if (offset >= range.end)
                {
                    break;
                }
                result = range.start;
            }
            return(result);
        }
 public virtual bool hasPrevious()
 {
     return(iterator.hasPrevious());
 }
Пример #5
0
 public bool hasPrevious()
 {
     return(iterator.hasPrevious());
 }
Пример #6
0
 public bool hasPrevious()
 {
     checkMod();
     return(iter.hasPrevious());
 }