mirror of
https://github.com/itplr-kosit/validator.git
synced 2026-05-26 01:05:38 +00:00
support multiple configuration
This commit is contained in:
parent
730d7fefe9
commit
2e6efdd16f
59 changed files with 1136 additions and 608 deletions
|
|
@ -68,8 +68,6 @@ public class ConfigurationBuilder {
|
|||
|
||||
private ResolvingMode resolvingMode = ResolvingMode.STRICT_RELATIVE;
|
||||
|
||||
private Processor processor;
|
||||
|
||||
private String author = "API";
|
||||
|
||||
private String date = LocalDate.now().toString();
|
||||
|
|
@ -269,12 +267,9 @@ public class ConfigurationBuilder {
|
|||
* @return a valid configuration
|
||||
* @throws IllegalStateException when the configuration is not valid/complete
|
||||
*/
|
||||
public Configuration build() {
|
||||
public Configuration build(final Processor processor) {
|
||||
final ResolvingConfigurationStrategy resolving = getResolvingConfigurationStrategy();
|
||||
if (this.processor == null) {
|
||||
this.processor = resolving.getProcessor();
|
||||
}
|
||||
final ContentRepository contentRepository = new ContentRepository(resolving, this.repository);
|
||||
final ContentRepository contentRepository = new ContentRepository(processor, resolving, this.repository);
|
||||
|
||||
final List<Scenario> list = initializeScenarios(contentRepository);
|
||||
final Scenario fallbackScenario = initializeFallback(contentRepository);
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ import de.kosit.validationtool.impl.ContentRepository;
|
|||
import de.kosit.validationtool.impl.ConversionService;
|
||||
import de.kosit.validationtool.impl.ResolvingMode;
|
||||
import de.kosit.validationtool.impl.Scenario;
|
||||
import de.kosit.validationtool.impl.SchemaProvider;
|
||||
import de.kosit.validationtool.impl.model.Result;
|
||||
import de.kosit.validationtool.impl.tasks.DocumentParseAction;
|
||||
import de.kosit.validationtool.impl.xml.RelativeUriResolver;
|
||||
|
|
@ -131,12 +132,11 @@ public class ConfigurationLoader {
|
|||
|
||||
}
|
||||
|
||||
public Configuration build() {
|
||||
public Configuration build(final Processor processor) {
|
||||
final ResolvingConfigurationStrategy resolving = getResolvingConfigurationStrategy();
|
||||
final Processor processor = resolving.getProcessor();
|
||||
final ContentRepository contentRepository = new ContentRepository(resolving, getScenarioRepository());
|
||||
final ContentRepository contentRepository = new ContentRepository(processor, resolving, getScenarioRepository());
|
||||
|
||||
final Scenarios def = loadScenarios(contentRepository.getScenarioSchema(), processor);
|
||||
final Scenarios def = loadScenarios(SchemaProvider.getScenarioSchema(), processor);
|
||||
final List<Scenario> scenarios = initializeScenarios(def, contentRepository);
|
||||
final Scenario fallbackScenario = createFallback(def, contentRepository);
|
||||
final DefaultConfiguration configuration = new DefaultConfiguration(scenarios, fallbackScenario);
|
||||
|
|
@ -164,10 +164,10 @@ public class ConfigurationLoader {
|
|||
}
|
||||
|
||||
private Scenarios loadScenarios(final Schema scenarioSchema, final Processor processor) {
|
||||
final ConversionService conversionService = new ConversionService();
|
||||
checkVersion(this.scenarioDefinition, processor);
|
||||
log.info("Loading scenarios from {}", this.scenarioDefinition);
|
||||
final CollectingErrorEventHandler handler = new CollectingErrorEventHandler();
|
||||
final ConversionService conversionService = new ConversionService();
|
||||
final Scenarios scenarios = conversionService.readXml(this.scenarioDefinition, Scenarios.class, scenarioSchema, handler);
|
||||
if (!handler.hasErrors()) {
|
||||
log.info("Loading scenario content from {}", this.getScenarioRepository());
|
||||
|
|
@ -185,6 +185,9 @@ public class ConfigurationLoader {
|
|||
s.setSchema(repository.createSchema(def));
|
||||
s.setSchematronValidations(repository.createSchematronTransformations(def));
|
||||
s.setReportTransformation(repository.createReportTransformation(def));
|
||||
s.setFactory(repository.getResolvingConfigurationStrategy());
|
||||
s.setUriResolver(repository.getResolver());
|
||||
s.setUnparsedTextURIResolver(repository.getUnparsedTextURIResolver());
|
||||
if (def.getAcceptMatch() != null) {
|
||||
s.setAcceptExecutable(repository.createAccepptExecutable(def));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@ public class FallbackBuilder implements Builder<Scenario> {
|
|||
object.setCreateReport(build.getObject().getLeft());
|
||||
final Scenario s = new Scenario(object);
|
||||
s.setFallback(true);
|
||||
s.setFactory(repository.getResolvingConfigurationStrategy());
|
||||
s.setUriResolver(repository.getResolver());
|
||||
s.setUnparsedTextURIResolver(repository.getUnparsedTextURIResolver());
|
||||
s.setReportTransformation(build.getObject().getRight());
|
||||
result = new Result<>(s);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -88,6 +88,9 @@ public class ScenarioBuilder implements Builder<Scenario> {
|
|||
buildReport(repository, errors, scenario);
|
||||
buildAccept(repository, errors, scenario);
|
||||
buildNamespaces(scenario);
|
||||
scenario.setFactory(repository.getResolvingConfigurationStrategy());
|
||||
scenario.setUriResolver(repository.getResolver());
|
||||
scenario.setUnparsedTextURIResolver(repository.getUnparsedTextURIResolver());
|
||||
return new Result<>(scenario, errors);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue