bc8041a4615198aa19307974ed72cb9d2be63775
[policy/distribution.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2018 Ericsson. All rights reserved.
4  *  Copyright (C) 2019 Nordix Foundation.
5  *  Modifications Copyright (C) 2021 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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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  *
19  * SPDX-License-Identifier: Apache-2.0
20  * ============LICENSE_END=========================================================
21  */
22
23 package org.onap.policy.distribution.forwarding.parameters;
24
25 import lombok.Getter;
26 import org.onap.policy.common.parameters.BeanValidationResult;
27 import org.onap.policy.common.parameters.BeanValidator;
28 import org.onap.policy.common.parameters.ParameterGroup;
29 import org.onap.policy.common.parameters.annotations.ClassName;
30 import org.onap.policy.common.parameters.annotations.NotBlank;
31 import org.onap.policy.common.parameters.annotations.NotNull;
32
33 /**
34  * Class to hold all the policy forwarder parameters.
35  *
36  * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
37  */
38 @Getter
39 @NotBlank
40 public class PolicyForwarderParameters implements ParameterGroup {
41
42     private @NotNull String forwarderType;
43     private @NotNull @ClassName String forwarderClassName;
44     private String forwarderConfigurationName;
45
46     /**
47      * Constructor for instantiating PolicyForwarderParameters.
48      *
49      * @param forwarderType the policy forwarder type
50      * @param forwarderClassName the policy forwarder class name
51      * @param forwarderConfigurationName the name of the configuration for the policy forwarder
52      */
53     public PolicyForwarderParameters(final String forwarderType, final String forwarderClassName,
54             final String forwarderConfigurationName) {
55         this.forwarderType = forwarderType;
56         this.forwarderClassName = forwarderClassName;
57         this.forwarderConfigurationName = forwarderConfigurationName;
58     }
59
60     /**
61      * {@inheritDoc}.
62      */
63     @Override
64     public String getName() {
65         return getForwarderType();
66     }
67
68     /**
69      * {@inheritDoc}.
70      */
71     @Override
72     public void setName(final String name) {
73         this.forwarderType = name;
74     }
75
76     /**
77      * {@inheritDoc}.
78      */
79     @Override
80     public BeanValidationResult validate() {
81         return new BeanValidator().validateTop(getClass().getSimpleName(), this);
82     }
83 }