use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class SpeciesService method isTaxonomyInUse.
@Secured("ROLE_ADMIN")
public boolean isTaxonomyInUse(String taxonomyName) {
CollectSurvey survey = sessionManager.getActiveDesignerSurvey();
Schema schema = survey.getSchema();
List<TaxonAttributeDefinition> defns = schema.getTaxonAttributeDefinitions(taxonomyName);
return !defns.isEmpty();
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class SurveyValidator method validateMultiplicityNotChanged.
protected List<SurveyValidationResult> validateMultiplicityNotChanged(CollectSurvey oldPublishedSurvey, CollectSurvey newSurvey) {
final Schema oldSchema = oldPublishedSurvey.getSchema();
SurveyValidationNodeDefinitionVisitor visitor = new SurveyValidationNodeDefinitionVisitor() {
@Override
public void visit(NodeDefinition nodeDefn) {
NodeDefinition oldDefn = oldSchema.getDefinitionById(nodeDefn.getId());
if (oldDefn != null && oldDefn.isMultiple() && !nodeDefn.isMultiple()) {
String messageKey = "survey.validation.error.cardinality_changed_from_multiple_to_single";
String path = nodeDefn.getPath();
SurveyValidationResult result = new SurveyValidationResult(path, messageKey);
addResult(result);
}
}
};
visitNodeDefinitions(newSurvey, visitor);
return visitor.getResults();
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class SurveyValidator method validateDataTypeNotChanged.
protected List<SurveyValidationResult> validateDataTypeNotChanged(CollectSurvey oldPublishedSurvey, CollectSurvey newSurvey) {
final Schema oldSchema = oldPublishedSurvey.getSchema();
SurveyValidationNodeDefinitionVisitor visitor = new SurveyValidationNodeDefinitionVisitor() {
@Override
public void visit(NodeDefinition nodeDefn) {
NodeDefinition oldDefn = oldSchema.getDefinitionById(nodeDefn.getId());
if (oldDefn != null && (oldDefn.getClass() != nodeDefn.getClass() || oldDefn instanceof NumericAttributeDefinition && ((NumericAttributeDefinition) oldDefn).getType() != ((NumericAttributeDefinition) nodeDefn).getType())) {
String messageKey = "survey.validation.error.data_type_changed";
String path = nodeDefn.getPath();
SurveyValidationResult result = new SurveyValidationResult(path, messageKey);
addResult(result);
}
}
};
visitNodeDefinitions(newSurvey, visitor);
return visitor.getResults();
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class SurveyValidator method validateParentRelationship.
protected List<SurveyValidationResult> validateParentRelationship(CollectSurvey oldPublishedSurvey, CollectSurvey newSurvey) {
final Schema oldSchema = oldPublishedSurvey.getSchema();
SurveyValidationNodeDefinitionVisitor visitor = new SurveyValidationNodeDefinitionVisitor() {
@Override
public void visit(NodeDefinition nodeDefn) {
NodeDefinition oldDefn = oldSchema.getDefinitionById(nodeDefn.getId());
if (oldDefn != null) {
NodeDefinition parentDefn = nodeDefn.getParentDefinition();
NodeDefinition oldParentDefn = oldDefn.getParentDefinition();
int parentDefnId = parentDefn == null ? -1 : parentDefn.getId();
int oldParentDefnId = oldParentDefn == null ? -1 : oldParentDefn.getId();
if (parentDefnId != oldParentDefnId) {
String messageKey = "survey.validation.error.parent_changed";
String path = nodeDefn.getPath();
SurveyValidationResult validationResult = new SurveyValidationResult(path, messageKey);
addResult(validationResult);
}
}
}
};
visitNodeDefinitions(newSurvey, visitor);
return visitor.getResults();
}
use of org.openforis.idm.metamodel.Schema in project collect by openforis.
the class UIOptionsMigrator method verifyMigration.
private void verifyMigration(final UIConfiguration uiConfig) throws UIOptionsMigrationException {
//
// StringWriter writer = new StringWriter();
// UIConfigurationSerializer serializer = new UIConfigurationSerializer();
// serializer.write(uiConfig, writer);
// System.out.println(writer.toString());
//
final CollectSurvey survey = uiConfig.getSurvey();
Schema schema = survey.getSchema();
schema.traverse(new NodeDefinitionVisitor() {
@Override
public void visit(NodeDefinition definition) {
int nodeId = definition.getId();
UIModelObject uiModelObj = uiConfig.getModelObjectByNodeDefinitionId(nodeId);
if (uiModelObj == null) {
throw new UIOptionsMigrationException(String.format("No UI model object found for node with id %d in %s survey with uri %s", nodeId, survey.isTemporary() ? "temporary" : "published", survey.getUri()));
}
}
});
}
Aggregations