@Override public List<ProcessInstanceLog> findProcessInstances(String processId) { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM ProcessInstanceLog p WHERE p.processId = :processId") .setParameter("processId", processId); return executeQuery(query, em, ProcessInstanceLog.class); }
@Override public List<VariableInstanceLog> findVariableInstances(long processInstanceId) { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM VariableInstanceLog v WHERE v.processInstanceId = :processInstanceId ORDER BY date") .setParameter("processInstanceId", processInstanceId); return executeQuery(query, em, VariableInstanceLog.class); }
@Override public List<ProcessInstanceLog> findActiveProcessInstances(String processId) { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM ProcessInstanceLog p WHERE p.processId = :processId AND p.end is null") .setParameter("processId", processId); return executeQuery(query, em, ProcessInstanceLog.class); }
@Override public List<NodeInstanceLog> findNodeInstances(long processInstanceId, String nodeId) { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM NodeInstanceLog n WHERE n.processInstanceId = :processInstanceId AND n.nodeId = :nodeId ORDER BY date,id") .setParameter("processInstanceId", processInstanceId) .setParameter("nodeId", nodeId); return executeQuery(query, em, NodeInstanceLog.class); }
@Override public List<ProcessInstanceLog> findProcessInstances() { EntityManager em = getEntityManager(); Query query = em.createQuery("FROM ProcessInstanceLog"); return executeQuery(query, em, ProcessInstanceLog.class); }
@Override public List<NodeInstanceLog> findNodeInstances(long processInstanceId) { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM NodeInstanceLog n WHERE n.processInstanceId = :processInstanceId ORDER BY date,id") .setParameter("processInstanceId", processInstanceId); return executeQuery(query, em, NodeInstanceLog.class); }
@Override public List<ProcessInstanceLog> findActiveProcessInstances() { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM ProcessInstanceLog p WHERE p.end is null"); return executeQuery(query, em, ProcessInstanceLog.class); }
@Override public List<ProcessInstanceLog> findSubProcessInstances(long processInstanceId) { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM ProcessInstanceLog p WHERE p.parentProcessInstanceId = :processInstanceId") .setParameter("processInstanceId", processInstanceId); return executeQuery(query, em, ProcessInstanceLog.class); }
@Override public List<VariableInstanceLog> findVariableInstances(long processInstanceId, String variableId) { EntityManager em = getEntityManager(); Query query = em .createQuery("FROM VariableInstanceLog v WHERE v.processInstanceId = :processInstanceId AND v.variableId = :variableId ORDER BY date") .setParameter("processInstanceId", processInstanceId) .setParameter("variableId", variableId); return executeQuery(query, em, VariableInstanceLog.class); }
@Override public List<VariableInstanceLog> findVariableInstancesByName(String variableId, boolean onlyActiveProcesses) { EntityManager em = getEntityManager(); Query query; if( ! onlyActiveProcesses ) { query = em.createQuery("FROM VariableInstanceLog v WHERE v.variableId = :variableId ORDER BY date"); } else { query = em.createQuery( "SELECT v " + "FROM VariableInstanceLog v, ProcessInstanceLog p " + "WHERE v.processInstanceId = p.processInstanceId " + "AND v.variableId = :variableId " + "AND p.end is null " + "ORDER BY v.date"); } query.setParameter("variableId", variableId); return executeQuery(query, em, VariableInstanceLog.class); }
@Override public List<VariableInstanceLog> findVariableInstancesByNameAndValue(String variableId, String value, boolean onlyActiveProcesses) { EntityManager em = getEntityManager(); Query query; if( ! onlyActiveProcesses ) { query = em.createQuery("FROM VariableInstanceLog v WHERE v.variableId = :variableId AND v.value = :value ORDER BY date"); } else { query = em.createQuery( "SELECT v " + "FROM VariableInstanceLog v, ProcessInstanceLog p " + "WHERE v.processInstanceId = p.processInstanceId " + "AND v.variableId = :variableId " + "AND v.value = :value " + "AND p.end is null " + "ORDER BY v.date"); } query.setParameter("variableId", variableId).setParameter("value", value); return executeQuery(query, em, VariableInstanceLog.class); }