1 package com.daffodilwoods.daffodildb.server.datasystem.persistentsystem; 2 3 import java.lang.ref.*; 4 5 import com.daffodilwoods.database.resource.*; 6 7 12 13 14 public class TableKey implements Comparable { 15 16 19 public int startAddress; 20 23 public short recordNumber; 24 27 public WeakReference cluster; 28 29 private static WeakReference nullWeakReference = new WeakReference(null); 30 31 public TableKey(int startAddress0,short recordNumber0) throws DException { 32 cluster = nullWeakReference; 33 startAddress = startAddress0; 34 recordNumber = recordNumber0; 35 } 36 37 public TableKey(WeakReference cluster0,int startAddress0,short recordNumber0) throws DException { 38 cluster = cluster0; 39 startAddress = startAddress0; 40 recordNumber = recordNumber0; 41 } 42 43 44 public int hashCode() { 45 long value = startAddress*11 + recordNumber*13; 46 return (int)(value ^ (value >> 32)); 47 } 48 54 public boolean equals(Object object) { 55 if(!(object instanceof TableKey)) 56 return false; 57 TableKey tk = (TableKey)object; 58 if(tk == null) 59 return false; 60 return tk.startAddress == startAddress && recordNumber == tk.recordNumber; 61 } 62 63 public String toString() { 64 return startAddress + " -- " + recordNumber; 65 } 66 74 public int compareTo(Object key) { 75 TableKey object = (TableKey)key; 76 long diff = object.startAddress - startAddress; 77 if(diff == 0) 78 diff = object.recordNumber - recordNumber; 79 int cmp = diff < 0 ? -1 : diff > 0 ? 1 : 0; 80 return cmp; 81 } 82 85 public int getStartAddress() { 86 return startAddress; 87 } 88 91 public short getRecordNumber() { 92 return recordNumber; 93 } 94 95 99 public void setCluster(WeakReference cluster0) { 100 cluster = cluster0; 101 } 102 } 103 | Popular Tags |