1/*- 2 * See the file LICENSE for redistribution information. 3 * 4 * Copyright (c) 2002,2008 Oracle. All rights reserved. 5 * 6 * $Id: RawArrayInput.java,v 1.1 2008/02/07 17:12:27 mark Exp $ 7 */ 8 9package com.sleepycat.persist.impl; 10 11import java.util.IdentityHashMap; 12 13import com.sleepycat.persist.raw.RawObject; 14 15/** 16 * Extends RawAbstractInput to convert array (ObjectArrayFormat and 17 * PrimitiveArrayteKeyFormat) RawObject instances. 18 * 19 * @author Mark Hayes 20 */ 21class RawArrayInput extends RawAbstractInput { 22 23 private Object[] array; 24 private int index; 25 private Format componentFormat; 26 27 RawArrayInput(Catalog catalog, 28 boolean rawAccess, 29 IdentityHashMap converted, 30 RawObject raw, 31 Format componentFormat) { 32 super(catalog, rawAccess, converted); 33 array = raw.getElements(); 34 this.componentFormat = componentFormat; 35 } 36 37 @Override 38 public int readArrayLength() { 39 return array.length; 40 } 41 42 @Override 43 Object readNext() { 44 Object o = array[index++]; 45 return checkAndConvert(o, componentFormat); 46 } 47} 48