1 package com.daffodilwoods.daffodildb.server.datasystem.indexsystem; 2 3 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 4 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValues; 5 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._TableCharacteristics; 6 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.DatabaseConstants; 7 import com.daffodilwoods.database.resource.DException; 8 import com.daffodilwoods.daffodildb.utils.BufferRange; 9 public class BTreeCharacteristicsSingleColumn implements _BTreeCharacteristics,DatabaseConstants{ 10 private String columnName; 11 private int columnIndex; 12 private _TableCharacteristics tableCharacteristics; 13 14 15 public BTreeCharacteristicsSingleColumn(String columnName0,int columnIndex0,_TableCharacteristics tc) { 16 columnName = columnName0; 17 columnIndex = columnIndex0; 18 tableCharacteristics = tc; 19 } 20 21 public Object getColumnValues(_Reference[] references,Object value ) throws DException { 22 setIndexinReference(references[0]); 23 return new Object []{tableCharacteristics.getObject(columnIndex,(BufferRange)value)}; 24 } 25 26 public Object getColumnValues(_Reference reference, Object value) throws DException { 27 setIndexinReference(reference); 28 return tableCharacteristics.getObject(columnIndex,(BufferRange)value); 29 } 30 31 private void setIndexinReference(_Reference reference)throws DException{ 32 try{ 33 reference.getIndex(); 34 } 35 catch(DException de) { 36 if(!de.getDseCode().equalsIgnoreCase("DSE565")) 37 throw de; 38 if(columnName.equalsIgnoreCase(reference.getColumn())) 39 reference.setIndex(columnIndex); 40 else 41 throw COLUMN_NOTFOUND_EXCEPTION; 42 } 43 44 } 45 } 46 | Popular Tags |