1 package mir.entity.adapter;
6 public class EntityListAdapter extends AbstractList {
8 private int maximumLength;
9 private EntityBrowser browser;
10 private boolean exhausted = false;
11 private boolean skipped = false;
15 protected EntityListAdapter(EntityBrowser aBrowser, int aSkip, int aMaximumLength) {
18 maximumLength = aMaximumLength;
22 protected EntityListAdapter(EntityBrowser aBrowser, int aMaximumLength) {
23 this(aBrowser, 0, aMaximumLength);
26 protected EntityListAdapter(EntityBrowser aBrowser) {
27 this(aBrowser, 0, -1);
36 if (browser.hasNext())
42 throw new RuntimeException(t.getMessage());
46 private void fetchNext() {
49 if (browser.hasNext())
50 cache.add(browser.next());
52 exhausted = !browser.hasNext() || (maximumLength>0 && cache.size()>=maximumLength) ;
56 throw new RuntimeException(t.getMessage());
61 private void exhaust() {
68 private void fetchUntil(int anIndex) {
71 while (!exhausted && anIndex>=cache.size())
81 public Object get(int anIndex) {
83 return cache.get(anIndex);