protected void prefetch(Object listenedObject)
{
ArrayList owners = (ArrayList) _retrievalTasks.get(_key);
List toPrefetch;
RelationshipPrefetcher prefetcher;
boolean prefetchingAll;
removeThisListener();
if (owners == null)
{
return;
}
prefetcher = getPrefetcher(listenedObject);
if (owners.size() <= _limit)
{
toPrefetch = owners;
prefetchingAll = true;
}
else
{
toPrefetch = owners.subList(0, _limit);
prefetchingAll = false;
}
final Class saveClassToPrefetch = classToPrefetch;
classToPrefetch = prefetcher.getItemClassDescriptor().getClassOfObject();
try
{
prefetcher.prefetchRelationship(toPrefetch);
}
finally
{
classToPrefetch = saveClassToPrefetch;
}