svn commit: r691996 - /ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortWorker.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r691996 - /ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortWorker.java

mor-2
Author: mor
Date: Thu Sep  4 05:49:24 2008
New Revision: 691996

URL: http://svn.apache.org/viewvc?rev=691996&view=rev
Log:
Applied patch from Jira issue OFBIZ-1942 (https://issues.apache.org/jira/browse/OFBIZ-1942).
This patch is about adding a new method which returns a list of all work effort at lowest level.
Done following modifications:
Added for-loop generics,
Added UtilValidate method for empty check.

Thanks to Parimal Gain, Ratnesh Upadhyay and others for their contribution.


Modified:
    ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortWorker.java

Modified: ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortWorker.java?rev=691996&r1=691995&r2=691996&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortWorker.java (original)
+++ ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortWorker.java Thu Sep  4 05:49:24 2008
@@ -20,15 +20,22 @@
 package org.ofbiz.workeffort.workeffort;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 
 import javax.servlet.jsp.PageContext;
 
+import javolution.util.FastList;
+
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityConditionList;
+import org.ofbiz.entity.condition.EntityOperator;
 import org.ofbiz.security.Security;
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
@@ -153,4 +160,38 @@
             pageContext.setAttribute(attribute, aC);
         }
     }
-}
+    
+    public static List getLowestLevelWorkEfforts(GenericDelegator delegator, String workEffortId, String workEffortAssocTypeId) {
+        List workEfforts = FastList.newInstance();
+        try {
+            EntityConditionList exprsLevelFirst = EntityCondition.makeCondition(UtilMisc.toList(
+                    EntityCondition.makeCondition("workEffortIdFrom", workEffortId),
+                    EntityCondition.makeCondition("workEffortAssocTypeId", workEffortAssocTypeId)), EntityOperator.AND);
+            List<GenericValue> childWEAssocsLevelFirst = delegator.findList("WorkEffortAssoc", exprsLevelFirst, null, null, null, true);
+            for (GenericValue childWEAssocLevelFirst : childWEAssocsLevelFirst) {
+                EntityConditionList exprsLevelNext = EntityCondition.makeCondition(UtilMisc.toList(
+                        EntityCondition.makeCondition("workEffortIdFrom", childWEAssocLevelFirst.get("workEffortIdTo")),
+                        EntityCondition.makeCondition("workEffortAssocTypeId", workEffortAssocTypeId)), EntityOperator.AND);
+                List<GenericValue> childWEAssocsLevelNext = delegator.findList("WorkEffortAssoc", exprsLevelNext, null, null, null, true);
+                while (UtilValidate.isNotEmpty(childWEAssocsLevelNext)) {
+                    List tempWorkEffortList = FastList.newInstance();
+                    for (GenericValue childWEAssocLevelNext : childWEAssocsLevelNext) {
+                        EntityConditionList exprsLevelNth = EntityCondition.makeCondition(UtilMisc.toList(
+                                EntityCondition.makeCondition("workEffortIdFrom", childWEAssocLevelNext.get("workEffortIdTo")),
+                                EntityCondition.makeCondition("workEffortAssocTypeId", workEffortAssocTypeId)), EntityOperator.AND);
+                        List childWEAssocsLevelNth = delegator.findList("WorkEffortAssoc", exprsLevelNth, null, null, null, true);
+                        if (UtilValidate.isNotEmpty(childWEAssocsLevelNth)) {
+                            tempWorkEffortList.addAll(childWEAssocsLevelNth);
+                        }
+                        workEfforts.add(childWEAssocLevelNext);                        
+                    }
+                    childWEAssocsLevelNext = tempWorkEffortList;
+                }
+                workEfforts.add(childWEAssocLevelFirst);
+            }
+        } catch (GenericEntityException e) {
+            Debug.logWarning(e, module);
+        }
+        return workEfforts;
+    }
+}
\ No newline at end of file