public void ensureEvaluated(WorkingSet workingSet) throws WorkflowManagerException { final Collection<Assessment> assessments = WorkflowManager.getAllAssessments(session, workingSet); Debug.println("Ensuring evaluation on " + assessments.size() + " assessments..."); final String table = "RedListEvaluated"; final Collection<String> failedSpecies = new ArrayList<String>(); for (Assessment data : assessments) { // final String uid = data.getAssessmentID() + "_" + AssessmentType.DRAFT_ASSESSMENT_TYPE; final String uid = "" + data.getId(); final SelectQuery query = new SelectQuery(); query.select(table, "asm_id"); query.constrain( new CanonicalColumnName(table, "is_evaluated"), QConstraint.CT_EQUALS, "true"); query.constrain( QConstraint.CG_AND, new CanonicalColumnName(table, "approval_status"), QConstraint.CT_EQUALS, Integer.valueOf(1)); query.constrain( QConstraint.CG_AND, new CanonicalColumnName(table, "uid"), QConstraint.CT_EQUALS, uid); final Row.Loader rl = new Row.Loader(); try { ec.doQuery(query, rl); } catch (DBException e) { failedSpecies.add(data.getSpeciesName()); continue; } if (rl.getRow() == null) failedSpecies.add(data.getSpeciesName()); } if (!failedSpecies.isEmpty()) { final StringBuilder builder = new StringBuilder(); builder.append("The following species have not yet been marked as evaluted: "); for (Iterator<String> iter = failedSpecies.iterator(); iter.hasNext(); ) builder.append(iter.next() + (iter.hasNext() ? ", " : "")); throw new WorkflowManagerException(builder.toString()); } }
public org.iucn.sis.shared.api.models.WorkflowStatus getWorkflowRow(Integer workingSetID) throws WorkflowManagerException { final SelectQuery query = new SelectQuery(); query.select(WorkflowConstants.WORKFLOW_TABLE, "*"); query.constrain( new CanonicalColumnName(WorkflowConstants.WORKFLOW_TABLE, "workingsetid"), QConstraint.CT_EQUALS, workingSetID.toString()); final Row.Loader rl = new Row.Loader(); try { ec.doQuery(query, rl); } catch (DBException e) { throw new WorkflowManagerException("Unexpected server error, please try again later.", e); } org.iucn.sis.shared.api.models.WorkflowStatus model = new org.iucn.sis.shared.api.models.WorkflowStatus(); model.setId(rl.getRow().get("id").getInteger()); model.setStatus(rl.getRow().get("status").toString()); return model; }