Commit e07d5f03 authored by Luna Riegel's avatar Luna Riegel
Browse files

Refactor: Move function

parent 67e24cc8
......@@ -111,6 +111,13 @@ public class Requirement implements Serializable {
return parameters;
}
public DefaultParameter getDefaultParameter(String key) {
for (DefaultParameter param : parameters) {
if (param.getName().equals(key)) return param;
}
return null;
}
@Override
public int hashCode() {
final int prime = 31;
......
......@@ -306,82 +306,8 @@ public class Checker {
}
ValidationPlan createValidationPlan() {
ValidationPlan plan = new ValidationPlan();
de.hft.stuttgart.quality.model.types.Filter filter = createFilter();
plan.setFilter(new FilterProperty(filter));
return config.createValidationPlan(createFilter());
Map<String, de.hft.stuttgart.citydoctor2.check.Requirement> reqs = Checks.getAvailableRequirements();
for (Entry<String, RequirementConfiguration> e : config.getRequirements().entrySet()) {
RequirementId reqId = mapToRequirement(e.getKey());
if (reqId == null) {
continue;
}
de.hft.stuttgart.quality.model.types.Requirement req = new de.hft.stuttgart.quality.model.types.Requirement();
req.setRequirementType(reqId);
req.setEnabled(e.getValue().isEnabled());
plan.getRequirements().add(new RequirementProperty(req));
Map<String, String> parameters = e.getValue().getParameters();
if (parameters != null) {
for (Entry<String, String> param : parameters.entrySet()) {
Parameter p = new Parameter();
DefaultParameter defaultP = getDefaultParameter(e.getKey(), reqs, param.getKey());
if (defaultP != null) {
p.setUom(defaultP.getUnitType().getGmlRepresentation());
} else {
p.setUom("");
}
p.setName(param.getKey());
p.setValue(param.getValue());
req.getParameters().add(new ParameterProperty(p));
}
}
}
de.hft.stuttgart.quality.model.types.Requirement missing = new de.hft.stuttgart.quality.model.types.Requirement();
missing.setRequirementType(RequirementId.R_SE_ATTRIBUTES_EXISTING);
de.hft.stuttgart.quality.model.types.Requirement correct = new de.hft.stuttgart.quality.model.types.Requirement();
correct.setRequirementType(RequirementId.R_SE_ATTRIBUTES_CORRECT);
missing.setEnabled(config.getSchematronFilePath() != null);
correct.setEnabled(config.getSchematronFilePath() != null);
plan.getRequirements().add(new RequirementProperty(missing));
plan.getRequirements().add(new RequirementProperty(correct));
de.hft.stuttgart.quality.model.types.GlobalParameters globParams = new de.hft.stuttgart.quality.model.types.GlobalParameters();
plan.setGlobalParameters(new GlobalParametersProperty(globParams));
Parameter numRounding = new Parameter();
numRounding.setName("numberOfRoundingPlaces");
numRounding.setUom("amount");
numRounding.setValue("" + config.getNumberOfRoundingPlaces());
globParams.getParameters().add(new ParameterProperty(numRounding));
Parameter minVertexDistance = new Parameter();
minVertexDistance.setName("minVertexDistance");
minVertexDistance.setUom("m");
minVertexDistance.setValue("" + config.getMinVertexDistance());
globParams.getParameters().add(new ParameterProperty(minVertexDistance));
if (config.getSchematronFilePath() != null) {
Parameter schematronFile = new Parameter();
schematronFile.setName("schematronFile");
schematronFile.setUom("path");
schematronFile.setValue(config.getSchematronFilePath());
globParams.getParameters().add(new ParameterProperty(schematronFile));
}
return plan;
}
private DefaultParameter getDefaultParameter(String reqKey,
Map<String, de.hft.stuttgart.citydoctor2.check.Requirement> reqs, String paramName) {
de.hft.stuttgart.citydoctor2.check.Requirement requirement = reqs.get(reqKey);
if (requirement != null) {
for (DefaultParameter param : requirement.getDefaultParameter()) {
if (param.getName().equals(paramName)) {
return param;
}
}
}
return null;
}
private de.hft.stuttgart.quality.model.types.Filter createFilter() {
......@@ -461,13 +387,6 @@ public class Checker {
}
}
private RequirementId mapToRequirement(String requirementName) {
try {
return RequirementId.valueOf(requirementName);
} catch (IllegalArgumentException e) {
return null;
}
}
public ValidationConfiguration getConfig() {
return config;
......
......@@ -20,9 +20,17 @@ package de.hft.stuttgart.citydoctor2.check;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import de.hft.stuttgart.quality.model.enums.RequirementId;
import de.hft.stuttgart.quality.model.properties.FilterProperty;
import de.hft.stuttgart.quality.model.properties.GlobalParametersProperty;
import de.hft.stuttgart.quality.model.properties.ParameterProperty;
import de.hft.stuttgart.quality.model.properties.RequirementProperty;
import de.hft.stuttgart.quality.model.types.Parameter;
import de.hft.stuttgart.quality.model.types.ValidationPlan;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.yaml.snakeyaml.DumperOptions;
......@@ -101,6 +109,89 @@ public class ValidationConfiguration implements Serializable {
private ValidationConfiguration() {
}
public ValidationPlan createValidationPlan(de.hft.stuttgart.quality.model.types.Filter filter){
ValidationPlan plan = new ValidationPlan();
plan.setFilter(new FilterProperty(filter));
List<RequirementProperty> planRequirements = plan.getRequirements();
Map<String, de.hft.stuttgart.citydoctor2.check.Requirement> reqs = Checks.getAvailableRequirements();
for (Entry<String, RequirementConfiguration> e : this.getRequirements().entrySet()) {
RequirementId reqId = mapToRequirement(e.getKey());
if (reqId == null) {
continue;
}
planRequirements.add(convertRequirementToProperty(reqId, reqs.get(e.getKey()),e.getValue()));
}
de.hft.stuttgart.quality.model.types.Requirement missing = new de.hft.stuttgart.quality.model.types.Requirement();
missing.setRequirementType(RequirementId.R_SE_ATTRIBUTES_EXISTING);
de.hft.stuttgart.quality.model.types.Requirement correct = new de.hft.stuttgart.quality.model.types.Requirement();
correct.setRequirementType(RequirementId.R_SE_ATTRIBUTES_CORRECT);
missing.setEnabled(this.getSchematronFilePath() != null);
correct.setEnabled(this.getSchematronFilePath() != null);
planRequirements.add(new RequirementProperty(missing));
planRequirements.add(new RequirementProperty(correct));
plan.setGlobalParameters(buildGlobalParametersProperty());
return plan;
}
private RequirementProperty convertRequirementToProperty(RequirementId reqId, Requirement cdReq,
RequirementConfiguration reqConfig){
de.hft.stuttgart.quality.model.types.Requirement qAdeReq = new de.hft.stuttgart.quality.model.types.Requirement();
qAdeReq.setRequirementType(reqId);
qAdeReq.setEnabled(reqConfig.isEnabled());
Map<String, String> parameters = reqConfig.getParameters();
if (parameters != null) {
for (Entry<String, String> param : parameters.entrySet()) {
Parameter p = new Parameter();
DefaultParameter defaultP = cdReq !=null ? cdReq.getDefaultParameter(param.getKey()) : null;
if (defaultP != null) {
p.setUom(defaultP.getUnitType().getGmlRepresentation());
} else {
p.setUom("");
}
p.setName(param.getKey());
p.setValue(param.getValue());
qAdeReq.getParameters().add(new ParameterProperty(p));
}
}
return new RequirementProperty(qAdeReq);
}
private GlobalParametersProperty buildGlobalParametersProperty(){
de.hft.stuttgart.quality.model.types.GlobalParameters globParams = new de.hft.stuttgart.quality.model.types.GlobalParameters();
Parameter numRounding = new Parameter();
numRounding.setName("numberOfRoundingPlaces");
numRounding.setUom("amount");
numRounding.setValue("" + this.getNumberOfRoundingPlaces());
globParams.getParameters().add(new ParameterProperty(numRounding));
Parameter minVertexDistance = new Parameter();
minVertexDistance.setName("minVertexDistance");
minVertexDistance.setUom("m");
minVertexDistance.setValue("" + this.getMinVertexDistance());
globParams.getParameters().add(new ParameterProperty(minVertexDistance));
if (this.getSchematronFilePath() != null) {
Parameter schematronFile = new Parameter();
schematronFile.setName("schematronFile");
schematronFile.setUom("path");
schematronFile.setValue(this.getSchematronFilePath());
globParams.getParameters().add(new ParameterProperty(schematronFile));
}
return new GlobalParametersProperty(globParams);
}
private RequirementId mapToRequirement(String requirementName) {
try {
return RequirementId.valueOf(requirementName);
} catch (IllegalArgumentException e) {
return null;
}
}
public void saveAs(File f) throws IOException {
Yaml yaml = prepareDumpingOfConfig();
try (BufferedWriter bw = new BufferedWriter(new FileWriter(f))) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment