Package org.openbravo.base.model
Class ModelProvider
- java.lang.Object
-
- org.openbravo.base.model.ModelProvider
-
- All Implemented Interfaces:
OBProvidable
,OBSingleton
public class ModelProvider extends Object implements OBSingleton
Builds the Runtime model base on the data model (application dictionary: table, column, reference, etc). Makes the runtime model (Entity and Property) available to the rest of the system.
-
-
Constructor Summary
Constructors Constructor Description ModelProvider()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHelpAndDeprecationToModel()
Adds help comments and deprecation status to corresponding entities and properties in the modellong
computeLastUpdateModelTime()
Collection<Reference>
getAllReferences()
Returns all reference (instance from the org.openbravo.base.model package).List<Table>
getDataSourceBasedTables()
Returns list of dataSource based tables known in the dal in memory model.Entity
getEntity(Class<?> clz)
Searches for an Entity using the business object class implementing the Entity in the business code.Entity
getEntity(String entityName)
Retrieves an Entity using the entityName.Entity
getEntity(String entityName, boolean checkIfNotExists)
Retrieves an Entity using the entityName.Entity
getEntityByTableId(String tableId)
Returns an Entity based on the ID of the table belonging to the Entity.Entity
getEntityByTableName(String tableName)
Returns an Entity using the table name of the table belonging to the Entity.Entity
getEntityFromTreeType(String treeType)
Returns the entity for a specific tree type.HashMap<Entity,List<String>>
getEntityWithFile()
Returns the entities that have imagesHashMap<Entity,List<String>>
getEntityWithImage()
Returns the entities that have imagesstatic ModelProvider
getInstance()
Returns the singleton instance providing the ModelProvider functionality.List<Entity>
getModel()
The list of Entities created on the basis of the Application Dictionary.List<Module>
getModules()
Reference
getReference(String referenceId)
Returns a reference instance from the org.openbravo.base.model package.org.hibernate.Session
getSession()
This method can be used to get the session of the ModelProvider.Table
getTable(String tableName)
Return the table using the tableName.List<Table>
getTables()
Returns list of tables known in the dal in memory model.Table
getTableWithoutCheck(String tableName)
Retrieves a table using the tableName.<T> List<T>
list(org.hibernate.Session session, Class<T> clazz)
Retrieves a list of model objects of the class passed as parameter.static void
refresh()
Creates a new ModelProvider, initializes it and sets it in the instance here.void
removeHelpAndDeprecationFromModel()
Removes help comments and deprecation status from all entities and properties in the modelstatic void
setInstance(ModelProvider instance)
Makes it possible to override the default ModelProvider with a custom implementation.boolean
shouldGenerateChildPropertyInParent(Property p, boolean generateAllChildProperties)
Determines whether for a given property, it is a child that should have a property on its parent entity.
-
-
-
Method Detail
-
getInstance
public static ModelProvider getInstance()
Returns the singleton instance providing the ModelProvider functionality.- Returns:
- the ModelProvider instance
-
setInstance
public static void setInstance(ModelProvider instance)
Makes it possible to override the default ModelProvider with a custom implementation.- Parameters:
instance
- the custom ModelProvider
-
refresh
public static void refresh()
Creates a new ModelProvider, initializes it and sets it in the instance here.
-
getModel
public List<Entity> getModel()
The list of Entities created on the basis of the Application Dictionary. The main entry point for retrieving the in-memory model. This method will initialize the in-memory model when it is called for the first time.- Returns:
- the list Entities
-
getTables
public List<Table> getTables()
Returns list of tables known in the dal in memory model. This excludes i.e. tables which do not have any column defined with iskey='Y'- Returns:
- list of tables known by dal in no particular stable order
-
getDataSourceBasedTables
public List<Table> getDataSourceBasedTables()
Returns list of dataSource based tables known in the dal in memory model.- Returns:
- list of dataSource based tables known by dal in no particular stable order
-
computeLastUpdateModelTime
public long computeLastUpdateModelTime()
- Returns:
- the last time that one of the relevant Application Dictionary objects was modified. Relevant AD objects are: Table, Column, Reference, RefList, RefSearch, RefTable, Module, Package.
-
shouldGenerateChildPropertyInParent
public boolean shouldGenerateChildPropertyInParent(Property p, boolean generateAllChildProperties)
Determines whether for a given property, it is a child that should have a property on its parent entity.
-
list
public <T> List<T> list(org.hibernate.Session session, Class<T> clazz)
Retrieves a list of model objects of the class passed as parameter.- Parameters:
session
- the session used to query for the objectsclazz
- the class of the model objects to be retrieved- Returns:
- a list of model objects
-
getTable
public Table getTable(String tableName) throws CheckException
Return the table using the tableName. If not found then a CheckException is thrown.- Parameters:
tableName
-- Returns:
- the Table object
- Throws:
CheckException
-
getTableWithoutCheck
public Table getTableWithoutCheck(String tableName)
Retrieves a table using the tableName. If not found then continue without exception.- Returns:
- Table if exists, otherwise null.
-
getEntity
public Entity getEntity(String entityName) throws CheckException
Retrieves an Entity using the entityName. If not found then a CheckException is thrown.- Parameters:
entityName
- the name used for searching the Entity.- Returns:
- the Entity object
- Throws:
CheckException
-
getEntity
public Entity getEntity(String entityName, boolean checkIfNotExists) throws CheckException
Retrieves an Entity using the entityName. If not found then a CheckException is thrown if the checkIfNotExists parameter is true.- Parameters:
entityName
- the name used for searching the Entity.checkIfNotExists
- a boolean that is true calls to Check.fail if the entity does not exist- Returns:
- the Entity object
- Throws:
CheckException
-
getEntityByTableName
public Entity getEntityByTableName(String tableName)
Returns an Entity using the table name of the table belonging to the Entity. If no Entity is found then null is returned, no Exception is thrown. Note: the AD_Table.tablename should be used here, not the AD_Table.name!- Parameters:
tableName
- the name used to search for the Entity- Returns:
- the Entity or null if not found
-
getEntityByTableId
public Entity getEntityByTableId(String tableId)
Returns an Entity based on the ID of the table belonging to the Entity. If no Entity is found then null is returned, no Exception is thrown.- Parameters:
tableId
- the ID of the table belonging to the table- Returns:
- the Entity or null if not found
-
getEntity
public Entity getEntity(Class<?> clz) throws CheckException
Searches for an Entity using the business object class implementing the Entity in the business code. Throws a CheckException if the Entity can not be found.- Parameters:
clz
- the java class used for the Entity- Returns:
- the Entity
- Throws:
CheckException
-
getReference
public Reference getReference(String referenceId)
Returns a reference instance from the org.openbravo.base.model package.- Parameters:
referenceId
-- Returns:
- the reference identified by the referenceId, if not found then null is returned
-
getAllReferences
public Collection<Reference> getAllReferences()
Returns all reference (instance from the org.openbravo.base.model package).- Returns:
- the references
-
getEntityFromTreeType
public Entity getEntityFromTreeType(String treeType)
Returns the entity for a specific tree type. The tree type is used to link an entity to a tree (see the AD_Tree table).- Parameters:
treeType
- the tree type- Returns:
- Entity or null if none found
-
getEntityWithImage
public HashMap<Entity,List<String>> getEntityWithImage()
Returns the entities that have images- Returns:
- Entity list
-
getEntityWithFile
public HashMap<Entity,List<String>> getEntityWithFile()
Returns the entities that have images- Returns:
- Entity list
-
getSession
public org.hibernate.Session getSession()
This method can be used to get the session of the ModelProvider. This method is intended to be used by DomainType classes during initialization phase, to do queries in the database
-
addHelpAndDeprecationToModel
public void addHelpAndDeprecationToModel()
Adds help comments and deprecation status to corresponding entities and properties in the model
-
removeHelpAndDeprecationFromModel
public void removeHelpAndDeprecationFromModel()
Removes help comments and deprecation status from all entities and properties in the model
-
-