📄 genericdelegator.java
字号:
public String getDelegatorName() { return this.delegatorName; } protected DelegatorInfo getDelegatorInfo() { if (delegatorInfo == null) { delegatorInfo = EntityConfigUtil.getDelegatorInfo(this.delegatorName); } return delegatorInfo; } /** Gets the instance of ModelReader that corresponds to this delegator *@return ModelReader that corresponds to this delegator */ public ModelReader getModelReader() { 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 = FastList.newInstance(); 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 = FastMap.newInstance(); 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 = GenericValue.create(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 = GenericValue.create(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 = GenericPK.create(entity, fields); pk.setDelegator(this); return pk; } /** Creates a Entity in the form of a GenericValue and write it to the datasource *@param primaryKey The GenericPK to create a value in the datasource from *@return GenericValue instance containing the new instance */ public GenericValue create(GenericPK primaryKey) throws GenericEntityException { return this.create(primaryKey, true); } /** Creates a Entity in the form of a GenericValue and write it to the datasource *@param primaryKey The GenericPK to create a value in the datasource from *@param doCacheClear boolean that specifies whether to clear related cache entries for this primaryKey to be created *@return GenericValue instance containing the new instance */ public GenericValue create(GenericPK primaryKey, boolean doCacheClear) throws GenericEntityException { if (primaryKey == null) { throw new GenericEntityException("Cannot create from a null primaryKey"); } return this.create(GenericValue.create(primaryKey), doCacheClear); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -