2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 package org.openecomp.sdc.validation.services;
22 import org.apache.commons.collections4.CollectionUtils;
23 import org.onap.config.api.Configuration;
24 import org.onap.config.api.ConfigurationManager;
25 import org.openecomp.core.utilities.CommonMethods;
26 import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
27 import org.openecomp.sdc.logging.api.Logger;
28 import org.openecomp.sdc.logging.api.LoggerFactory;
29 import org.openecomp.sdc.validation.Validator;
30 import org.openecomp.sdc.validation.type.ConfigConstants;
33 import java.util.ArrayList;
34 import java.util.List;
37 public class ValidationFactory {
38 private static final List<Validator> validators = new ArrayList<>();
39 private static Map<String, ImplementationConfiguration> validationImplMap;
40 private static Logger logger =
41 (Logger) LoggerFactory.getLogger(ValidationFactory.class);
42 private static File file;
46 Configuration config = ConfigurationManager.lookup();
47 validationImplMap = config.populateMap(ConfigConstants.Namespace,
48 ConfigConstants.Validator_Impl_Key, ImplementationConfiguration.class);
49 validationImplMap.putAll(config.populateMap(ConfigConstants.Mandatory_Namespace,
50 ConfigConstants.Validator_Impl_Key, ImplementationConfiguration.class));
54 * Initialize a validator.
56 public static List<Validator> getValidators() {
57 synchronized (validators) {
58 if (CollectionUtils.isEmpty(validators)) {
59 validationImplMap.values().stream()
60 .filter(implementationConfiguration -> implementationConfiguration
61 .isEnable()).forEachOrdered(implementationConfiguration -> validators.add
62 (cerateValidatorImpl(implementationConfiguration)));
68 private static Validator cerateValidatorImpl(ImplementationConfiguration validatorConf) {
69 Validator validator = null;
71 CommonMethods.newInstance(validatorConf.getImplementationClass(), Validator.class);
72 validator.init(validatorConf.getProperties());
74 logger.debug("created validator" + validatorConf.getImplementationClass());