public static List getListFromObject(Object iterableObject,
int startIndex,
int numberOfItems) {
if (iterableObject instanceof List)
{
// easier, use sublist
List list = ((List) iterableObject);
// check for partial lists
int lastRecordExclusive = numberOfItems < = 0 ? list.size() : startIndex + numberOfItems;
if (lastRecordExclusive > list.size())
{
lastRecordExclusive = list.size();
}
if (startIndex < list.size())
{
return list.subList(startIndex, lastRecordExclusive);
}
}
// use an iterator
Iterator iterator = IteratorUtils.getIterator(iterableObject);
return getSubList(iterator, startIndex, numberOfItems);
}
create an iterator on a given object (Collection, Enumeration, array, single Object) and crop the resulting list
according to the startIndex and numberOfItems parameters. |