use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class RecordOperationGenerator method insertRecordDataUntilStep.
private void insertRecordDataUntilStep(RecordOperations operations, CollectRecord record, Step untilStep) {
List<Step> previousSteps = untilStep.getPreviousSteps();
int dataStepSequenceNumber = 1;
for (Step s : previousSteps) {
record.setStep(s);
switch(s) {
case ENTRY:
operations.addInsert(record);
dataStepSequenceNumber++;
break;
default:
operations.addUpdate(record, s, true, dataStepSequenceNumber);
}
}
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class SpecifiedValidator method evaluate.
@Override
public ValidationResultFlag evaluate(Attribute<?, ?> attribute) {
CollectRecord record = (CollectRecord) attribute.getRecord();
Step step = record.getStep();
if (Step.ENTRY == step) {
if (attribute.isRelevant() && attribute.isEmpty() && !(attribute instanceof FileAttribute)) {
if (isReasonBlankAlwaysSpecified(attribute)) {
if (attribute.isRequired()) {
return WARNING;
} else {
return OK;
}
} else {
return ERROR;
}
} else {
return OK;
}
}
return OK;
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class RecordDao method visitSummaries.
public void visitSummaries(RecordFilter filter, List<RecordSummarySortField> sortFields, Visitor<CollectRecordSummary> visitor, boolean includeStepDetails, Predicate<CollectRecordSummary> stopWhenPredicate) {
SelectQuery<Record> q = createSelectSummariesQuery(filter, sortFields);
Cursor<Record> cursor = null;
try {
cursor = q.fetchLazy();
while (cursor.hasNext()) {
Record r = cursor.fetchOne();
CollectRecordSummary s = fromSummaryQueryRecord(filter.getSurvey(), r);
if (includeStepDetails) {
s.clearStepSummaries();
Map<Step, StepSummary> summaryByStep = loadLatestStepSummaries(filter.getSurvey(), s.getId());
for (Step step : Step.values()) {
StepSummary stepSummary = summaryByStep.get(step);
if (stepSummary != null) {
s.addStepSummary(stepSummary);
}
}
}
visitor.visit(s);
if (stopWhenPredicate.evaluate(s)) {
break;
}
}
} finally {
if (cursor != null) {
cursor.close();
}
}
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class RecordDao method loadLatestStepSummaries.
private Map<Step, StepSummary> loadLatestStepSummaries(CollectSurvey survey, int recordId) {
Map<Step, StepSummary> summaryByStep = new HashMap<Step, StepSummary>();
List<StepSummary> allStepsSummaries = loadAllStepsSummaries(survey, recordId);
ListIterator<StepSummary> listIterator = allStepsSummaries.listIterator(allStepsSummaries.size());
while (listIterator.hasPrevious() && summaryByStep.size() < Step.values().length) {
StepSummary stepSummary = listIterator.previous();
if (!summaryByStep.containsKey(stepSummary.getStep()) && stepSummary.getState() == null) {
summaryByStep.put(stepSummary.getStep(), stepSummary);
}
}
return summaryByStep;
}
use of org.openforis.collect.model.CollectRecord.Step in project collect by openforis.
the class DataHandler method fail.
protected void fail(String msg) {
String path = getPath();
Step step = record == null ? null : record.getStep();
NodeUnmarshallingError nodeErrorItem = new NodeUnmarshallingError(step, path, msg);
failures.add(nodeErrorItem);
failed = true;
}
Aggregations