diff options
author | Harald Musum <musum@oath.com> | 2018-07-04 13:39:23 +0200 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-07-04 13:39:23 +0200 |
commit | 3b4e76bc05218ed42727db5371416b76710e1567 (patch) | |
tree | 362acfda5f0440c6e1f768bf2344a70aaf3f3025 /config-model-api | |
parent | ec7dedf2f618b2e3aeb8019877565c1bfbec6047 (diff) |
Use new ValidationParameter class instead of booleans
Diffstat (limited to 'config-model-api')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ModelFactory.java | 23 | ||||
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ValidationParameters.java | 50 |
2 files changed, 70 insertions, 3 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelFactory.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelFactory.java index 572c470b6aa..feccabf47b0 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelFactory.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelFactory.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.model.api; +import com.yahoo.config.model.api.ValidationParameters.IgnoreValidationErrors; import com.yahoo.config.provision.Version; /** @@ -17,8 +18,8 @@ public interface ModelFactory { /** * Creates an instance of a {@link Model}. The resulting instance will be used to serve config. No model - * validation will be done, calling this method assumes that {@link #createAndValidateModel} has already - * been called at some point for this model. + * validation will be done, calling this method assumes that{@link #createAndValidateModel(ModelContext, ValidationParameters)} + * has already been called at some point for this model. * * @param modelContext an instance of {@link ModelContext}, containing dependencies for creating a {@link Model}. * @return a {@link Model} instance. @@ -32,7 +33,23 @@ public interface ModelFactory { * @param modelContext an instance of {@link ModelContext}, containing dependencies for creating a {@link Model} * @param ignoreValidationErrors true if validation errors should not trigger exceptions * @return a {@link ModelCreateResult} instance. + * @deprecated use {@link #createAndValidateModel(ModelContext, ValidationParameters)} */ - ModelCreateResult createAndValidateModel(ModelContext modelContext, boolean ignoreValidationErrors); + @Deprecated + // TODO: Remove when 6.258 is latest version in use + default ModelCreateResult createAndValidateModel(ModelContext modelContext, boolean ignoreValidationErrors) { + return createAndValidateModel(modelContext, new ValidationParameters(ignoreValidationErrors + ? IgnoreValidationErrors.FALSE + : IgnoreValidationErrors.TRUE)); + } + /** + * Creates an instance of a {@link Model}. The resulting instance will be used to serve config. Any validation + * of a {@link Model} and the {@link ModelContext} can be done in this method. + * + * @param modelContext an instance of {@link ModelContext}, containing dependencies for creating a {@link Model} + * @param validationParameters validation parameters + * @return a {@link ModelCreateResult} instance. + */ + ModelCreateResult createAndValidateModel(ModelContext modelContext, ValidationParameters validationParameters); } diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ValidationParameters.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ValidationParameters.java new file mode 100644 index 00000000000..6e081d0d668 --- /dev/null +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ValidationParameters.java @@ -0,0 +1,50 @@ +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.model.api; + +/** + * @author hmusum + */ +public class ValidationParameters { + + public enum IgnoreValidationErrors {TRUE, FALSE} + + public enum FailOnIncompatibleChange {TRUE, FALSE} //Note: Default is FALSE + + public enum CheckRouting {TRUE, FALSE} + + private final IgnoreValidationErrors ignoreValidationErrors; + private final FailOnIncompatibleChange failOnIncompatibleChange; + private final CheckRouting checkRouting; + + public ValidationParameters() { + this(IgnoreValidationErrors.FALSE); + } + + public ValidationParameters(IgnoreValidationErrors ignoreValidationErrors) { + this(ignoreValidationErrors, FailOnIncompatibleChange.FALSE, CheckRouting.TRUE); + } + + public ValidationParameters(CheckRouting checkRouting) { + this(IgnoreValidationErrors.FALSE, FailOnIncompatibleChange.FALSE, checkRouting); + } + + public ValidationParameters(IgnoreValidationErrors ignoreValidationErrors, + FailOnIncompatibleChange failOnIncompatibleChange, + CheckRouting checkRouting) { + this.ignoreValidationErrors = ignoreValidationErrors; + this.failOnIncompatibleChange = failOnIncompatibleChange; + this.checkRouting = checkRouting; + } + + public boolean ignoreValidationErrors() { + return ignoreValidationErrors == IgnoreValidationErrors.TRUE; + } + + public boolean failOnIncompatibleChanges() { + return failOnIncompatibleChange == FailOnIncompatibleChange.TRUE; + } + + public boolean checkRouting() { + return checkRouting == CheckRouting.TRUE; + } +} |