1 package com.daffodilwoods.daffodildb.server.sessionsystem.sessionversioninfo; 2 3 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.Utility; 4 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 5 import com.daffodilwoods.database.resource.DException; 6 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._IndexIterator; 7 import com.daffodilwoods.daffodildb.utils.comparator.SuperComparator; 8 import com.daffodilwoods.database.general.SystemFields; 9 import com.daffodilwoods.daffodildb.server.datadictionarysystem.IndexInformation; 10 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem._IndexInformation; 11 12 public class SessionVersionHandler3_2 13 extends SessionVersionHandler { 14 public SessionVersionHandler3_2() { 15 } 16 17 public boolean recordFound(_Iterator iterator, Object [] key) throws 18 DException { 19 return Utility.recordFound(iterator, key); 20 } 21 22 public boolean recordFound(_Iterator iterator, Object actualKey, Object [] key) throws 23 DException { 24 return Utility.findRecord(iterator, actualKey, key); 25 } 26 27 public boolean recordFound(_IndexIterator iterator,_IndexIterator keyIterator, Object actualKey, SuperComparator comparator) throws DException{ 28 return Utility.recordFound(iterator,keyIterator,actualKey, comparator); 29 } 30 31 public Object getDefaultKey(Object kee) throws DException{ 32 try { 33 if(!(kee instanceof Object [])) 34 return kee; 35 Object [] key = (Object [])kee; 36 return key[key.length-1]; 37 } 38 catch (Exception ex) { 39 throw new DException("DSE0",new Object [] {ex.getMessage()}); 40 } 41 } 42 43 public void update(_IndexInformation iinf) throws DException { 44 if(!iinf.isUpdated()){ 45 int size = iinf.getColumns().length; 46 int len = size + 1; 47 String [] names = new String [len]; 48 int [] indexes = new int[len]; 49 boolean [] types = new boolean[len]; 50 System.arraycopy(iinf.getColumns(),0,names,0,size); 51 System.arraycopy(iinf.getColumnIndexes(),0,indexes,0,size); 52 System.arraycopy(iinf.getOrderOfColumns(),0,types,0,size); 53 names[size] = SystemFields.systemFields[SystemFields.rowId]; 54 indexes[size] = SystemFields.rowId; 55 types[size] = true; 56 iinf.setColumnNames(names); 57 iinf.setColumnIndexes(indexes); 58 iinf.setOrderOfColumns(types); 59 iinf.setIsUpdatedFlag(true); 60 61 } 62 } 63 public boolean hasOnlyRowidAsColumnIndex(){ 64 return true; 65 } 66 67 public boolean seek(_Iterator iterator,Object key) throws DException{ 68 return iterator.seek(new Object []{key}); 69 } 70 71 } 72 | Popular Tags |