Search in sources :

Example 1 with SimpleQueryCriteria

use of org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria in project carbon-business-process by wso2.

the class TaskOperationServiceImpl method simpleQuery.

public TTaskSimpleQueryResultSet simpleQuery(final TSimpleQueryInput tSimpleQueryInput) throws IllegalStateFault, IllegalArgumentFault {
    final int[] taskCount = new int[1];
    try {
        List<TaskDAO> matchingTasks = HumanTaskServiceComponent.getHumanTaskServer().getTaskEngine().getScheduler().execTransaction(new Callable<List<TaskDAO>>() {

            public List<TaskDAO> call() throws Exception {
                HumanTaskDAOConnection daoConn = HumanTaskServiceComponent.getHumanTaskServer().getDaoConnectionFactory().getConnection();
                SimpleQueryCriteria queryCriteria = TransformerUtils.transformSimpleTaskQuery(tSimpleQueryInput);
                queryCriteria.setCallerTenantId(CarbonContext.getThreadLocalCarbonContext().getTenantId());
                queryCriteria.setCaller(getCaller());
                // queryCriteria.setPageSize(HumanTaskConstants.ITEMS_PER_PAGE);
                TStatus[] statuses = tSimpleQueryInput.getStatus();
                Set<TaskStatus> statusSet = new HashSet<TaskStatus>();
                if (statuses != null && statuses.length > 0) {
                    for (TStatus status : statuses) {
                        try {
                            TaskStatus taskStatus = TaskStatus.valueOf(status.getTStatus().toUpperCase());
                            statusSet.add(taskStatus);
                        } catch (IllegalArgumentException ex) {
                            new IllegalArgumentFault(" Invalid Status ");
                        }
                    }
                }
                if (!statusSet.isEmpty()) {
                    queryCriteria.setStatuses(new ArrayList(statusSet));
                }
                if (statuses != null && statuses.length > 0) {
                    for (TStatus status : statuses) {
                        try {
                            TaskStatus taskStatus = TaskStatus.valueOf(status.getTStatus().toUpperCase());
                            statusSet.add(taskStatus);
                        } catch (IllegalArgumentException ex) {
                            new IllegalArgumentFault("Invalid Status");
                        }
                    }
                }
                if (!statusSet.isEmpty()) {
                    queryCriteria.setStatuses(new ArrayList(statusSet));
                }
                taskCount[0] = daoConn.getTasksCount(queryCriteria);
                if (log.isDebugEnabled()) {
                    log.debug("No of tasks in the db : " + taskCount[0]);
                }
                return daoConn.searchTasks(queryCriteria);
            }
        });
        int taskListSize = matchingTasks.size();
        int pageSize = tSimpleQueryInput.getPageSize() > 0 ? tSimpleQueryInput.getPageSize() : HumanTaskConstants.ITEMS_PER_PAGE;
        int pages = (int) Math.ceil((double) taskCount[0] / pageSize);
        if (log.isDebugEnabled()) {
            log.debug("No of task pages : " + pages + " with " + pageSize + " tasks per page");
        }
        TaskDAO[] instanceArray = matchingTasks.toArray(new TaskDAO[taskListSize]);
        TTaskSimpleQueryResultSet resultSet = new TTaskSimpleQueryResultSet();
        resultSet.setPages(pages);
        for (int i = 0; i < taskListSize; i++) {
            resultSet.addRow(TransformerUtils.transformToSimpleQueryRow(instanceArray[i]));
        }
        return resultSet;
    } catch (HumanTaskIllegalStateException ex) {
        log.error(ex);
        throw new IllegalStateFault(ex);
    } catch (Exception ex) {
        log.error(ex);
        throw new IllegalArgumentFault(ex);
    }
}
Also used : IllegalStateFault(org.wso2.carbon.humantask.client.api.IllegalStateFault) TTaskSimpleQueryResultSet(org.wso2.carbon.humantask.client.api.types.TTaskSimpleQueryResultSet) HashSet(java.util.HashSet) Set(java.util.Set) ArrayList(java.util.ArrayList) TaskStatus(org.wso2.carbon.humantask.core.dao.TaskStatus) TTaskSimpleQueryResultSet(org.wso2.carbon.humantask.client.api.types.TTaskSimpleQueryResultSet) TStatus(org.wso2.carbon.humantask.client.api.types.TStatus) TaskDAO(org.wso2.carbon.humantask.core.dao.TaskDAO) ArrayList(java.util.ArrayList) List(java.util.List) HumanTaskDAOConnection(org.wso2.carbon.humantask.core.dao.HumanTaskDAOConnection) IllegalArgumentFault(org.wso2.carbon.humantask.client.api.IllegalArgumentFault) SimpleQueryCriteria(org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria)

Example 2 with SimpleQueryCriteria

use of org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria in project carbon-business-process by wso2.

the class HumanTaskDAOConnectionImpl method getTasksCount.

public int getTasksCount(SimpleQueryCriteria queryCriteria) {
    HumanTaskJPQLQueryBuilder queryBuilder = new HumanTaskJPQLQueryBuilder(queryCriteria, entityManager);
    Query countQuery = queryBuilder.buildCount();
    int firstResult = Integer.parseInt(countQuery.getSingleResult().toString());
    return firstResult;
}
Also used : Query(javax.persistence.Query) HumanTaskJPQLQueryBuilder(org.wso2.carbon.humantask.core.dao.sql.HumanTaskJPQLQueryBuilder)

Example 3 with SimpleQueryCriteria

use of org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria in project carbon-business-process by wso2.

the class HumanTaskDAOConnectionImpl method removeTasks.

public void removeTasks(SimpleQueryCriteria queryCriteria) {
    HumanTaskJPQLQueryBuilder queryBuilder = new HumanTaskJPQLQueryBuilder(queryCriteria, entityManager);
    Query taskQuery = queryBuilder.build();
    taskQuery.executeUpdate();
}
Also used : Query(javax.persistence.Query) HumanTaskJPQLQueryBuilder(org.wso2.carbon.humantask.core.dao.sql.HumanTaskJPQLQueryBuilder)

Example 4 with SimpleQueryCriteria

use of org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria in project carbon-business-process by wso2.

the class RemovableTaskCleanupJob method execute.

/**
 * The task clean up execution logic.
 */
public void execute() {
    HumanTaskServerConfiguration serverConfiguration = HumanTaskCleanupSchedulerServiceComponent.getHumanTaskServer().getServerConfig();
    final SimpleQueryCriteria queryCriteria = createQueryCriteria(serverConfiguration);
    log.info("Running the task cleanup service.....");
    try {
        HumanTaskCleanupSchedulerServiceComponent.getHumanTaskServer().getTaskEngine().getScheduler().execTransaction(new Callable<Object>() {

            public Object call() throws Exception {
                HumanTaskDAOConnection daoConnection = HumanTaskCleanupSchedulerServiceComponent.getHumanTaskServer().getDaoConnectionFactory().getConnection();
                daoConnection.removeTasks(queryCriteria);
                return null;
            }
        });
    } catch (Exception ex) {
        String errMsg = "Task Cleanup operation failed! :";
        log.error(errMsg, ex);
        throw new HumanTaskRuntimeException(errMsg, ex);
    }
}
Also used : HumanTaskServerConfiguration(org.wso2.carbon.humantask.core.configuration.HumanTaskServerConfiguration) HumanTaskRuntimeException(org.wso2.carbon.humantask.core.engine.runtime.api.HumanTaskRuntimeException) HumanTaskDAOConnection(org.wso2.carbon.humantask.core.dao.HumanTaskDAOConnection) HumanTaskRuntimeException(org.wso2.carbon.humantask.core.engine.runtime.api.HumanTaskRuntimeException) SimpleQueryCriteria(org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria)

Example 5 with SimpleQueryCriteria

use of org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria in project carbon-business-process by wso2.

the class RemovableTaskCleanupJob method createQueryCriteria.

/**
 * Create task removal query criteria.
 *
 * @param serverConfiguration : The server config.
 * @return : The SimpleQueryCriteria.
 */
private SimpleQueryCriteria createQueryCriteria(HumanTaskServerConfiguration serverConfiguration) {
    SimpleQueryCriteria queryCriteria = new SimpleQueryCriteria();
    queryCriteria.setSimpleQueryType(SimpleQueryCriteria.QueryType.REMOVE_TASKS);
    queryCriteria.setStatuses(serverConfiguration.getRemovableTaskStatuses());
    return queryCriteria;
}
Also used : SimpleQueryCriteria(org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria)

Aggregations

Query (javax.persistence.Query)3 SimpleQueryCriteria (org.wso2.carbon.humantask.core.dao.SimpleQueryCriteria)3 HumanTaskJPQLQueryBuilder (org.wso2.carbon.humantask.core.dao.sql.HumanTaskJPQLQueryBuilder)3 HumanTaskDAOConnection (org.wso2.carbon.humantask.core.dao.HumanTaskDAOConnection)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Set (java.util.Set)1 IllegalArgumentFault (org.wso2.carbon.humantask.client.api.IllegalArgumentFault)1 IllegalStateFault (org.wso2.carbon.humantask.client.api.IllegalStateFault)1 TStatus (org.wso2.carbon.humantask.client.api.types.TStatus)1 TTaskSimpleQueryResultSet (org.wso2.carbon.humantask.client.api.types.TTaskSimpleQueryResultSet)1 HumanTaskServerConfiguration (org.wso2.carbon.humantask.core.configuration.HumanTaskServerConfiguration)1 TaskDAO (org.wso2.carbon.humantask.core.dao.TaskDAO)1 TaskStatus (org.wso2.carbon.humantask.core.dao.TaskStatus)1 HumanTaskRuntimeException (org.wso2.carbon.humantask.core.engine.runtime.api.HumanTaskRuntimeException)1