|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sibvisions.rad.persist.AbstractStorage
com.sibvisions.rad.persist.AbstractCachedStorage
com.sibvisions.rad.persist.jdbc.DBStorage
public class DBStorage
The DBStorage is a IStorage for SQL database specific features.
The DBStorage allows to influence the creation of the SELECT statement to get the data.
The following template shows how the SELECT will be constructed out of the specified properties.
SELECT getBeforeQueryColumns() getQueryColumns()
FROM getFromClause()
WHERE getFilter()
AND getMasterReference()
AND getWhereClause()
getAfterWhereClause()
ORDER BY getSort()
Example:
SELECT DISTINCT // ++ comment, optimizer hints
a.COL1 C, b.COL2 D, a.FK_ID FK_ID, ...
FROM TABLE1 a,
TABLE2 b,
...
WHERE C LIKE 'a%' AND D IS NOT NULL ... // getFilter().getSQL
AND FK_ID = 23 // getMasterReference() get all detail rows to a
specific master row in an other DataBook
AND a.ID = b.FK_ID ... // getLastWhereCondition() * GROUP BY C, D // getAfterWhereClause()
ORDER BY C DESC // getSort()
IStorage,
ColumnMetaData,
RemoteDataBook,
DBAccess| Constructor Summary | |
|---|---|
DBStorage()
Constructs a DBStorage. |
|
| Method Summary | |
|---|---|
void |
close()
It close the DBStorage. |
protected void |
createAutomaticLinkReference(ServerMetaData pMetaData,
String[] pColumns,
AbstractStorage pDBStorage,
String[] pReferenceColumns)
Creates and sets a new StorageReferenceDefinition with the specified DBStorage and
columns and reference columns on all pColumns. |
void |
createAutomaticLinkReference(String[] pColumns,
DBStorage pDBStorage,
String[] pReferenceColumns)
Creates and sets a new StorageReferenceDefinition with the specified DBStorage and
columns and reference columns on all pColumns. |
void |
createAutomaticLinkReference(String[] pColumns,
String pFromClause,
String[] pReferenceColumns)
Creates and sets a new StorageReferenceDefinition with the specified FromClause and
columns and reference columns on all pColumns. |
protected DBStorage |
createAutomaticLinkStorage(String pFrom)
Creates a new DBStorage which is configured for automatic link cell editors. |
protected Object |
createCheckSum(Object... pObjects)
Creates a MD5 checksum with given objects. |
void |
executeDelete(Object[] pDeleteDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the delete method. |
List<Object[]> |
executeFetch(ICondition pFilter,
SortDefinition pSort,
int pFromRow,
int pMinimumRowCount)
This method has to be implemented in the Storage implementation and should have the functionality of the fetch method. |
MetaData |
executeGetMetaData()
This method has to be implemented in the Storage implementation and should have the functionality of the getMetaData method. |
Object[] |
executeInsert(Object[] pDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the insert method. |
Object[] |
executeRefetchRow(Object[] pDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the refetchRow method. |
Object[] |
executeUpdate(Object[] pOldDataRow,
Object[] pNewDataRow)
This method has to be implemented in the Storage implementation and should have the functionality of the update method. |
String |
getAfterWhereClause()
Returns the string to place in the SELECT statement after the WHERE clause and before the ORDER BY clause. |
String |
getBeforeQueryColumns()
Returns the string to place in the SELECT statement between the SELECT and the first query column. |
String[] |
getColumnNames()
Gets an array of column names as defined in the metadata. |
IDBAccess |
getDBAccess()
Returns the IDBAccess of this DBStorage . |
SortDefinition |
getDefaultSort()
Returns the default sort. |
int |
getEstimatedRowCount(ICondition pFilter)
Returns the number of rows in this AbstractStorage from the storage. |
String |
getFromClause()
Returns the query tables to use in the SELECT statement to get the data from the storage. |
MetaData |
getMetaData(String pGroup,
String pName)
Returns the meta data for this AbstractStorage from the storage as MetaData and places
the MetaData to the cache with a group name and meta data name. |
String[] |
getQueryColumns()
Returns the query columns of the SELECT statement. |
ICondition |
getRestrictCondition()
Returns the restrict condition. |
Map<String,IStorage> |
getSubStorages()
Gets all known sub storages as key / value pair. |
String |
getWhereClause()
Returns the string to place in the SELECT statement after the last WHERE condition from the Filter or MasterReference (Master-Detail Condition). |
String[] |
getWritebackColumns()
Returns the list of write back columns to use in the INSERT, UPDATE statements. |
String |
getWritebackTable()
Returns the WritebackTable, which is used for the INSERT, UPDATE, DELETE calls. |
protected String |
getWritebackTableCatalog()
Gets the catalog name of the writeback table. |
protected String |
getWritebackTableSchema()
Gets the schema name of the writeback table. |
protected boolean |
hasLinkReference(ServerMetaData pMetaData,
String pColumnName)
Gets whether a column has a link reference set. |
boolean |
hasLinkReference(String pColumnName)
Gets whether a column has a link reference set. |
boolean |
isAllowedValues()
Returns the allowed value detection mode. |
boolean |
isAutoLinkReference()
Returns if the automatic LinkReference mode is on or off. |
boolean |
isDefaultAllowedValues()
Returns the default allowed value detection mode. |
static boolean |
isDefaultAutoLinkReference()
Returns the default automatic LinkReference mode. |
static boolean |
isDefaultDefaultValue()
Returns the default - default value detection mode. |
boolean |
isDefaultValue()
Returns the default value detection mode. |
boolean |
isOpen()
Returns if the DBStorage is open. |
boolean |
isRefetch()
Returns if this DBStorage refetchs after insert and update. |
void |
open()
Opens the DBStorage and checks if the DBAssess is ! |
protected void |
openInternal(boolean pUseRepresentationColumnsAsQueryColumns)
Opens the DBStorage and checks if the DBAccess is ! |
protected Object[] |
refetchRow(Object[] pDataRow,
boolean pLock)
Refetch and optional locks the specified DataRow via PK. |
protected void |
refreshMetaData()
Refreshs the MetaData with initial settings. |
void |
removeLinkReference(String pColumnName)
Removes the link reference for an server side Dropdown list (automatic linked celleditor). |
void |
setAfterWhereClause(String pAfterWhereClause)
Sets the string to place in the SELECT statement after the WHERE clause and before the ORDER BY clause. |
void |
setAllowedValues(boolean pAllowedValues)
Sets the allowed value detection en- or disabled. |
void |
setAutoLinkReference(boolean pAutoLinkReference)
Sets if the automatic link reference detection is en- or disabled. |
void |
setBeforeQueryColumns(String pBeforeQueryColumns)
Sets the string to place in the SELECT statement between the SELECT and the first query column. |
void |
setDBAccess(IDBAccess pDBAccess)
Set the IDBAccess of this DBStorage . |
static void |
setDefaultAllowedValues(boolean pAllowedValues)
Sets the default allowed value detection en- or disabled. |
static void |
setDefaultAutoLinkReference(boolean pDefaultAutoLinkReference)
Sets the default automatic link reference detection mode. |
static void |
setDefaultDefaultValue(boolean pDefaultValue)
Sets the default - default value detection en- or disabled. |
void |
setDefaultSort(SortDefinition pDefaultSort)
Sets the default sort. |
void |
setDefaultValue(boolean pDefaultValue)
Sets the default value detection en- or disabled. |
void |
setFromClause(String pFromClause)
Sets the query tables to use in the SELECT statement to get the data from the storage. |
void |
setQueryColumns(String[] pQueryColumns)
Sets the query columns of the SELECT statement. |
void |
setRefetch(boolean pRefetch)
Sets if this DBStorage refetchs after insert and update. |
void |
setRestrictCondition(ICondition pRestrictCondition)
Sets the restrict condition. |
void |
setWhereClause(String pWhereClause)
Sets the string to place in the SELECT statement after the last WHERE condition from the Filter or MasterReference (Master-Detail Condition). |
void |
setWritebackColumns(String[] pWritebackColumns)
Sets the list of write back columns to use in the INSERT, UPDATE statements. |
void |
setWritebackTable(String pWritebackTable)
Sets the WritebackTable, which is used for the INSERT, UPDATE, DELETE calls. |
String |
toString()
|
void |
writeCSV(OutputStream pOutputStream,
String[] pColumnNames,
String[] pLabels,
ICondition pFilter,
SortDefinition pSort,
String pSeparator)
Write the current storage with the specified filter and sort into the given output stream as CSV Format. |
| Methods inherited from class com.sibvisions.rad.persist.AbstractCachedStorage |
|---|
clearMetaData, clearMetaData, getMetaData, getMetaDataCacheOption, getMetaDataFromCache, getMetaDataFromCache, isGlobalMetaDataCacheEnabled, isMetaDataCacheEnabled, putMetaDataToCache, removeMetaData, setGlobalMetaDataCacheEnabled, setMetaDataCacheOption |
| Methods inherited from class com.sibvisions.rad.persist.AbstractStorage |
|---|
createBean, createBeanType, createCSV, createCSV, createCSV, createEmptyBean, createPOJO, createPOJO, debug, delete, delete, error, eventAfterDelete, eventAfterInsert, eventAfterUpdate, eventBeforeDelete, eventBeforeInsert, eventBeforeUpdate, eventCalculateRow, executeDeleteAsBean, executeFetchAsBean, executeInsertAsBean, executeRefetchRowAsBean, executeUpdateAsBean, fetch, fetch, fetch, fetchBean, fetchBean, getAndInitBeanType, getMetaData, getName, info, insert, insert, refetch, refetchRow, setName, setPropertyNameForColumn, update, update, updateBean |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface javax.rad.persist.IStorage |
|---|
delete, fetch, getMetaData, insert, refetchRow, update |
| Constructor Detail |
|---|
public DBStorage()
DBStorage.
| Method Detail |
|---|
public void writeCSV(OutputStream pOutputStream,
String[] pColumnNames,
String[] pLabels,
ICondition pFilter,
SortDefinition pSort,
String pSeparator)
throws Exception
writeCSV in class AbstractStoragepOutputStream - the output stream to use for the CSV streampColumnNames - the column names to include in the exportpLabels - the labels to show as header in the exportpFilter - the conditionpSort - the sort definitionpSeparator - the column separator
Exception - if the CSV output couldn't written to stream
public MetaData executeGetMetaData()
throws DataSourceException
executeGetMetaData in class AbstractStorageMetaData
DataSourceException - if an Exception occur during getting the meta data from the storageIStorage.getMetaData()
public int getEstimatedRowCount(ICondition pFilter)
throws DataSourceException
ICondition to count the rows.
pFilter - the ICondition to use.
DataSourceException - if an Exception occur during interacting with the storage.
public List<Object[]> executeFetch(ICondition pFilter,
SortDefinition pSort,
int pFromRow,
int pMinimumRowCount)
throws DataSourceException
executeFetch in class AbstractStoragepFilter - the ICondition to use.pSort - the SortDefinition to use.pFromRow - the from row index to request from storage.pMinimumRowCount - the minimum row count to request, beginning from the pFromRow.
List[Object[]].
DataSourceException - if an Exception occur during interacting with the storage.IStorage.fetch(ICondition, SortDefinition, int, int)
public Object[] executeRefetchRow(Object[] pDataRow)
throws DataSourceException
executeRefetchRow in class AbstractStoragepDataRow - the specified row as Object[].
Object[].
DataSourceException - if an Exception occur during interacting with the storage.IStorage.refetchRow(Object[])
public Object[] executeInsert(Object[] pDataRow)
throws DataSourceException
executeInsert in class AbstractStoragepDataRow - the new row as Object[] to insert.
DataSourceException - if an Exception occur during insert the row to the storageIStorage.insert(Object[])
public Object[] executeUpdate(Object[] pOldDataRow,
Object[] pNewDataRow)
throws DataSourceException
executeUpdate in class AbstractStoragepOldDataRow - the old row as Object[]pNewDataRow - the new row as Object[] to update
Object[].
DataSourceException - if an Exception occur during updating the row.IStorage.update(Object[], Object[])
public void executeDelete(Object[] pDeleteDataRow)
throws DataSourceException
executeDelete in class AbstractStoragepDeleteDataRow - the row as Object[] to delete.
DataSourceException - if an Exception occur during deleting the row or
if the storage isn't opened or the PrimaryKey is wrong and more/less
then one row is deleted.IStorage.delete(Object[])public String toString()
toString in class Object
public MetaData getMetaData(String pGroup,
String pName)
throws DataSourceException
MetaData and places
the MetaData to the cache with a group name and meta data name.
getMetaData in interface ICachedStoragegetMetaData in class AbstractCachedStoragepGroup - the cache group namepName - the name for the meta data in the cache group
MetaData.
DataSourceException - if an Exception occur during getting the meta data from the storage
public void open()
throws DataSourceException
DataSourceException - if the DBAccess is null.
protected void openInternal(boolean pUseRepresentationColumnsAsQueryColumns)
throws DataSourceException
pUseRepresentationColumnsAsQueryColumns - yes if the QueryColumns are set with
all representation columns including the Primary Key columns.
DataSourceException - if the DBAccess is null.
protected void refreshMetaData()
throws DataSourceException
DataSourceException - if the DBAccess is null.
public void createAutomaticLinkReference(String[] pColumns,
String pFromClause,
String[] pReferenceColumns)
throws ModelException
StorageReferenceDefinition with the specified FromClause and
columns and reference columns on all pColumns.
e.g. its used to make an automatic linked celleditor from a custom written view and set it on all pColumns.
pColumns - the columns to use.pFromClause - the FromClause. e.g. VIEW name.pReferenceColumns - the reference columns to use.
ModelException - if the StorageReferenceDefinition couldn't created.
public void createAutomaticLinkReference(String[] pColumns,
DBStorage pDBStorage,
String[] pReferenceColumns)
throws ModelException
StorageReferenceDefinition with the specified DBStorage and
columns and reference columns on all pColumns.
pColumns - the columns to use.pDBStorage - the DBStorage to use.pReferenceColumns - the reference columns to use.
ModelException - if the StorageReferenceDefinition couldn't created.
protected void createAutomaticLinkReference(ServerMetaData pMetaData,
String[] pColumns,
AbstractStorage pDBStorage,
String[] pReferenceColumns)
throws ModelException
StorageReferenceDefinition with the specified DBStorage and
columns and reference columns on all pColumns.
pMetaData - the metadata to use.pColumns - the columns to use.pDBStorage - the DBStorage to use.pReferenceColumns - the reference columns to use.
ModelException - if the StorageReferenceDefinition couldn't created.
public void removeLinkReference(String pColumnName)
throws ModelException
pColumnName - the column name to use, where the link reference will be removed
ModelException - if the column doesn't exist.
public boolean hasLinkReference(String pColumnName)
throws ModelException
pColumnName - the column name
true if a link reference is set, false otherwise
ModelException - if the column doesn't exist.
protected boolean hasLinkReference(ServerMetaData pMetaData,
String pColumnName)
throws ModelException
pMetaData - the metadata to usepColumnName - the column name
true if a link reference is set, false otherwise
ModelException - if the column doesn't exist.public boolean isOpen()
public void close()
public void setDBAccess(IDBAccess pDBAccess)
IDBAccess of this DBStorage .
pDBAccess - the IDBAccess of this DBStorage .public IDBAccess getDBAccess()
IDBAccess of this DBStorage .
IDBAccess of this DBStorage .public String getFromClause()
public void setFromClause(String pFromClause)
pFromClause - the queryTables to set.public String[] getQueryColumns()
public void setQueryColumns(String[] pQueryColumns)
pQueryColumns - the queryColumns to setpublic String getBeforeQueryColumns()
public void setBeforeQueryColumns(String pBeforeQueryColumns)
pBeforeQueryColumns - the beforeQueryColumns to setpublic String getWhereClause()
public void setWhereClause(String pWhereClause)
pWhereClause - the last Where Condition to setpublic String getAfterWhereClause()
public void setAfterWhereClause(String pAfterWhereClause)
pAfterWhereClause - the afterWhereClause to setpublic String[] getWritebackColumns()
public void setWritebackColumns(String[] pWritebackColumns)
pWritebackColumns - the pWritebackColumns to setpublic String getWritebackTable()
public void setWritebackTable(String pWritebackTable)
pWritebackTable - the pWritebackTable to setpublic SortDefinition getDefaultSort()
public void setDefaultSort(SortDefinition pDefaultSort)
pDefaultSort - the default sort.public ICondition getRestrictCondition()
public void setRestrictCondition(ICondition pRestrictCondition)
pRestrictCondition - the restrict condition.public boolean isRefetch()
public void setRefetch(boolean pRefetch)
pRefetch - true if this DBStorage refetchs after insert and update.public void setAutoLinkReference(boolean pAutoLinkReference)
pAutoLinkReference - true if the automatic LinkReference mode is on, false to disable
auto link reference modepublic boolean isAutoLinkReference()
trueif the automatic LinkReference mode is on, otherwise falsesetAutoLinkReference(boolean)public static void setDefaultAutoLinkReference(boolean pDefaultAutoLinkReference)
pDefaultAutoLinkReference - the default automatic LinkReference mode to use.public static boolean isDefaultAutoLinkReference()
setDefaultAutoLinkReference(boolean)public void setDefaultValue(boolean pDefaultValue)
pDefaultValue - true to enable the default value detectionpublic boolean isDefaultValue()
true if the default value detection is enabled, false otherwisesetDefaultValue(boolean)public static void setDefaultDefaultValue(boolean pDefaultValue)
pDefaultValue - true to enable the default - default value detectionpublic static boolean isDefaultDefaultValue()
true if the default - default value detection is enabled, false otherwisesetDefaultDefaultValue(boolean)public void setAllowedValues(boolean pAllowedValues)
pAllowedValues - true to enable the allowed value detection, false otherwisepublic boolean isAllowedValues()
true if the allowed value detection is enabled, false otherwisesetAllowedValues(boolean)public static void setDefaultAllowedValues(boolean pAllowedValues)
pAllowedValues - true to enable the default allowed value detection, false otherwisepublic boolean isDefaultAllowedValues()
true if the default allowed value detection is enabled, false otherwisesetDefaultAllowedValues(boolean)protected String getWritebackTableCatalog()
null if no writeback table is setprotected String getWritebackTableSchema()
null if no writeback table is set
protected Object[] refetchRow(Object[] pDataRow,
boolean pLock)
throws DataSourceException
pDataRow - the DataRow to refetchpLock - true if the row is locked before.
DataSourceException - if the refetch failspublic String[] getColumnNames()
AbstractStorage.getMetaData()public Map<String,IStorage> getSubStorages()
null if no substorages are
known
protected DBStorage createAutomaticLinkStorage(String pFrom)
throws DataSourceException
DBStorage which is configured for automatic link cell editors. The auto link
reference feature is disabled for this storage.
pFrom - The from clause
DataSourceException - if the from clause causes errors or the metadata are not availableprotected Object createCheckSum(Object... pObjects)
pObjects - the objects for the checksum calculation
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||