if(pages != null) pages.add(page);
dataCache.add(page.getFirstPage());
		public boolean indexInfo(Value value, long pointer) {			long pos;			short tid;			DataPage page;			int offset;			int l;			Value v;			byte[] data;			try {				switch (mode) {					case VALUES :						pos = StorageAddress.pageFromPointer(pointer);						tid = StorageAddress.tidFromPointer(pointer);						page = getDataPage(pos);						if(pages != null)							pages.add(page);						offset = findValuePosition(page, tid);						data = page.getData();						l = ByteConversion.byteToInt(data, offset);						v = new Value(data, offset + 4, l);						v.setAddress(pointer);						if (callback == null)							values.add(v);						else							return callback.indexInfo(value, v);						return true;					case KEYS :						value.setAddress(pointer);						if (callback == null)							values.add(value);						else							return callback.indexInfo(value, null);						return true;					case BOTH :						Value[] entry = new Value[2];						entry[0] = value;						pos = StorageAddress.pageFromPointer(pointer);						tid = StorageAddress.tidFromPointer(pointer);						page = getDataPage(pos);						if(pages != null)							pages.add(page);						offset = findValuePosition(page, tid);						data = page.getData();						l = ByteConversion.byteToInt(data, offset);						v = new Value(data, offset + 4, l);						v.setAddress(pointer);						entry[1] = v;						if (callback == null)							values.add(entry);						else							return callback.indexInfo(value, v);						return true;				}			} catch (IOException e) {				LOG.error(e.getMessage(), e);			}			return false;		}