use of org.openforis.collect.datacleansing.DataCleansingChain in project collect by openforis.
the class DataCleansingManagerImpl method loadMetadata.
@Override
public DataCleansingMetadata loadMetadata(CollectSurvey survey) {
List<DataQuery> dataQueries = dataQueryManager.loadBySurvey(survey);
List<DataQueryType> dataQueryTypes = dataTypeManager.loadBySurvey(survey);
for (DataQuery dataQuery : dataQueries) {
Integer typeId = dataQuery.getTypeId();
dataQuery.setType(typeId == null ? null : CollectionUtils.findItem(dataQueryTypes, typeId));
}
List<DataQueryGroup> dataQueryGroups = dataQueryGroupManager.loadBySurvey(survey);
for (DataQueryGroup group : dataQueryGroups) {
List<DataQuery> queries = group.getQueries();
List<DataQuery> correctQueries = new ArrayList<DataQuery>(queries.size());
for (DataQuery dataQuery : queries) {
correctQueries.add(CollectionUtils.findItem(dataQueries, dataQuery.getId()));
}
group.removeAllQueries();
group.allAllQueries(correctQueries);
}
List<DataCleansingStep> cleansingSteps = dataCleansingStepManager.loadBySurvey(survey);
for (DataCleansingStep step : cleansingSteps) {
step.setQuery(CollectionUtils.findItem(dataQueries, step.getQueryId()));
}
List<DataCleansingChain> cleansingChains = dataCleansingChainManager.loadBySurvey(survey);
for (DataCleansingChain chain : cleansingChains) {
List<DataCleansingStep> steps = chain.getSteps();
List<DataCleansingStep> correctSteps = new ArrayList<DataCleansingStep>(steps.size());
for (DataCleansingStep step : steps) {
correctSteps.add(CollectionUtils.findItem(cleansingSteps, step.getId()));
}
chain.removeAllSteps();
chain.addAllSteps(correctSteps);
}
DataCleansingMetadata metadata = new DataCleansingMetadata(survey, dataQueryTypes, dataQueries, dataQueryGroups, cleansingSteps, cleansingChains);
return metadata;
}
use of org.openforis.collect.datacleansing.DataCleansingChain in project collect by openforis.
the class DataCleansingChainController method run.
@RequestMapping(value = "{chainId}/run.json", method = RequestMethod.POST)
@ResponseBody
public Response run(@PathVariable int chainId, @RequestParam Step recordStep) {
CollectSurvey survey = sessionManager.getActiveSurvey();
DataCleansingChain chain = itemManager.loadById(survey, chainId);
DataCleansingChainExecutorJob job = collectJobManager.createJob(DataCleansingChainExecutorJob.class);
job.setChain(chain);
job.setRecordStep(recordStep);
collectJobManager.startSurveyJob(job);
Response response = new Response();
return response;
}
use of org.openforis.collect.datacleansing.DataCleansingChain in project collect by openforis.
the class DataCleansingChainValidator method validateTitleUniqueness.
private boolean validateTitleUniqueness(DataCleansingChainForm target, Errors errors) {
String title = target.getTitle();
CollectSurvey survey = getActiveSurvey();
List<DataCleansingChain> chains = dataCleansingChainManager.loadBySurvey(survey);
for (DataCleansingChain chain : chains) {
if (!chain.getId().equals(target.getId()) && chain.getTitle().equalsIgnoreCase(title)) {
rejectDuplicateValue(errors, TITLE_FIELD);
return false;
}
}
return true;
}
use of org.openforis.collect.datacleansing.DataCleansingChain in project collect by openforis.
the class DataCleansingChainValidator method validateStepsUniqueness.
private boolean validateStepsUniqueness(DataCleansingChainForm target, Errors errors) {
CollectSurvey survey = getActiveSurvey();
List<DataCleansingChain> chains = dataCleansingChainManager.loadBySurvey(survey);
for (DataCleansingChain chain : chains) {
if (!chain.getId().equals(target.getId())) {
List<DataCleansingStep> steps = chain.getSteps();
List<Integer> stepIds = new ArrayList<Integer>();
for (DataCleansingStep step : steps) {
stepIds.add(step.getId());
}
if (stepIds.equals(target.getStepIds())) {
rejectDuplicateValue(errors, STEP_IDS_FIELD);
return false;
}
}
}
return true;
}
use of org.openforis.collect.datacleansing.DataCleansingChain in project collect by openforis.
the class DataCleansingChainController method loadReports.
@RequestMapping(value = "{chainId}/reports.json", method = RequestMethod.GET)
@ResponseBody
public List<DataCleansingReportForm> loadReports(@PathVariable int chainId) {
CollectSurvey survey = sessionManager.getActiveSurvey();
DataCleansingChain chain = itemManager.loadById(survey, chainId);
List<DataCleansingReport> reports = reportManager.loadByCleansingChain(chain);
List<DataCleansingReportForm> forms = Forms.toForms(reports, DataCleansingReportForm.class);
return forms;
}
Aggregations