aboutsummaryrefslogtreecommitdiffstats
path: root/dcae-analytics-cdap-plugins/src/main/java/org/openecomp/dcae/apod/analytics/cdap/plugins/domain/config/dmaap/DMaaPMRSourcePluginConfig.java
blob: d3e966b643784e7dad7684b1d218550eda012757 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*
 * ===============================LICENSE_START======================================
 *  dcae-analytics
 * ================================================================================
 *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *          http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  ============================LICENSE_END===========================================
 */

package org.openecomp.dcae.apod.analytics.cdap.plugins.domain.config.dmaap;

import co.cask.cdap.api.annotation.Description;
import co.cask.cdap.api.annotation.Macro;
import com.google.common.base.Objects;

import javax.annotation.Nullable;

/**
 * DMaaP MR Subscriber Config
 * <p>
 * @author Rajiv Singla . Creation Date: 1/17/2017.
 */
public class DMaaPMRSourcePluginConfig extends BaseDMaaPMRPluginConfig {

    private static final long serialVersionUID = 1L;

    @Description("DMaaP MR Polling Interval in MS")
    @Macro
    protected Integer pollingInterval;

    @Description("DMaaP Message Router Subscriber Consumer ID. Defaults to some randomly created userID")
    @Nullable
    @Macro
    protected String consumerId;

    @Description("DMaaP Message Router Subscriber Consumer Group. Defaults to some randomly created user Group")
    @Nullable
    @Macro
    protected String consumerGroup;

    @Description("DMaaP Message Router Subscriber Timeout in MS. Defaults to no timeout")
    @Nullable
    @Macro
    protected Integer timeoutMS;

    @Description("DMaaP Message Router Subscriber Message Limit. Defaults to no message limit")
    @Nullable
    @Macro
    protected Integer messageLimit;

    // Required No Arg constructor
    public DMaaPMRSourcePluginConfig() {
        this(null, null, null, 0);
    }

    public DMaaPMRSourcePluginConfig(String referenceName, String hostName, String topicName, Integer pollingInterval) {
        super(referenceName, hostName, topicName);
        this.pollingInterval = pollingInterval;
    }

    /**
     * DMaaP MR Subscriber Polling interval
     *
     * @return DMaaP MR Subscriber Polling interval
     */
    public Integer getPollingInterval() {
        return pollingInterval;
    }

    /**
     * DMaaP MR Subscriber Consumer ID
     *
     * @return DMaaP MR Subscriber Consumer ID
     */
    @Nullable
    public String getConsumerId() {
        return consumerId;
    }

    /**
     * DMaaP MR Subscriber Consumer Group
     *
     * @return DMaaP MR Subscriber Consumer Group
     */
    @Nullable
    public String getConsumerGroup() {
        return consumerGroup;
    }

    /**
     * DMaaP MR Subscriber Timeout in MS
     *
     * @return DMaaP MR Subscriber Timeout in MS
     */
    @Nullable
    public Integer getTimeoutMS() {
        return timeoutMS;
    }

    /**
     * DMaaP MR Subscriber message limit
     *
     * @return DMaaP MR Subscriber Message limit
     */
    @Nullable
    public Integer getMessageLimit() {
        return messageLimit;
    }


    @Override
    public String toString() {
        return Objects.toStringHelper(this)
                .add("super", super.toString())
                .add("pollingInterval", pollingInterval)
                .add("consumerId", consumerId)
                .add("consumerGroup", consumerGroup)
                .add("timeoutMS", timeoutMS)
                .add("messageLimit", messageLimit)
                .toString();
    }

}