1 package com.daffodilwoods.daffodildb.server.sessionsystem; 2 3 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 4 5 import com.daffodilwoods.database.general.*; 6 import com.daffodilwoods.database.resource.*; 7 import com.daffodilwoods.database.sqlinitiator.*; 8 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*; 9 import com.daffodilwoods.daffodildb.utils.FieldUtility; 10 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 11 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem.FileNodeManager; 12 13 14 22 23 public class TableRowIdGetter { 24 25 28 29 private String tableName; 30 31 34 35 private _Table mergeTable; 36 37 40 41 private long rowId; 42 43 public String toString() { 44 return " " + mergeTable; 45 } 46 47 53 54 public TableRowIdGetter( String tableName0, _Table cacheTable0 ) throws DException { 55 tableName = tableName0; 56 mergeTable = cacheTable0; 57 } 58 59 64 65 public synchronized FieldBase getNextRowId() throws DException { 66 initialize(); 67 return FieldUtility.getField(new Long (++rowId)); 68 } 69 70 75 76 public synchronized FieldBase getLastRowId() throws DException { 77 initialize(); 78 return FieldUtility.getField(new Long (rowId)); 79 } 80 81 82 86 87 public synchronized void initialize() throws DException { 88 if( rowId == 0 ){ 89 Object max = null; 90 _Iterator iterator = ((_IndexTable)mergeTable).getDefaultIterator(); 91 if(iterator.last()){ 92 max = ((Object [])iterator.getColumnValues())[0]; 93 } 94 rowId = max == null ? 0 : ((Long )((FieldBase)max).getObject()).longValue(); 95 } 96 } 97 } 98 | Popular Tags |