use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class CodeListManager method isInUse.
public boolean isInUse(final CodeList list) {
Survey survey = list.getSurvey();
Schema schema = survey.getSchema();
NodeDefinition attrDefnUsingCodeList = schema.findNodeDefinition(new NodeDefinitionVerifier() {
@Override
public boolean verify(NodeDefinition definition) {
return definition instanceof CodeAttributeDefinition && ((CodeAttributeDefinition) definition).getList() == list;
}
});
return attrDefnUsingCodeList != null;
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class RecordValidationProcess method startProcessing.
@Override
@Transactional(propagation = Propagation.SUPPORTS)
public void startProcessing() throws Exception {
super.startProcessing();
validateParameters();
status.setTotal(recordManager.countRecords(new RecordFilter(survey)));
Schema schema = survey.getSchema();
List<EntityDefinition> rootEntities = schema.getRootEntityDefinitions();
for (EntityDefinition rootEntityDef : rootEntities) {
RecordFilter filter = new RecordFilter(survey, rootEntityDef.getId());
List<CollectRecordSummary> summaries = recordManager.loadSummaries(filter);
for (CollectRecordSummary summary : summaries) {
// print(outputStream, "Start validating record: " + recordKey);
if (status.isRunning()) {
Step step = summary.getStep();
Integer recordId = summary.getId();
recordManager.validateAndSave(survey, user, sessionId, recordId, step);
status.incrementProcessed();
// long elapsedMillis = System.currentTimeMillis() - start;
// print(outputStream, "Validation of record " + recordKey + " completed in " + elapsedMillis + " millis");
}
}
}
if (status.isRunning()) {
status.complete();
}
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class SurveyValidator method visitNodeDefinitions.
protected void visitNodeDefinitions(CollectSurvey survey, NodeDefinitionVisitor nodeDefnVisitor) {
Schema schema = survey.getSchema();
List<EntityDefinition> rootEntityDefns = schema.getRootEntityDefinitions();
for (EntityDefinition entityDefn : rootEntityDefns) {
entityDefn.traverse(nodeDefnVisitor);
}
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class SurveyValidator method validateRootKeyAttributeSpecified.
private List<SurveyValidationResult> validateRootKeyAttributeSpecified(CollectSurvey survey) {
List<SurveyValidationResult> results = new ArrayList<SurveyValidationResult>();
Schema schema = survey.getSchema();
for (EntityDefinition rootEntityDef : schema.getRootEntityDefinitions()) {
List<AttributeDefinition> keyAttributeDefinitions = rootEntityDef.getKeyAttributeDefinitions();
if (keyAttributeDefinitions.isEmpty()) {
SurveyValidationResult validationResult = new SurveyValidationResult(rootEntityDef.getPath(), "survey.validation.error.key_attribute_not_specified");
results.add(validationResult);
} else if (keyAttributeDefinitions.size() > MAX_KEY_ATTRIBUTE_DEFINITION_COUNT) {
SurveyValidationResult validationResult = new SurveyValidationResult(rootEntityDef.getPath(), "survey.validation.error.maximum_key_attribute_definitions_exceeded");
results.add(validationResult);
}
}
return results;
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class SurveyValidator method validateSchemaNodes.
/**
* Checks for the existence of empty entities
*
* @param survey
* @return
*/
protected List<SurveyValidationResult> validateSchemaNodes(CollectSurvey survey) {
final List<SurveyValidationResult> results = new ArrayList<SurveyValidationResult>();
Schema schema = survey.getSchema();
schema.traverse(new NodeDefinitionVisitor() {
@Override
public void visit(NodeDefinition def) {
results.addAll(validateSchemaNode(def));
}
});
return results;
}
Aggregations