You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hise-commits@incubator.apache.org by wi...@apache.org on 2010/09/17 15:35:14 UTC

svn commit: r998177 - in /incubator/hise/trunk: hise-services/src/main/java/org/apache/hise/api/ hise-services/src/main/java/org/apache/hise/dao/ hise-services/src/main/java/org/apache/hise/engine/jaxws/ rtests/src/test/java/org/apache/hise/managementApi/

Author: witek
Date: Fri Sep 17 15:35:14 2010
New Revision: 998177

URL: http://svn.apache.org/viewvc?rev=998177&view=rev
Log:
paging fix

Modified:
    incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/Management.java
    incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java
    incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java
    incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsBaseImpl.java
    incubator/hise/trunk/rtests/src/test/java/org/apache/hise/managementApi/PagingTest.java

Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/Management.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/Management.java?rev=998177&r1=998176&r2=998177&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/Management.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/api/Management.java Fri Sep 17 15:35:14 2010
@@ -62,15 +62,13 @@ import org.apache.hise.lang.xsd.htdt.TTi
 
 public interface Management {
 
-	public String getText();
-	
+	 public String getText();
 	
 	 public GetMyTasksResponseDocument getMyTasks(String userName, String taskType, String genericHumanRole, String workQueue, List<TStatus.Enum> status, String whereClause, String createdOnClause,
 	            Integer maxTasks, Integer fromTaskNumber) throws IllegalArgumentFault, IllegalStateFault;
 	 
-	 public GetMyTaskAbstractsResponseDocument getMyTaskAbstracts(String userName, String taskType, String genericHumanRole, String workQueue, List<TStatus.Enum> status, String whereClause,
-                String createdOnClause, Integer maxTasks, Integer fromTaskNumber) throws IllegalArgumentFault, IllegalStateFault;
-	 
+	 public GetMyTaskAbstractsResponseDocument getMyTaskAbstracts(String userName, String taskType, String genericHumanRole, String workQueue, List<TStatus.Enum> status, 
+			 String whereClause, String createdOnClause, Integer maxTasks, Integer fromTaskNumber) throws IllegalArgumentFault, IllegalStateFault;
 	 
 	 public HISEDao getHiseDao();
 	 

Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java?rev=998177&r1=998176&r2=998177&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/HISEDao.java Fri Sep 17 15:35:14 2010
@@ -68,37 +68,40 @@ public class HISEDao extends JpaDaoSuppo
     
     /**
      * Returns tasks presented to user based on TaskQuery criteria.
-     * @param query
+     * @param taskQuery
      * @return
      */
     @SuppressWarnings("unchecked")
-	public List<Task> getUserTasks(final TaskQuery query) {
-        
-        Validate.notNull(query);
-        
-            return (List<Task>) getJpaTemplate().executeFind(new JpaCallback() {
-                public Object doInJpa(EntityManager em) throws PersistenceException {
-                    
-                    Validate.notNull(em);
-   
-                    
-                    List<Task> tasks = buildSQLQueryForTaskQuery( query, em).setMaxResults(query.getMaxTasks()).getResultList();
-                    if(query.getWorkQueue() != null && !query.getWorkQueue().equals("")){
-                    	tasks = taskFilterByQuery(tasks, query);
-                    }
-                    return tasks;
-                }
+	public List<Task> getUserTasks(final TaskQuery taskQuery) {
 
+		Validate.notNull(taskQuery);
 
-            });
+		return (List<Task>) getJpaTemplate().executeFind(new JpaCallback() {
+			public Object doInJpa(EntityManager em) throws PersistenceException {
+
+				Validate.notNull(em);
+
+				Query query = buildSQLQueryForTaskQuery(taskQuery, em);
+				if (taskQuery.getMaxTasks() != null) {
+					query.setMaxResults(taskQuery.getMaxTasks());
+				}
+
+				List<Task> tasks = query.getResultList();
+
+				if (taskQuery.getWorkQueue() != null && !taskQuery.getWorkQueue().equals("")) {
+					tasks = taskFilterByQuery(tasks, taskQuery);
+				}
+				return tasks;
+			}
+
+		});
+
+	}
 
-    }
 	public static  Query buildSQLQueryForTaskQuery(TaskQuery query, EntityManager em) {
-//		int tan[] = new int[5];
 		Vector<Object> q= new Vector<Object>();
-		q.add("select distinct t from Task t, TaskOrgEntity e where ");//t.actualOwner = :user");
-		//q.add(new JQBParam("user", query.getUser()));
-		if(addStatuses(q, query))
+		q.add("select distinct t from Task t, TaskOrgEntity e where ");
+		if(addStatuses(q, query)) 
 			q.add(" and ");
 		if(addOrgEntity(q, query))
 			q.add(" and ");

Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java?rev=998177&r1=998176&r2=998177&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/dao/TaskQuery.java Fri Sep 17 15:35:14 2010
@@ -41,7 +41,9 @@ public class TaskQuery {
     private List<TStatus.Enum> statuses = Collections.EMPTY_LIST;
     private String whereClause = "";
     private String createdOnClause = "";
-    private Integer maxTasks = 20;
+    
+    //no limit on number of returned tasks 
+    private Integer maxTasks = null;
 
     public String getUser() {
         return user;
@@ -112,7 +114,6 @@ public class TaskQuery {
     }
 
     public void setMaxTasks(Integer maxTasks) {
-        Validate.notNull(maxTasks, "Maximum tasks number cannot be set to null.");
         this.maxTasks = maxTasks;
     }
 }

Modified: incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsBaseImpl.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsBaseImpl.java?rev=998177&r1=998176&r2=998177&view=diff
==============================================================================
--- incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsBaseImpl.java (original)
+++ incubator/hise/trunk/hise-services/src/main/java/org/apache/hise/engine/jaxws/TaskOperationsBaseImpl.java Fri Sep 17 15:35:14 2010
@@ -238,10 +238,9 @@ public abstract class TaskOperationsBase
         query.setUser(user);
         query.setUserGroups(hiseEngine.getHiseUserDetails().getUserGroups(user));
         query.setTaskType(taskType);
-        if(genericHumanRole==null) {
+        if(genericHumanRole == null) {
             query.setGenericHumanRole(null);
-        }
-        else {
+        } else {
             query.setGenericHumanRole(GenericHumanRole.valueOf(genericHumanRole));
         }
         query.setWorkQueue(workQueue);
@@ -1263,7 +1262,6 @@ public abstract class TaskOperationsBase
 
     public GetMyTaskAbstractsResponseDocument getMyTaskAbstracts(GetMyTaskAbstractsDocument getMyTaskAbstracts) throws IllegalArgumentFault, IllegalStateFault {
 
-
         String taskType = getMyTaskAbstracts.getGetMyTaskAbstracts().getTaskType();
         String genericHumanRole = getMyTaskAbstracts.getGetMyTaskAbstracts().getGenericHumanRole();
         String workQueue = getMyTaskAbstracts.getGetMyTaskAbstracts().getWorkQueue();
@@ -1274,16 +1272,16 @@ public abstract class TaskOperationsBase
         Integer fromTaskNumber = getMyTaskAbstracts.getGetMyTaskAbstracts().getFromTaskNumber();
         
         if(!getMyTaskAbstracts.getGetMyTaskAbstracts().isSetMaxTasks()){
-       	 maxTasks = null;
+       	    maxTasks = null;
         }
         
-        return getMyTaskAbstracts(taskType, genericHumanRole, workQueue, status, whereClause, createdOnClause,maxTasks, fromTaskNumber); 
+        return getMyTaskAbstracts(taskType, genericHumanRole, workQueue, status, whereClause, createdOnClause, maxTasks, fromTaskNumber); 
     }
         
     public GetMyTaskAbstractsResponseDocument getMyTaskAbstracts(String taskType, String genericHumanRole, String workQueue, List<TStatus.Enum> status, String whereClause,
                 String createdOnClause, Integer maxTasks, Integer fromTaskNumber) throws IllegalArgumentFault, IllegalStateFault {
     	
-        List<TTaskAbstract> result = new ArrayList<TTaskAbstract>();
+        final List<TTaskAbstract> result = new ArrayList<TTaskAbstract>();
 
         String user = getUserString();
 
@@ -1296,18 +1294,17 @@ public abstract class TaskOperationsBase
         query.setStatuses(status);
         query.setWhereClause(whereClause);
         query.setCreatedOnClause(createdOnClause);
+        query.setMaxTasks(null); //TODO maxTasks + fromTaskNumber
 
         List<org.apache.hise.dao.Task> tasks = hiseEngine.getHiseDao().getUserTasks(query);
-        if(maxTasks == null){
-        	maxTasks = tasks.size();
-        }
    
-        int taskCounter = 0;
-        for(int i = fromTaskNumber; i < tasks.size() && taskCounter < maxTasks; ++i){
+        if(maxTasks == null) {
+        	maxTasks = Integer.MAX_VALUE;
+        }
+        
+        for (int i = fromTaskNumber, count = 0; i < tasks.size() && count < maxTasks; i++, count++) {
         	TTaskAbstract t = convertTasktoTTaskAbstract(tasks.get(i).getId());
         	result.add(t);
-            
-            taskCounter++;
         }
 
         GetMyTaskAbstractsResponseDocument responseDocument = GetMyTaskAbstractsResponseDocument.Factory.newInstance();
@@ -1496,4 +1493,4 @@ public abstract class TaskOperationsBase
     
     
 
-}
\ No newline at end of file
+}

Modified: incubator/hise/trunk/rtests/src/test/java/org/apache/hise/managementApi/PagingTest.java
URL: http://svn.apache.org/viewvc/incubator/hise/trunk/rtests/src/test/java/org/apache/hise/managementApi/PagingTest.java?rev=998177&r1=998176&r2=998177&view=diff
==============================================================================
--- incubator/hise/trunk/rtests/src/test/java/org/apache/hise/managementApi/PagingTest.java (original)
+++ incubator/hise/trunk/rtests/src/test/java/org/apache/hise/managementApi/PagingTest.java Fri Sep 17 15:35:14 2010
@@ -23,11 +23,10 @@ import org.junit.Test;
 
 public class PagingTest extends TaskTestBase {
 	
-    private Task task = null;
     final private int taskNumber = 6;
     
     public Management management;
-    
+
 
     @Before
     public void setUp() throws Exception {