1 package com.daffodilwoods.daffodildb.server.datasystem.indexsystem; 2 3 import com.daffodilwoods.daffodildb.server.datasystem.btree.*; 4 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._DatabaseUser; 5 import com.daffodilwoods.database.resource.DException; 6 import com.daffodilwoods.daffodildb.utils.byteconverter.CbCzufIboemfs; 7 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._Index; 8 9 public class MemoryNodeManager implements _NodeManager { 10 11 private int size = 0; 12 private _Index btree; 13 private BTreeNode rootNode ; 14 private IndexColumnInformation iinf; 15 private int nodeSize; 16 17 public MemoryNodeManager(IndexColumnInformation iinf1){ 18 iinf = iinf1; 19 nodeSize = 255; 20 } 21 22 public MemoryNodeManager(IndexColumnInformation iinf1,int nodeSize0){ 23 iinf = iinf1; 24 nodeSize = nodeSize0; 25 } 26 27 28 29 public BTreeNode getRootNode(_DatabaseUser user)throws DException { 30 return rootNode; 31 } 32 33 public BTreeNode getNewNode(_DatabaseUser user)throws DException { 34 MemoryNode memoryNode = new MemoryNode(nodeSize); 35 BTreeNode node = new BTreeNode(btree,memoryNode); 36 memoryNode.setNode(node); 37 return node; 38 } 39 40 public void updateSize(_DatabaseUser user,boolean increment) throws DException{ 41 size += increment ? 1 : -1; 42 if(size == 0){ 43 rootNode = null; 44 } 45 } 46 47 public void updateBTreeInfo(_DatabaseUser user,BTreeNode node) throws DException { 48 rootNode = node; 49 } 50 public void updateSizeAndBTreeInfo(_DatabaseUser user,boolean increment,BTreeNode node) throws DException { 51 rootNode = node; 52 size += increment ? 1 : -1; 53 if (size == 0) { 54 rootNode = null; 55 } 56 } 57 58 public int getSize() { 59 return size; 60 } 61 62 public BTreeNode getNodeForRead( BTreeElement element) throws DException{ 63 return element.getChild(); 64 } 65 66 public void setBTree(_Index btree0){ 67 btree = btree0; 68 } 69 70 public BTreeNode getNode(_DatabaseUser user,Object nodeKey) throws DException{ 71 return (BTreeNode)nodeKey; 72 } 73 74 public CbCzufIboemfs[] getByteHandlers() throws DException{ 75 return iinf.getHandlers(); 76 } 77 78 public int[] getColumnTypes() throws DException{ 79 return iinf.getTypeOfColumns(); 80 } 81 public void setSize(int size){ 82 83 throw new java.lang.UnsupportedOperationException ("Method setSize() not yet implemented."); 84 } 85 86 public void releaseResource(_DatabaseUser user,boolean releaseCompletely) throws 87 DException{ 88 } 89 90 91 } 92 | Popular Tags |