get rid of ObjectFactory.java

This commit is contained in:
Andreas Penski (init) 2020-04-29 16:57:15 +02:00
parent 5b1d0cd467
commit d0000fc698
20 changed files with 494 additions and 445 deletions

View file

@ -1,5 +1,7 @@
package de.kosit.validationtool.config;
import static de.kosit.validationtool.impl.DateFactory.createTimestamp;
import java.net.URI;
import java.time.LocalDate;
import java.util.ArrayList;
@ -12,6 +14,7 @@ import java.util.stream.Collectors;
import javax.xml.validation.Schema;
import org.apache.commons.lang3.NotImplementedException;
import org.apache.commons.lang3.StringUtils;
import lombok.extern.slf4j.Slf4j;
@ -21,6 +24,10 @@ import de.kosit.validationtool.impl.ContentRepository;
import de.kosit.validationtool.impl.ResolvingMode;
import de.kosit.validationtool.impl.Scenario;
import de.kosit.validationtool.impl.model.Result;
import de.kosit.validationtool.model.scenarios.DescriptionType;
import de.kosit.validationtool.model.scenarios.NoScenarioReportType;
import de.kosit.validationtool.model.scenarios.ObjectFactory;
import de.kosit.validationtool.model.scenarios.Scenarios;
import net.sf.saxon.s9api.Processor;
@ -52,6 +59,8 @@ public class ConfigurationBuilder {
private URI repository;
private String description;
public ConfigurationBuilder author(final String authorName) {
this.author = authorName;
return this;
@ -84,6 +93,11 @@ public class ConfigurationBuilder {
return this;
}
public ConfigurationBuilder description(final String description) {
this.description = description;
return this;
}
/**
* Create a fallback scenario configuration.
*
@ -182,9 +196,29 @@ public class ConfigurationBuilder {
configuration.setDate(this.date);
configuration.setName(this.name);
configuration.setContentRepository(contentRepository);
configuration.getAdditionalParameters().put(Keys.SCENARIO_DEFINITION, createDefinition(configuration));
return (configuration);
}
private Scenarios createDefinition(final DefaultConfiguration configuration) {
final Scenarios s = new Scenarios();
s.setAuthor(configuration.getAuthor());
s.setDate(createTimestamp());
final DescriptionType d = new DescriptionType();
d.getPOrOlOrUl().add(new ObjectFactory().createDescriptionTypeP(StringUtils.defaultIfBlank(this.description, "")));
s.setDescription(d);
s.setName(configuration.getName());
s.getScenario().addAll(configuration.getScenarios().stream().map(Scenario::getConfiguration).collect(Collectors.toList()));
s.setNoScenarioReport(createNoScenarioReportType(configuration.getFallbackScenario()));
return s;
}
private static NoScenarioReportType createNoScenarioReportType(final Scenario fallbackScenario) {
final NoScenarioReportType no = new NoScenarioReportType();
no.setResource(fallbackScenario.getConfiguration().getCreateReport().getResource());
return no;
}
private Scenario initializeFallback(final ContentRepository contentRepository) {
if (this.fallbackBuilder == null) {
throw new IllegalStateException("No fallback configuration specified");

View file

@ -129,6 +129,8 @@ public class ConfigurationLoader {
configuration.setDate(def.getDate().toString());
configuration.setName(def.getName());
configuration.setContentRepository(contentRepository);
configuration.getAdditionalParameters().put(Keys.SCENARIOS_FILE, this.scenarioDefinition);
configuration.getAdditionalParameters().put(Keys.SCENARIO_DEFINITION, def);
return (configuration);
}

View file

@ -0,0 +1,20 @@
package de.kosit.validationtool.config;
/**
* Defines some keys used for supplying additional parameters internally.
*
* @author Andreas Penski
*/
public class Keys {
/**
* The actual scenarios file location as used with {@link ConfigurationLoader}.
*/
public static final String SCENARIOS_FILE = "scenarios_file";
/**
* The actual scenarios configuration represented as serializable tree. This either loaded from file or build manually
* via {@link ConfigurationBuilder}
*/
public static final String SCENARIO_DEFINITION = "scenario_definition";
}