📄 genericdelegator.java
字号:
if (keepLocalReaders) {
return this.modelReader;
} else {
try {
return ModelReader.getModelReader(delegatorName);
} catch (GenericEntityException e) {
Debug.logError(e, "Error loading entity model", module);
return null;
}
}
}
/** Gets the instance of ModelGroupReader that corresponds to this delegator
*@return ModelGroupReader that corresponds to this delegator
*/
public ModelGroupReader getModelGroupReader() {
if (keepLocalReaders) {
return this.modelGroupReader;
} else {
try {
return ModelGroupReader.getModelGroupReader(delegatorName);
} catch (GenericEntityException e) {
Debug.logError(e, "Error loading entity group model", module);
return null;
}
}
}
/** Gets the instance of ModelEntity that corresponds to this delegator and the specified entityName
*@param entityName The name of the entity to get
*@return ModelEntity that corresponds to this delegator and the specified entityName
*/
public ModelEntity getModelEntity(String entityName) {
try {
return getModelReader().getModelEntity(entityName);
} catch (GenericEntityException e) {
Debug.logError(e, "Error getting entity definition from model", module);
return null;
}
}
/** Gets the helper name that corresponds to this delegator and the specified entityName
*@param entityName The name of the entity to get the helper for
*@return String with the helper name that corresponds to this delegator and the specified entityName
*/
public String getEntityGroupName(String entityName) {
String groupName = getModelGroupReader().getEntityGroupName(entityName);
return groupName;
}
/** Gets a list of entity models that are in a group corresponding to the specified group name
*@param groupName The name of the group
*@return List of ModelEntity instances
*/
public List getModelEntitiesByGroup(String groupName) {
Iterator enames = UtilMisc.toIterator(getModelGroupReader().getEntityNamesByGroup(groupName));
List entities = new LinkedList();
if (enames == null || !enames.hasNext())
return entities;
while (enames.hasNext()) {
String ename = (String) enames.next();
ModelEntity entity = this.getModelEntity(ename);
if (entity != null)
entities.add(entity);
}
return entities;
}
/** Gets a Map of entity name & entity model pairs that are in the named group
*@param groupName The name of the group
*@return Map of entityName String keys and ModelEntity instance values
*/
public Map getModelEntityMapByGroup(String groupName) {
Iterator enames = UtilMisc.toIterator(getModelGroupReader().getEntityNamesByGroup(groupName));
Map entities = new HashMap();
if (enames == null || !enames.hasNext()) {
return entities;
}
int errorCount = 0;
while (enames.hasNext()) {
String ename = (String) enames.next();
try {
ModelEntity entity = getModelReader().getModelEntity(ename);
if (entity != null) {
entities.put(entity.getEntityName(), entity);
} else {
throw new IllegalStateException("Could not find entity with name " + ename);
}
} catch (GenericEntityException ex) {
errorCount++;
Debug.logError("Entity " + ename + " named in Entity Group with name " + groupName + " are not defined in any Entity Definition file", module);
}
}
if (errorCount > 0) {
Debug.logError(errorCount + " entities were named in ModelGroup but not defined in any EntityModel", module);
}
return entities;
}
/** Gets the helper name that corresponds to this delegator and the specified entityName
*@param groupName The name of the group to get the helper name for
*@return String with the helper name that corresponds to this delegator and the specified entityName
*/
public String getGroupHelperName(String groupName) {
return (String) this.getDelegatorInfo().groupMap.get(groupName);
}
/** Gets the helper name that corresponds to this delegator and the specified entityName
*@param entityName The name of the entity to get the helper name for
*@return String with the helper name that corresponds to this delegator and the specified entityName
*/
public String getEntityHelperName(String entityName) {
String groupName = getModelGroupReader().getEntityGroupName(entityName);
return this.getGroupHelperName(groupName);
}
/** Gets the helper name that corresponds to this delegator and the specified entity
*@param entity The entity to get the helper for
*@return String with the helper name that corresponds to this delegator and the specified entity
*/
public String getEntityHelperName(ModelEntity entity) {
if (entity == null)
return null;
return getEntityHelperName(entity.getEntityName());
}
/** Gets the an instance of helper that corresponds to this delegator and the specified entityName
*@param entityName The name of the entity to get the helper for
*@return GenericHelper that corresponds to this delegator and the specified entityName
*/
public GenericHelper getEntityHelper(String entityName) throws GenericEntityException {
String helperName = getEntityHelperName(entityName);
if (helperName != null && helperName.length() > 0)
return GenericHelperFactory.getHelper(helperName);
else
throw new GenericEntityException("Helper name not found for entity " + entityName);
}
/** Gets the an instance of helper that corresponds to this delegator and the specified entity
*@param entity The entity to get the helper for
*@return GenericHelper that corresponds to this delegator and the specified entity
*/
public GenericHelper getEntityHelper(ModelEntity entity) throws GenericEntityException {
return getEntityHelper(entity.getEntityName());
}
/** Gets a field type instance by name from the helper that corresponds to the specified entity
*@param entity The entity
*@param type The name of the type
*@return ModelFieldType instance for the named type from the helper that corresponds to the specified entity
*/
public ModelFieldType getEntityFieldType(ModelEntity entity, String type) throws GenericEntityException {
String helperName = getEntityHelperName(entity);
if (helperName == null || helperName.length() <= 0)
return null;
ModelFieldTypeReader modelFieldTypeReader = ModelFieldTypeReader.getModelFieldTypeReader(helperName);
if (modelFieldTypeReader == null) {
throw new GenericEntityException("ModelFieldTypeReader not found for entity " + entity.getEntityName() + " with helper name " + helperName);
}
return modelFieldTypeReader.getModelFieldType(type);
}
/** Gets field type names from the helper that corresponds to the specified entity
*@param entity The entity
*@return Collection of field type names from the helper that corresponds to the specified entity
*/
public Collection getEntityFieldTypeNames(ModelEntity entity) throws GenericEntityException {
String helperName = getEntityHelperName(entity);
if (helperName == null || helperName.length() <= 0)
return null;
ModelFieldTypeReader modelFieldTypeReader = ModelFieldTypeReader.getModelFieldTypeReader(helperName);
if (modelFieldTypeReader == null) {
throw new GenericEntityException("ModelFieldTypeReader not found for entity " + entity.getEntityName() + " with helper name " + helperName);
}
return modelFieldTypeReader.getFieldTypeNames();
}
/** Creates a Entity in the form of a GenericValue without persisting it */
public GenericValue makeValue(String entityName, Map fields) {
ModelEntity entity = this.getModelEntity(entityName);
if (entity == null) {
throw new IllegalArgumentException("[GenericDelegator.makeValue] could not find entity for entityName: " + entityName);
}
GenericValue value = new GenericValue(entity, fields);
value.setDelegator(this);
return value;
}
/** Creates a Entity in the form of a GenericValue without persisting it; only valid fields will be pulled from the fields Map */
public GenericValue makeValidValue(String entityName, Map fields) {
ModelEntity entity = this.getModelEntity(entityName);
if (entity == null) {
throw new IllegalArgumentException("[GenericDelegator.makeValidValue] could not find entity for entityName: " + entityName);
}
GenericValue value = new GenericValue(entity, null);
value.setPKFields(fields, true);
value.setNonPKFields(fields, true);
value.setDelegator(this);
return value;
}
/** Creates a Primary Key in the form of a GenericPK without persisting it */
public GenericPK makePK(String entityName, Map fields) {
ModelEntity entity = this.getModelEntity(entityName);
if (entity == null) {
throw new IllegalArgumentException("[GenericDelegator.makePK] could not find entity for entityName: " + entityName);
}
GenericPK pk = new GenericPK(entity, fields);
pk.setDelegator(this);
return pk;
}
/** Creates a Entity in the form of a GenericValue and write it to the database
*@return GenericValue instance containing the new instance
*/
public GenericValue create(String entityName, Map fields) throws GenericEntityException {
if (entityName == null || fields == null) {
return null;
}
ModelEntity entity = this.getModelReader().getModelEntity(entityName);
GenericValue genericValue = new GenericValue(entity, fields);
return this.create(genericValue, true);
}
/** Creates a Entity in the form of a GenericValue and write it to the datasource
*@param value The GenericValue to create a value in the datasource from
*@return GenericValue instance containing the new instance
*/
public GenericValue create(GenericValue value) throws GenericEntityException {
return this.create(value, true);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -