Initial TCA commit into DCAEGEN2
[dcaegen2/analytics/tca.git] / dcae-analytics-cdap-tca / src / main / java / org / openecomp / dcae / apod / analytics / cdap / tca / utils / AppPreferencesToSubscriberConfigMapper.java
1 /*
2  * ===============================LICENSE_START======================================
3  *  dcae-analytics
4  * ================================================================================
5  *    Copyright © 2017 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  *  ============================LICENSE_END===========================================
19  */
20
21 package org.openecomp.dcae.apod.analytics.cdap.tca.utils;
22
23 import com.google.common.base.Function;
24 import org.openecomp.dcae.apod.analytics.cdap.tca.settings.TCAAppPreferences;
25 import org.openecomp.dcae.apod.analytics.dmaap.domain.config.DMaaPMRSubscriberConfig;
26
27 import javax.annotation.Nonnull;
28
29 import static org.openecomp.dcae.apod.analytics.cdap.common.utils.ValidationUtils.isPresent;
30
31
32 /**
33  * Function which translates {@link TCAAppPreferences} to {@link DMaaPMRSubscriberConfig}
34  *
35  * @author Rajiv Singla . Creation Date: 11/17/2016.
36  */
37 public class AppPreferencesToSubscriberConfigMapper implements Function<TCAAppPreferences, DMaaPMRSubscriberConfig> {
38
39     /**
40      * Factory Method to converts {@link TCAAppPreferences} to {@link DMaaPMRSubscriberConfig} object
41      *
42      * @param tcaAppPreferences tca app preferences
43      * @return DMaaP Subscriber Config
44      */
45     public static DMaaPMRSubscriberConfig map(final TCAAppPreferences tcaAppPreferences) {
46         return new AppPreferencesToSubscriberConfigMapper().apply(tcaAppPreferences);
47     }
48
49     /**
50      * Implementation to convert {@link TCAAppPreferences} to {@link DMaaPMRSubscriberConfig} object
51      *
52      * @param tcaAppPreferences tca app preferences
53      *
54      * @return DMaaP Subscriber Config
55      */
56     @Nonnull
57     @Override
58     public DMaaPMRSubscriberConfig apply(@Nonnull TCAAppPreferences tcaAppPreferences) {
59
60         // Create a new subscriber settings builder
61         final DMaaPMRSubscriberConfig.Builder subscriberConfigBuilder = new DMaaPMRSubscriberConfig.Builder(
62                 tcaAppPreferences.getSubscriberHostName(), tcaAppPreferences.getSubscriberTopicName());
63
64         // Setup up any optional subscriber parameters if they are present
65         final Integer subscriberHostPortNumber = tcaAppPreferences.getSubscriberHostPort();
66         if (subscriberHostPortNumber != null) {
67             subscriberConfigBuilder.setPortNumber(subscriberHostPortNumber);
68         }
69
70         final String subscriberProtocol = tcaAppPreferences.getSubscriberProtocol();
71         if (isPresent(subscriberProtocol)) {
72             subscriberConfigBuilder.setProtocol(subscriberProtocol);
73         }
74
75         final String subscriberUserName = tcaAppPreferences.getSubscriberUserName();
76         if (isPresent(subscriberUserName)) {
77             subscriberConfigBuilder.setUserName(subscriberUserName);
78         }
79
80         final String subscriberUserPassword = tcaAppPreferences.getSubscriberUserPassword();
81         if (isPresent(subscriberUserPassword)) {
82             subscriberConfigBuilder.setUserPassword(subscriberUserPassword);
83         }
84
85         final String subscriberContentType = tcaAppPreferences.getSubscriberContentType();
86         if (isPresent(subscriberContentType)) {
87             subscriberConfigBuilder.setContentType(subscriberContentType);
88         }
89
90         final String subscriberConsumerId = tcaAppPreferences.getSubscriberConsumerId();
91         if (isPresent(subscriberConsumerId)) {
92             subscriberConfigBuilder.setConsumerId(subscriberConsumerId);
93         }
94
95         final String subscriberConsumerGroup = tcaAppPreferences.getSubscriberConsumerGroup();
96         if (isPresent(subscriberConsumerGroup)) {
97             subscriberConfigBuilder.setConsumerGroup(subscriberConsumerGroup);
98         }
99
100         final Integer subscriberTimeoutMS = tcaAppPreferences.getSubscriberTimeoutMS();
101         if (subscriberTimeoutMS != null) {
102             subscriberConfigBuilder.setTimeoutMS(subscriberTimeoutMS);
103         }
104         final Integer subscriberMessageLimit = tcaAppPreferences.getSubscriberMessageLimit();
105         if (subscriberMessageLimit != null) {
106             subscriberConfigBuilder.setMessageLimit(subscriberMessageLimit);
107         }
108
109         // return Subscriber settings
110         return subscriberConfigBuilder.build();
111
112     }
113 }