com.sibvisions.rad.model.mem
Class MemDataPage

java.lang.Object
  extended by com.sibvisions.rad.model.mem.MemDataPage
All Implemented Interfaces:
IDataPage
Direct Known Subclasses:
RemoteDataPage

public class MemDataPage
extends Object
implements IDataPage

A MemDataPage is the memory implementation for a data page of an IDataBook.
A master IDataBook has one IDataPage for itself. If the IDataBook is (also) a detail IDataBook it stores all IDataPage's for each loaded master row (parent master).

See Also:
IDataBook, IDataPage, IChangeableDataRow

Constructor Summary
MemDataPage(MemDataBook pDataBook, IDataRow pMasterDataRow)
          Construct a new MemDataPage for the specified IDataBook and the corresponding master row.
 
Method Summary
protected  void addFetchedRow(Object[] pValues)
          It adds an new IDataRow to the DataPage in the object[] storage.
protected  void clear()
          It clears the mem filter and sort in the MemDataPage.
 boolean delete(int pDataRowIndex)
          Marks the specified row as Deleted with the given index in the MemDataPage.
 void fetchAll()
          It fetches all IDataRow's from the storage.
 void fetchToRow(int pRowIndex)
          Will/should be overridden in the derived Classes to fetch data from the storage.
 int[] getChangedDataRows()
          Returns an int array with all changed rows.
 IDataBook getDataBook()
          Returns the IDataBook of the IDataPage.
 IChangeableDataRow getDataRow(int pDataRowIndex)
          Returns a copy of the IDataRow of the specified index.
protected  Object[] getDataRowStorage(int pDataRowIndex)
          Returns the internal storage for the specified DataRow Object[].
 int getEstimatedRowCount()
          Returns -1.
 IDataRow getMasterDataRow()
          Returns the corresponding master row to this IDataPage in the master DataBook.
 int getRowCount()
          Returns the size.
protected  int getRowCountInternal()
          Returns the row count of this MemDataPage.
 void insert(int pDataRowIndex)
          It inserts a new IChangeableDataRow in the MemDataPage at the specified index.
 boolean isAllFetched()
          Returns true if all rows are loaded.
 void restore(int pDataRowIndex)
          Restores the specified row in the MemDataPage.
 int searchNext(ICondition pCondition)
          Searches the given condition.
 int searchNext(ICondition pCondition, int pRowNum)
          Searches the given condition starting at the given position.
 int searchPrevious(ICondition pCondition)
          Searches the given condition.
 int searchPrevious(ICondition pCondition, int pRowNum)
          Searches the given condition starting at the given position.
protected  void setAllFetched(boolean pAllFetched)
          Sets that the MemDataPage has all fetched.
protected  void setDataRow(int pDataRowIndex, ChangeableDataRow pRow)
          Sets the internal storage for the specified DataRow Object[].
protected  void setDetailChanged(int pDataRowIndex, boolean bDetailChanged)
          Set that the details to this row are changed.
protected  void setMasterDataRow(IDataRow pMasterDataRow)
          Sets a new Master DataRow, if it changes.
protected  boolean store(int pDataRowIndex)
          Stores the specified row in the MemDataPage.
 String toString()
          
 void update(int pDataRowIndex)
          Sets the specified row as Updating with the given index in the MemDataPage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MemDataPage

public MemDataPage(MemDataBook pDataBook,
                   IDataRow pMasterDataRow)
Construct a new MemDataPage for the specified IDataBook and the corresponding master row.

Parameters:
pDataBook - the IDataBook which uses this MemDataPage
pMasterDataRow - the corresponding master row of the master IDataBook of the above specified IDataBook
Method Detail

getDataBook

public IDataBook getDataBook()
Returns the IDataBook of the IDataPage.

Specified by:
getDataBook in interface IDataPage
Returns:
the IDataBook of the IDataPage.

getMasterDataRow

public IDataRow getMasterDataRow()
Returns the corresponding master row to this IDataPage in the master DataBook.

Specified by:
getMasterDataRow in interface IDataPage
Returns:
the corresponding master row to this IDataPage in the master DataBook.

getDataRow

public IChangeableDataRow getDataRow(int pDataRowIndex)
                              throws ModelException
Returns a copy of the IDataRow of the specified index.
If the requested row not in memory it will be fetched from the storage. If the row is also not existing on the storage, it returns null.

Specified by:
getDataRow in interface IDataPage
Parameters:
pDataRowIndex - the index of the requested row
Returns:
a copy of the IDataRow of the specified index.
Throws:
ModelException - if a exception occur during the fetch.

fetchAll

public void fetchAll()
              throws ModelException
It fetches all IDataRow's from the storage.

Specified by:
fetchAll in interface IDataPage
Throws:
ModelException - if an DataSourceException happens during get all rows

isAllFetched

public boolean isAllFetched()
                     throws ModelException
Returns true if all rows are loaded.

Specified by:
isAllFetched in interface IDataPage
Returns:
true if all rows are loaded.
Throws:
ModelException - if the DataBook isn't open

getRowCount

public int getRowCount()
                throws ModelException
Returns the size.

Specified by:
getRowCount in interface IDataPage
Returns:
the size.
Throws:
ModelException - if a exception occurs during synchronize.

getChangedDataRows

public int[] getChangedDataRows()
Returns an int array with all changed rows.

Specified by:
getChangedDataRows in interface IDataPage
Returns:
an int array with all changed rows.

searchNext

public int searchNext(ICondition pCondition)
               throws ModelException
Searches the given condition. It returns -1 if the condition can not be found.

Specified by:
searchNext in interface IDataPage
Parameters:
pCondition - the condition.
Returns:
the row number or -1 if the condition can not be found.
Throws:
ModelException - if a ModelException occurs.

searchNext

public int searchNext(ICondition pCondition,
                      int pRowNum)
               throws ModelException
Searches the given condition starting at the given position. It returns -1 if the condition can not be found.

Specified by:
searchNext in interface IDataPage
Parameters:
pCondition - the condition.
pRowNum - the starting row.
Returns:
the row number or -1 if the condition can not be found.
Throws:
ModelException - if a ModelException occurs.

searchPrevious

public int searchPrevious(ICondition pCondition)
                   throws ModelException
Searches the given condition. It returns -1 if the condition can not be found.

Specified by:
searchPrevious in interface IDataPage
Parameters:
pCondition - the condition.
Returns:
the row number or -1 if the condition can not be found.
Throws:
ModelException - if a ModelException occurs.

searchPrevious

public int searchPrevious(ICondition pCondition,
                          int pRowNum)
                   throws ModelException
Searches the given condition starting at the given position. It returns -1 if the condition can not be found.

Specified by:
searchPrevious in interface IDataPage
Parameters:
pCondition - the condition.
pRowNum - the starting row.
Returns:
the row number or -1 if the condition can not be found.
Throws:
ModelException - if a ModelException occurs.

toString

public String toString()

Overrides:
toString in class Object

setAllFetched

protected void setAllFetched(boolean pAllFetched)
Sets that the MemDataPage has all fetched. Should only used from derived classes.

Parameters:
pAllFetched - the boolean with the fetch state.

addFetchedRow

protected void addFetchedRow(Object[] pValues)
                      throws ModelException
It adds an new IDataRow to the DataPage in the object[] storage.

Parameters:
pValues - the values.
Throws:
ModelException - if the IDataRow couldn't add to the storage.

insert

public void insert(int pDataRowIndex)
            throws ModelException
It inserts a new IChangeableDataRow in the MemDataPage at the specified index.

Parameters:
pDataRowIndex - the row index to use.
Throws:
ModelException - if the Filter/Sort couldn't initialized.

delete

public boolean delete(int pDataRowIndex)
               throws ModelException
Marks the specified row as Deleted with the given index in the MemDataPage. if the row is inserting(), then the row is really removed from the MemDataPage.

Parameters:
pDataRowIndex - the row index to use.
Returns:
true if the row is removed from the memory or false if the row is only marked as deleting.
Throws:
ModelException - if the delete operation fails.

update

public void update(int pDataRowIndex)
            throws ModelException
Sets the specified row as Updating with the given index in the MemDataPage.

Parameters:
pDataRowIndex - the row index to use.
Throws:
ModelException - if the updating operation fails.

restore

public void restore(int pDataRowIndex)
             throws ModelException
Restores the specified row in the MemDataPage.

Parameters:
pDataRowIndex - the row index to use.
Throws:
ModelException - if the updating operation fails.

store

protected boolean store(int pDataRowIndex)
                 throws ModelException
Stores the specified row in the MemDataPage.

Parameters:
pDataRowIndex - the row index to use.
Returns:
true if the row is removed from the memory.
Throws:
ModelException - if the updating operation fails.

setDetailChanged

protected void setDetailChanged(int pDataRowIndex,
                                boolean bDetailChanged)
                         throws ModelException
Set that the details to this row are changed.

Parameters:
pDataRowIndex - the row index to use.
bDetailChanged - true if the details changed, otherwise false.
Throws:
ModelException - if the set detail changed operation fails.

getDataRowStorage

protected Object[] getDataRowStorage(int pDataRowIndex)
                              throws ModelException
Returns the internal storage for the specified DataRow Object[].

Parameters:
pDataRowIndex - the row index.
Returns:
the internal storage for the specified DataRow Object[].
Throws:
ModelException - if the mem sort and/or filter fails.

setMasterDataRow

protected void setMasterDataRow(IDataRow pMasterDataRow)
                         throws ModelException
Sets a new Master DataRow, if it changes. Internal function!

Parameters:
pMasterDataRow - the new master DataRow
Throws:
ModelException - if the column value couldn't converted

getEstimatedRowCount

public int getEstimatedRowCount()
                         throws ModelException
Returns -1. Will/should be overridden in the derived Classes.

Returns:
-1.
Throws:
ModelException - see derived classes.

fetchToRow

public void fetchToRow(int pRowIndex)
                throws ModelException
Will/should be overridden in the derived Classes to fetch data from the storage.

Parameters:
pRowIndex - the row index to use.
Throws:
ModelException - see derived classes.

getRowCountInternal

protected int getRowCountInternal()
Returns the row count of this MemDataPage. Internal use only.

Returns:
the row count of this MemDataPage. Internal use only.

setDataRow

protected void setDataRow(int pDataRowIndex,
                          ChangeableDataRow pRow)
                   throws ModelException
Sets the internal storage for the specified DataRow Object[].

Parameters:
pDataRowIndex - the row index.
pRow - the ChangeableDataRow to use.
Throws:
ModelException - if the mem sort and/or filter fails.

clear

protected void clear()
It clears the mem filter and sort in the MemDataPage.



Copyright © 2009 SIB Visions GmbH. All Rights Reserved.