|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object velosurf.model.Entity
public class Entity
The Entity class represents an entity in the data model.
Nested Class Summary | |
---|---|
class |
Entity.ColumnOrderComparator
|
(package private) class |
Entity.ValidationError
|
Field Summary | |
---|---|
private java.util.Map<java.lang.String,Action> |
actionMap
Action map. |
private java.util.Map<java.lang.String,java.lang.String> |
aliases
Column by alias map. |
private java.util.Map<java.lang.String,Attribute> |
attributeMap
Attribute map. |
private Cache |
cache
The cache. |
private int |
cachingMethod
The caching method. |
private java.util.List<java.lang.String> |
columns
Column names in natural order. |
private java.util.Map<java.lang.String,java.util.List<FieldConstraint>> |
constraints
Constraint by column name map. |
private Database |
db
The database connection. |
private java.lang.String |
fetchQuery
The SQL query used to fetch one instance of this entity. |
private java.lang.Class |
instanceClass
The java class to use to realize this instance. |
private boolean[] |
keyColObfuscated
Obfuscation status of key columns. |
private java.util.List<java.lang.String> |
keyCols
Key column names in natural order. |
private java.util.List |
localizedColumns
Localized columns. |
private static int |
MAX_DATA_DISPLAY_LENGTH
Truncate validation error messages to a maximum number of characters. |
private java.lang.String |
name
Name. |
private boolean |
obfuscate
Whether to obfuscate something. |
private java.util.List<java.lang.String> |
obfuscatedColumns
Names of obfuscated columns. |
private boolean |
readOnly
Whether this entity is read-only or not. |
private java.lang.String |
table
Table. |
private java.util.Map<java.lang.String,java.lang.Integer> |
types
Column types |
private java.util.List<java.lang.String> |
updatableCols
Non-key column names in natural order |
Constructor Summary | |
---|---|
Entity(Database db,
java.lang.String name,
boolean readOnly,
int cachingMethod)
Constructor reserved for the framework. |
Method Summary | |
---|---|
void |
addAction(Action action)
Add an action. |
void |
addAlias(java.lang.String alias,
java.lang.String column)
Add a column alias. |
void |
addAttribute(Attribute attribute)
Add a new attribute. |
void |
addColumn(java.lang.String colName,
int sqlType)
Add a column at the end of the sequential list of named columns. |
void |
addConstraint(java.lang.String column,
FieldConstraint constraint)
Add a constraint. |
void |
addPKColumn(java.lang.String colName)
Add a key column to the sequential list of the key columns. |
private void |
buildFetchQuery()
Build the SQL query used to fetch one instance of this query. |
private java.lang.Object |
buildKey(java.util.List<java.lang.Object> values)
Build the key for the Cache from a List |
private java.lang.Object |
buildKey(java.util.Map<java.lang.String,java.lang.Object> values)
Build the key for the Cache from a Map. |
private java.lang.Object |
buildKey(java.lang.Number value)
Build the key for the Cache from a Number |
protected void |
clearCache()
Clear the cache (not used for now). |
boolean |
delete(java.util.Map<java.lang.String,java.lang.Object> values)
Delete a row based on (key) values. |
boolean |
delete(java.lang.Number keyValue)
Delete a row based on the unique key string value. |
boolean |
delete(java.lang.String keyValue)
Delete a row based on the unique key string value. |
java.lang.String |
deobfuscate(java.lang.Object value)
De-obfuscate given value. |
private void |
extractColumnValues(java.util.Map<java.lang.String,java.lang.Object> source,
java.util.Map<java.lang.String,java.lang.Object> target,
boolean SQLNames)
Extract column values from an input Map source and store result in target. |
Instance |
fetch(java.util.List<java.lang.Object> values)
Fetch an instance from key values stored in a List in natural order. |
Instance |
fetch(java.util.Map<java.lang.String,java.lang.Object> values)
Fetch an instance from key values stored in a Map. |
Instance |
fetch(java.lang.Number keyValue)
Fetch an instance from its key value specified as a Number. |
Instance |
fetch(java.lang.String keyValue)
Fetch an instance from its key value as a string. |
java.lang.Object |
filterID(java.lang.Long id)
Obfuscate this id value if needed. |
java.lang.Object |
filterIncomingValue(java.lang.String column,
java.lang.Object value)
|
ExportedKey |
findExportedKey(Entity fkEntity,
java.util.List<java.lang.String> fkCols)
Check for the existence of an exported key with the same columns. |
ImportedKey |
findImportedKey(Entity pkEntity,
java.util.List<java.lang.String> fkCols)
Check for the existence of an imported key with the same columns. |
Action |
getAction(java.lang.String property)
Get an action. |
java.util.Map<java.lang.String,Action> |
getActions()
|
Attribute |
getAttribute(java.lang.String property)
Get a named attribute. |
java.util.Map<java.lang.String,Attribute> |
getAttributes()
|
int |
getColumnIndex(java.lang.String name)
|
java.util.Comparator<java.lang.String> |
getColumnOrderComparator()
|
java.util.List<java.lang.String> |
getColumns()
Getter for the list of column names. |
int |
getColumnType(java.lang.String column)
Get the SQL type for the specified column |
long |
getCount()
|
long |
getCount(java.util.List refineCriteria)
|
Database |
getDB()
Get the database connection. |
java.lang.String |
getFetchQuery()
Get the SQL query string used to fetch one instance of this query. |
java.lang.String |
getName()
Getter for the name of this entity. |
java.util.List<java.lang.String> |
getPKCols()
Getter for the list of key column names. |
java.lang.String |
getTableName()
Get the name of the mapped table. |
int |
getUpdatableColumnIndex(java.lang.String name)
|
java.util.List<java.lang.String> |
getUpdatableColumns()
|
boolean |
hasLocalizedColumns()
Does this entity have localized columns? |
boolean |
insert(java.util.Map<java.lang.String,java.lang.Object> values)
Insert a new row based on values of a map. |
void |
invalidateInstance(java.util.Map<java.lang.String,java.lang.Object> instance)
Invalidate an instance in the cache. |
boolean |
isColumn(java.lang.String name)
|
boolean |
isLocalized(java.lang.String column)
Returns whether the given column is obfuscated. |
boolean |
isObfuscated(java.lang.String column)
Returns whether the given column is obfuscated. |
boolean |
isReadOnly()
Is this entity read-only or read-write? |
boolean |
isRootEntity()
|
Instance |
newInstance()
Create a new realisation of this entity. |
Instance |
newInstance(java.util.Map<java.lang.String,java.lang.Object> values)
Build a new instance from a Map object. |
Instance |
newInstance(java.util.Map<java.lang.String,java.lang.Object> values,
boolean useSQLnames)
Build a new instance from a Map object. |
java.lang.String |
obfuscate(java.lang.Object value)
Obfuscate given value. |
RowIterator |
query()
Issue a query to iterate though all instances of this entity. |
RowIterator |
query(java.util.List refineCriteria,
java.lang.String order)
Issue a query to iterate thought instances of this entity, with a facultative refining criteria and a facultative order by clause. |
java.lang.String |
resolveName(java.lang.String alias)
Translates an alias to its column name. |
void |
reverseEnginered()
Used by the framework to notify this entity that its reverse enginering is over. |
void |
setCachingMethod(int caching)
Specify the caching method. |
void |
setInstanceClass(java.lang.String className)
Specify a custom class to use when instanciating this entity. |
void |
setLocalized(java.util.List columns)
Indicates a column as being localized. |
void |
setObfuscated(java.util.List<java.lang.String> columns)
Indicates a column as being obfuscated. |
void |
setReadOnly(boolean readOnly)
Set this entity to be read-only or read-write. |
void |
setTableName(java.lang.String table)
Set the name of the table mapped by this entity. |
boolean |
update(java.util.Map<java.lang.String,java.lang.Object> values)
Update a row based on a set of values that must contain key values. |
boolean |
upsert(java.util.Map<java.lang.String,java.lang.Object> values)
Upsert a row based on a set of values (entity's primary key must be one column long - it can be omitted from provided values) |
boolean |
validate(java.util.Map<java.lang.String,java.lang.Object> row)
Validate a set of values. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final int MAX_DATA_DISPLAY_LENGTH
private java.lang.String name
private java.lang.String table
private java.util.List<java.lang.String> columns
private java.util.Map<java.lang.String,java.lang.Integer> types
private java.util.List<java.lang.String> keyCols
private java.util.List<java.lang.String> updatableCols
private boolean obfuscate
private java.util.List<java.lang.String> obfuscatedColumns
private boolean[] keyColObfuscated
private java.util.List localizedColumns
private java.util.Map<java.lang.String,java.lang.String> aliases
private java.util.Map<java.lang.String,Attribute> attributeMap
private java.util.Map<java.lang.String,Action> actionMap
private java.lang.Class instanceClass
private java.lang.String fetchQuery
private boolean readOnly
private Database db
private int cachingMethod
private Cache cache
private java.util.Map<java.lang.String,java.util.List<FieldConstraint>> constraints
Constructor Detail |
---|
public Entity(Database db, java.lang.String name, boolean readOnly, int cachingMethod)
db
- database connectionname
- entity namereadOnly
- access mode (read-write or read-only)cachingMethod
- caching method to be usedMethod Detail |
---|
public void addColumn(java.lang.String colName, int sqlType)
colName
- column namepublic void addAlias(java.lang.String alias, java.lang.String column)
alias
- aliascolumn
- columnpublic java.lang.String resolveName(java.lang.String alias)
alias
- alias
public void addPKColumn(java.lang.String colName)
colName
- name of the key columnpublic void addAttribute(Attribute attribute)
attribute
- attributepublic Attribute getAttribute(java.lang.String property)
property
- attribute name
public void addAction(Action action)
action
- actionpublic Action getAction(java.lang.String property)
property
- action name
public void setInstanceClass(java.lang.String className)
className
- the java class namepublic void setCachingMethod(int caching)
Cache
for allowed constants.
caching
- Caching methodpublic void addConstraint(java.lang.String column, FieldConstraint constraint)
column
- column nameconstraint
- constraintpublic void reverseEnginered()
protected void clearCache()
public Instance newInstance()
public Instance newInstance(java.util.Map<java.lang.String,java.lang.Object> values)
values
- the Map object containing the values
public Instance newInstance(java.util.Map<java.lang.String,java.lang.Object> values, boolean useSQLnames)
values
- the Map object containing the valuesuseSQLnames
- map keys use SQL column names that must be translated to aliases
public void invalidateInstance(java.util.Map<java.lang.String,java.lang.Object> instance) throws java.sql.SQLException
instance
- instance
java.sql.SQLException
private void extractColumnValues(java.util.Map<java.lang.String,java.lang.Object> source, java.util.Map<java.lang.String,java.lang.Object> target, boolean SQLNames) throws java.sql.SQLException
source
- Map source objecttarget
- Map target objectSQLNames
- the source uses SQL names
java.sql.SQLException
private java.lang.Object buildKey(java.util.Map<java.lang.String,java.lang.Object> values) throws java.sql.SQLException
values
- the Map containing all values (unaliased)
java.sql.SQLException
- the getter of the Map throws an
SQLExceptionprivate java.lang.Object buildKey(java.util.List<java.lang.Object> values) throws java.sql.SQLException
values
- the Map containing all values (unaliased)
java.sql.SQLException
- the getter of the Map throws an
SQLExceptionprivate java.lang.Object buildKey(java.lang.Number value) throws java.sql.SQLException
values
- the Map containing all values (unaliased)
java.sql.SQLException
- the getter of the Map throws an
SQLExceptionpublic java.lang.String getName()
public java.util.List<java.lang.String> getPKCols()
public java.util.List<java.lang.String> getColumns()
public java.util.List<java.lang.String> getUpdatableColumns()
public boolean isColumn(java.lang.String name)
public int getColumnIndex(java.lang.String name)
public int getUpdatableColumnIndex(java.lang.String name)
public boolean insert(java.util.Map<java.lang.String,java.lang.Object> values) throws java.sql.SQLException
values
- the Map object containing the values
java.sql.SQLException
public boolean update(java.util.Map<java.lang.String,java.lang.Object> values) throws java.sql.SQLException
values
- the Map object containing the values
java.sql.SQLException
public boolean upsert(java.util.Map<java.lang.String,java.lang.Object> values) throws java.sql.SQLException
values
- the Map object containing the values
java.sql.SQLException
public boolean delete(java.util.Map<java.lang.String,java.lang.Object> values) throws java.sql.SQLException
values
- the Map containing the values
java.sql.SQLException
public boolean delete(java.lang.String keyValue) throws java.sql.SQLException
keyValue
- key value
java.sql.SQLException
public boolean delete(java.lang.Number keyValue) throws java.sql.SQLException
keyValue
- key value
java.sql.SQLException
public Instance fetch(java.util.List<java.lang.Object> values) throws java.sql.SQLException
values
- the List containing the key values
java.sql.SQLException
public Instance fetch(java.util.Map<java.lang.String,java.lang.Object> values) throws java.sql.SQLException
values
- the Map containing the key values
java.sql.SQLException
public Instance fetch(java.lang.String keyValue) throws java.sql.SQLException
keyValue
- the key
java.sql.SQLException
public Instance fetch(java.lang.Number keyValue) throws java.sql.SQLException
keyValue
- the key
java.sql.SQLException
public java.lang.String getFetchQuery()
private void buildFetchQuery()
public RowIterator query() throws java.sql.SQLException
java.sql.SQLException
public RowIterator query(java.util.List refineCriteria, java.lang.String order) throws java.sql.SQLException
refineCriteria
- a refining criteria or null to get all instancesorder
- an 'order by' clause or null to get instances in their
natural order
java.sql.SQLException
public long getCount()
public long getCount(java.util.List refineCriteria)
public Database getDB()
public boolean isReadOnly()
public void setReadOnly(boolean readOnly)
readOnly
- the mode to switch to : true for read-only, false for
read-writepublic void setTableName(java.lang.String table)
table
- the table mapped by this entity
read-writepublic java.lang.String getTableName()
public void setObfuscated(java.util.List<java.lang.String> columns)
columns
- list of obfuscated columnspublic boolean isObfuscated(java.lang.String column)
column
- the name of the column
public java.lang.String obfuscate(java.lang.Object value)
value
- value to obfuscate
public java.lang.Object filterID(java.lang.Long id)
id
- id value
public java.lang.String deobfuscate(java.lang.Object value)
value
- value to de-obfuscate
public void setLocalized(java.util.List columns)
columns
- list of localized columnspublic boolean isLocalized(java.lang.String column)
column
- the name of the column
public boolean hasLocalizedColumns()
public boolean validate(java.util.Map<java.lang.String,java.lang.Object> row) throws java.sql.SQLException
java.sql.SQLException
public java.util.Comparator<java.lang.String> getColumnOrderComparator()
public ImportedKey findImportedKey(Entity pkEntity, java.util.List<java.lang.String> fkCols)
pkEntity
- primary key entityfkCols
- foreign key columns
public ExportedKey findExportedKey(Entity fkEntity, java.util.List<java.lang.String> fkCols)
fkEntity
- foreign key entityfkCols
- foreign key columns
public java.lang.Object filterIncomingValue(java.lang.String column, java.lang.Object value)
public java.util.Map<java.lang.String,Attribute> getAttributes()
public java.util.Map<java.lang.String,Action> getActions()
public boolean isRootEntity()
public int getColumnType(java.lang.String column)
column
- column name
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |