2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.distribution.reception.parameters;
23 import org.onap.policy.common.logging.flexlogger.FlexLogger;
24 import org.onap.policy.common.logging.flexlogger.Logger;
25 import org.onap.policy.common.parameters.GroupValidationResult;
26 import org.onap.policy.common.parameters.ParameterGroup;
27 import org.onap.policy.common.parameters.ValidationStatus;
30 * Class to hold all the policy decoder parameters.
32 * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
34 public class PolicyDecoderParameters implements ParameterGroup {
36 private static final Logger LOGGER = FlexLogger.getLogger(PolicyDecoderParameters.class);
38 private String decoderType;
39 private String decoderClassName;
42 * Constructor for instantiating PolicyDecoderParameters.
44 * @param decoderType the policy decoder type
45 * @param decoderClassName the policy decoder class name
47 public PolicyDecoderParameters(final String decoderType, final String decoderClassName) {
48 this.decoderType = decoderType;
49 this.decoderClassName = decoderClassName;
53 * Return the decoderType of this PolicyDecoderParameters instance.
55 * @return the decoderType
57 public String getDecoderType() {
62 * Return the decoderClassName of this PolicyDecoderParameters instance.
64 * @return the decoderClassName
66 public String getDecoderClassName() {
67 return decoderClassName;
71 public String getName() {
76 * Validate the policy decoder parameters.
80 public GroupValidationResult validate() {
81 final GroupValidationResult validationResult = new GroupValidationResult(this);
82 if (decoderType == null || decoderType.trim().length() == 0) {
83 validationResult.setResult("decoderType", ValidationStatus.INVALID, "must be a non-blank string");
85 if (decoderClassName == null || decoderClassName.trim().length() == 0) {
86 validationResult.setResult("decoderClassName", ValidationStatus.INVALID,
87 "must be a non-blank string containing full class name of the decoder");
89 validatePolicyDecoderClass(validationResult);
91 return validationResult;
94 private void validatePolicyDecoderClass(final GroupValidationResult validationResult) {
96 Class.forName(decoderClassName);
97 } catch (final ClassNotFoundException exp) {
98 LOGGER.error("policy decoder class not found in classpath", exp);
99 validationResult.setResult("decoderClassName", ValidationStatus.INVALID,
100 "policy decoder class not found in classpath");