KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > datasystem > btree > BTreeKey


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 /**
10  * BTreeKey represents smallest entity of Btree. It identifies any element in Btree by given node and
11  * position in that particular node.
12  *
13  *
14  * <p>BTreeKey:
15  */

16
17 public class BTreeKey implements _Key ,_IndexKey{
18
19   /**
20    *
21    */

22   private BTreeNode node;
23
24   /**
25    *
26    */

27   private int position;
28
29   /**
30    *
31    */

32   private Object JavaDoc oldkey;
33
34   /**
35    *
36    */

37   private Object JavaDoc oldValue;
38
39     public BTreeKey() {
40     }
41
42     /**
43      * This constructor is used only for locateNode method
44      */

45
46     public BTreeKey(BTreeNode node0,int pos ) {
47         node = node0;
48         position = pos;
49     }
50
51     public Object JavaDoc getKey()throws DException{
52         return oldkey;
53     }
54
55     public Object JavaDoc 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 JavaDoc 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 JavaDoc toString(){
91         return " OLD KEY :: "+(oldkey instanceof Object JavaDoc[] ? P.print(oldkey) : oldkey)+" OLD VALUE "+oldValue + " ** " + position;
92     }
93
94    public Object JavaDoc getOldkey() throws DException{
95         return oldkey;
96     }
97
98   public Object JavaDoc 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 JavaDoc getKeyValue() throws DException {
108         return getKey();
109     }
110
111     public boolean equals(Object JavaDoc 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 JavaDoc clone(){
120      BTreeKey clone = new BTreeKey(node, position);
121      clone.oldkey = oldkey;
122      clone.oldValue = oldValue;
123      return clone;
124   }
125 }
126
Popular Tags