Remove jackson from feature-pooling-dmaap
[policy/drools-pdp.git] / feature-pooling-dmaap / src / main / java / org / onap / policy / drools / pooling / message / Message.java
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2018-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
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.onap.policy.drools.pooling.message;
22
23 import org.onap.policy.drools.pooling.PoolingFeatureException;
24
25 /**
26  * Messages sent on the internal topic.
27  */
28 public class Message {
29
30     /**
31      * Name of the administrative channel.
32      */
33     public static final String ADMIN = "_admin";
34
35     /**
36      * Host that originated the message.
37      */
38     private String source;
39
40     /**
41      * Channel on which the message is routed, which is either the target host
42      * or {@link #ADMIN}.
43      */
44     private String channel;
45
46     /**
47      * Constructor.
48      */
49     public Message() {
50         super();
51     }
52
53     /**
54      * Constructor.
55      * 
56      * @param source host on which the message originated
57      */
58     public Message(String source) {
59         this.source = source;
60     }
61
62     public String getSource() {
63         return source;
64     }
65
66     public void setSource(String source) {
67         this.source = source;
68     }
69
70     public String getChannel() {
71         return channel;
72     }
73
74     public void setChannel(String channel) {
75         this.channel = channel;
76     }
77
78     /**
79      * Checks the validity of the message, including verifying that required
80      * fields are not missing.
81      * 
82      * @throws PoolingFeatureException if the message is invalid
83      */
84     public void checkValidity() throws PoolingFeatureException {
85         if (source == null || source.isEmpty()) {
86             throw new PoolingFeatureException("missing message source");
87         }
88
89         if (channel == null || channel.isEmpty()) {
90             throw new PoolingFeatureException("missing message channel");
91         }
92     }
93
94 }