1 package com.daffodilwoods.daffodildb.server.datasystem.btree; 2 3 import com.daffodilwoods.database.resource.DException; 4 import com.daffodilwoods.database.utility.P; 5 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._Key; 6 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem.FixedFileNode; 7 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._IndexKey; 8 9 16 17 public class BTreeKey implements _Key ,_IndexKey{ 18 19 22 private BTreeNode node; 23 24 27 private int position; 28 29 32 private Object oldkey; 33 34 37 private Object oldValue; 38 39 public BTreeKey() { 40 } 41 42 45 46 public BTreeKey(BTreeNode node0,int pos ) { 47 node = node0; 48 position = pos; 49 } 50 51 public Object getKey()throws DException{ 52 return oldkey; 53 } 54 55 public Object getValue()throws DException{ 56 return oldValue; 57 } 58 59 public BTreeNode getNode(){ 60 return node; 61 } 62 63 public int getPosition(){ 64 return position; 65 } 66 67 public void setNodeAndPosition(Object node1,int position1)throws DException{ 68 node = (BTreeNode)node1; 69 position = position1; 70 71 if(node != null){ 72 BTreeElement ele = node.getElement(position,null); 73 oldkey = ele.getKeyValue(); 74 oldValue = ele.getValue(); 75 } 76 else{ 77 oldkey = null; 78 oldValue = null; 79 } 80 } 81 82 public void setPosition(int position1) throws DException{ 83 position = position1; 84 BTreeElement ele = node.getElement(position,null); 85 oldkey = ele.getKeyValue(); 86 oldValue = ele.getValue(); 87 } 88 89 90 public String toString(){ 91 return " OLD KEY :: "+(oldkey instanceof Object [] ? P.print(oldkey) : oldkey)+" OLD VALUE "+oldValue + " ** " + position; 92 } 93 94 public Object getOldkey() throws DException{ 95 return oldkey; 96 } 97 98 public Object getOldValue() throws DException{ 99 return oldValue; 100 } 101 102 public void checkValidity()throws DException{ 103 if(!node.isLeaf()) 104 throw new DException("DSE2041",null); 105 } 106 107 public Object getKeyValue() throws DException { 108 return getKey(); 109 } 110 111 public boolean equals(Object obj) { 112 if(obj instanceof BTreeKey){ 113 BTreeKey key = (BTreeKey)obj; 114 return node.hashCode() == key.getNode().hashCode() && position == key.getPosition(); 115 } 116 return false; 117 } 118 119 public Object clone(){ 120 BTreeKey clone = new BTreeKey(node, position); 121 clone.oldkey = oldkey; 122 clone.oldValue = oldValue; 123 return clone; 124 } 125 } 126 | Popular Tags |