Removing deprecated DMAAP library
[policy/drools-pdp.git] / feature-pooling-messages / src / main / java / org / onap / policy / drools / pooling / message / Message.java
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2018-2019, 2021 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2024 Nordix Foundation.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.drools.pooling.message;
23
24 import lombok.Getter;
25 import lombok.NoArgsConstructor;
26 import lombok.Setter;
27 import org.onap.policy.drools.pooling.PoolingFeatureException;
28
29 /**
30  * Messages sent on the internal topic.
31  */
32 @Getter
33 @Setter
34 @NoArgsConstructor
35 public class Message {
36
37     /**
38      * Name of the administrative channel.
39      */
40     public static final String ADMIN = "_admin";
41
42     /**
43      * Host that originated the message.
44      */
45     private String source;
46
47     /**
48      * Channel on which the message is routed, which is either the target host
49      * or {@link #ADMIN}.
50      */
51     private String channel;
52
53
54     /**
55      * Constructor.
56      *
57      * @param source host on which the message originated
58      */
59     public Message(String source) {
60         this.source = source;
61     }
62
63     /**
64      * Checks the validity of the message, including verifying that required
65      * fields are not missing.
66      *
67      * @throws PoolingFeatureException if the message is invalid
68      */
69     public void checkValidity() throws PoolingFeatureException {
70         if (source == null || source.isEmpty()) {
71             throw new PoolingFeatureException("missing message source");
72         }
73
74         if (channel == null || channel.isEmpty()) {
75             throw new PoolingFeatureException("missing message channel");
76         }
77     }
78
79 }