1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
package org.python.core;
/**
* An iterator that yields the objects from a sequence-like object in reverse
* order.
*/
public class PyReversedIterator extends PyIterator {
/**
* Creates an iterator that first yields the item at __len__ - 1 on seq and
* returns the objects in descending order from there down to 0.
*
* @param seq -
* an object that supports __getitem__ and __len__
*/
public PyReversedIterator(PyObject seq) {
this.seq = seq;
idx = seq.__len__();
if(idx > 0) {
idx = idx - 1;
}
}
public PyObject __iternext__() {
if(idx >= 0) {
return seq.__finditem__(idx--);
}
return null;
}
private PyObject seq;
private int idx;
}
|