|
Author: doogie
Date: Tue May 29 04:16:42 2012 New Revision: 1343506 URL: http://svn.apache.org/viewvc?rev=1343506&view=rev Log: FEATURE: Add new Delegator.getRelated that takes a boolean useCache parameter; all internal calls from GenericDelegator and GenericValue have been modified to use the new method. Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericValue.java Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java?rev=1343506&r1=1343505&r2=1343506&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java Tue May 29 04:16:42 2012 @@ -795,6 +795,29 @@ public interface Delegator { public List<GenericValue> getRelatedCache(String relationName, GenericValue value) throws GenericEntityException; /** + * Get the named Related Entity for the GenericValue from the persistent + * store + * + * @param relationName + * String containing the relation name which is the combination + * of relation.title and relation.rel-entity-name as specified in + * the entity XML definition file + * @param byAndFields + * the fields that must equal in order to keep; may be null + * @param orderBy + * The fields of the named entity to order the query by; may be + * null; optionally add a " ASC" for ascending or " DESC" for + * descending + * @param value + * GenericValue instance containing the entity + * @param useCache + * Whether to cache the results + * @return List of GenericValue instances as specified in the relation + * definition + */ + public List<GenericValue> getRelated(String relationName, Map<String, ? extends Object> byAndFields, List<String> orderBy, GenericValue value, boolean useCache) throws GenericEntityException; + + /** * Get a dummy primary key for the named Related Entity for the GenericValue * NOTE 20080502: 2 references * Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java?rev=1343506&r1=1343505&r2=1343506&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java Tue May 29 04:16:42 2012 @@ -1944,6 +1944,13 @@ public class GenericDelegator implements * @see org.ofbiz.entity.Delegator#getRelated(java.lang.String, java.util.Map, java.util.List, org.ofbiz.entity.GenericValue) */ public List<GenericValue> getRelated(String relationName, Map<String, ? extends Object> byAndFields, List<String> orderBy, GenericValue value) throws GenericEntityException { + return getRelated(relationName, byAndFields, orderBy, value, false); + } + + /* (non-Javadoc) + * @see org.ofbiz.entity.Delegator#getRelated(java.lang.String, java.util.Map, java.util.List, org.ofbiz.entity.GenericValue, boolean) + */ + public List<GenericValue> getRelated(String relationName, Map<String, ? extends Object> byAndFields, List<String> orderBy, GenericValue value, boolean useCache) throws GenericEntityException { ModelEntity modelEntity = value.getModelEntity(); ModelRelation relation = modelEntity.getRelation(relationName); @@ -1962,7 +1969,7 @@ public class GenericDelegator implements fields.put(keyMap.getRelFieldName(), value.get(keyMap.getFieldName())); } - return this.findByAnd(relation.getRelEntityName(), fields, orderBy, false); + return this.findByAnd(relation.getRelEntityName(), fields, orderBy, useCache); } /* (non-Javadoc) @@ -1995,20 +2002,7 @@ public class GenericDelegator implements * @see org.ofbiz.entity.Delegator#getRelatedCache(java.lang.String, org.ofbiz.entity.GenericValue) */ public List<GenericValue> getRelatedCache(String relationName, GenericValue value) throws GenericEntityException { - ModelEntity modelEntity = value.getModelEntity(); - ModelRelation relation = modelEntity.getRelation(relationName); - - if (relation == null) { - throw new GenericModelException("Could not find relation for relationName: " + relationName + " for value " + value); - } - - Map<String, Object> fields = FastMap.newInstance(); - for (int i = 0; i < relation.getKeyMapsSize(); i++) { - ModelKeyMap keyMap = relation.getKeyMap(i); - fields.put(keyMap.getRelFieldName(), value.get(keyMap.getFieldName())); - } - - return this.findByAnd(relation.getRelEntityName(), fields, null, true); + return getRelated(relationName, null, null, value, true); } /* (non-Javadoc) Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericValue.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericValue.java?rev=1343506&r1=1343505&r2=1343506&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericValue.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericValue.java Tue May 29 04:16:42 2012 @@ -167,7 +167,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelated(String relationName) throws GenericEntityException { - return this.getDelegator().getRelated(relationName, null, null, this); + return this.getDelegator().getRelated(relationName, null, null, this, false); } /** Get the named Related Entity for the GenericValue from the persistent store @@ -177,7 +177,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelated(String relationName, List<String> orderBy) throws GenericEntityException { - return this.getDelegator().getRelated(relationName, FastMap.<String, Object>newInstance(), orderBy, this); + return this.getDelegator().getRelated(relationName, FastMap.<String, Object>newInstance(), orderBy, this, false); } /** Get the named Related Entity for the GenericValue from the persistent store @@ -188,7 +188,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelated(String relationName, Map<String, ? extends Object> byAndFields, List<String> orderBy) throws GenericEntityException { - return this.getDelegator().getRelated(relationName, byAndFields, orderBy, this); + return this.getDelegator().getRelated(relationName, byAndFields, orderBy, this, false); } /** Get the named Related Entity for the GenericValue from the persistent @@ -197,7 +197,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelatedCache(String relationName) throws GenericEntityException { - return this.getDelegator().getRelatedCache(relationName, this); + return this.getDelegator().getRelated(relationName, null, null, this, true); } /** @@ -237,11 +237,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelatedCache(String relationName, Map<String, ? extends Object> byAndFields, List<String> orderBy) throws GenericEntityException { - List<GenericValue> col = getRelatedCache(relationName); - - if (byAndFields != null) col = EntityUtil.filterByAnd(col, byAndFields); - if (UtilValidate.isNotEmpty(orderBy)) col = EntityUtil.orderBy(col, orderBy); - return col; + return this.getDelegator().getRelated(relationName, byAndFields, orderBy, this, true); } /** Get the named Related Entity for the GenericValue from the persistent @@ -252,7 +248,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelatedCache(String relationName, List<String> orderBy) throws GenericEntityException { - return this.getRelatedCache(relationName, null, orderBy); + return this.getDelegator().getRelated(relationName, null, orderBy, this, true); } /** Get the named Related Entity for the GenericValue from the persistent @@ -361,7 +357,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelatedByAnd(String relationName, Map<String, ? extends Object> fields) throws GenericEntityException { - return this.getDelegator().getRelated(relationName, fields, null, this); + return this.getDelegator().getRelated(relationName, fields, null, this, false); } /** Get the named Related Entity for the GenericValue from the persistent @@ -371,7 +367,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelatedByAndCache(String relationName, Map<String, ? extends Object> fields) throws GenericEntityException { - return EntityUtil.filterByAnd(this.getDelegator().getRelatedCache(relationName, this), fields); + return this.getDelegator().getRelated(relationName, fields, null, this, true); } /** Get the named Related Entity for the GenericValue from the persistent @@ -391,7 +387,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelatedOrderBy(String relationName, List<String> orderBy) throws GenericEntityException { - return this.getDelegator().getRelated(relationName, null, orderBy, this); + return this.getDelegator().getRelated(relationName, null, orderBy, this, false); } /** Get the named Related Entity for the GenericValue from the persistent @@ -401,7 +397,7 @@ public class GenericValue extends Generi *@return List of GenericValue instances as specified in the relation definition */ public List<GenericValue> getRelatedOrderByCache(String relationName, List<String> orderBy) throws GenericEntityException { - return EntityUtil.orderBy(this.getDelegator().getRelatedCache(relationName, this), orderBy); + return this.getDelegator().getRelated(relationName, null, orderBy, this, true); } /** Get the named Related Entity for the GenericValue from the persistent |
| Free forum by Nabble | Edit this page |
