@NotStorableClass public class NonTerminalPage extends AbstractNodePage implements INonTerminalPage
| Modifier and Type | Field and Description |
|---|---|
static int |
HEAD_TAIL_SIZE |
static int |
MAX_NUMBER_OF_ENTRIES |
longKey| Constructor and Description |
|---|
NonTerminalPage(int numberOfKeyEntries,
boolean longKey)
not static set creation
|
NonTerminalPage(int numberOfKeyEntries,
DataRecordIdentifier[] keys,
long[] pagePosition,
boolean longKey) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(ILeafPage existingLeftILeafPage,
ILeafPage newRightILeafPage) |
boolean |
add(INonTerminalPage leftSonNonTerminalPage,
DataRecordIdentifier middleKey,
INonTerminalPage rightSonNonTerminalPage) |
boolean |
checkKeys()
for assertion
|
DataRecordIdentifier |
getAndClearMiddleKey()
get and clear middle key computed by
split() |
int |
getByteSize() |
DataRecordIdentifier |
getFirstKey() |
int |
getIndex(DataRecordIdentifier dataRecordIdentifier) |
int |
getInParentIndex() |
DataRecordIdentifier |
getKey(int index) |
DataRecordIdentifier |
getLastKey() |
long |
getLastPagePosition() |
int |
getNumberOfKeyEntries() |
int |
getNumberOfPage()
the number of pages take is fix
|
long |
getPagePointer(int index) |
IPageRecordable |
getParentPage() |
EnumRecordType |
getRecordType() |
void |
remove(int leafPageInParentIndex) |
void |
setEntry(int index,
long pagePointer,
DataRecordIdentifier key) |
boolean |
setKey(int index,
DataRecordIdentifier key)
change key
|
void |
setParentPage(IPageRecordable parentPage,
int inParentIndex) |
INonTerminalPage |
split() |
int |
tryBalanceOrMerge(DataRecordIdentifier middleKey,
NonTerminalPage rightNonTerminalPage)
update
this#middleKey if do not merge |
void |
updateByteSize() |
void |
updateByteSizeAcceptBigger() |
boolean |
wellFilled() |
entrySizegetPageRecord, getPositionInFile, getPreviousRecordPositionInFile, setPageRecord, setValueIsChangedValueToSave, setValueIsNotChangedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetPositionInFilegetPageRecord, setPageRecordsetValueIsChangedValueToSave, setValueIsNotChangedpublic static final int HEAD_TAIL_SIZE
public static final int MAX_NUMBER_OF_ENTRIES
public NonTerminalPage(int numberOfKeyEntries,
boolean longKey)
numberOfKeyEntries - longKey - @Fortest public NonTerminalPage(int numberOfKeyEntries, DataRecordIdentifier[] keys, long[] pagePosition, boolean longKey) throws HeapException
HeapExceptionpublic EnumRecordType getRecordType()
getRecordType in interface IPageRecordablepublic int getNumberOfPage()
IPageRecordablegetNumberOfPage in interface IPageRecordablepublic void setParentPage(IPageRecordable parentPage, int inParentIndex)
setParentPage in interface IPageRecordablepublic IPageRecordable getParentPage()
getParentPage in interface IPageRecordablepublic int getInParentIndex()
throws HeapException
getInParentIndex in interface INonTerminalPagegetInParentIndex in interface IPageRecordableHeapExceptionpublic void setEntry(int index,
long pagePointer,
DataRecordIdentifier key)
throws HeapException
HeapExceptionpublic boolean setKey(int index,
DataRecordIdentifier key)
throws HeapException
index - key - HeapExceptionpublic int getByteSize()
getByteSize in interface IPageRecordablepublic final void updateByteSize()
throws HeapException
updateByteSize in interface IPageRecordableHeapException@Fortest public void updateByteSizeAcceptBigger() throws HeapException
HeapExceptionpublic int getNumberOfKeyEntries()
getNumberOfKeyEntries in interface INonTerminalPagepublic long getPagePointer(int index)
getPagePointer in interface INonTerminalPagepublic DataRecordIdentifier getKey(int index)
getKey in interface INonTerminalPagepublic int getIndex(DataRecordIdentifier dataRecordIdentifier)
dataRecordIdentifier - public boolean add(ILeafPage existingLeftILeafPage, ILeafPage newRightILeafPage) throws HeapException
existingLeftILeafPage - newRightILeafPage - HeapExceptionpublic boolean add(INonTerminalPage leftSonNonTerminalPage, DataRecordIdentifier middleKey, INonTerminalPage rightSonNonTerminalPage) throws HeapException
leftSonNonTerminalPage - middleKey - rightSonNonTerminalPage - HeapExceptionpublic INonTerminalPage split() throws HeapException
HeapExceptionpublic DataRecordIdentifier getAndClearMiddleKey()
split()split()public void remove(int leafPageInParentIndex)
public boolean wellFilled()
public int tryBalanceOrMerge(DataRecordIdentifier middleKey, NonTerminalPage rightNonTerminalPage) throws HeapException
this#middleKey if do not mergemiddleKey - rightNonTerminalPage - HeapExceptionpublic DataRecordIdentifier getLastKey()
getLastKey in class AbstractNodePagepublic long getLastPagePosition()
public DataRecordIdentifier getFirstKey()
public final boolean checkKeys()
Copyright © 2007-2012 Luc Peuvrier. All Rights Reserved.