[POLICY-72] replace openecomp for drools-pdp
[policy/drools-pdp.git] / policy-endpoints / src / main / java / org / onap / policy / drools / event / comm / Topic.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * policy-endpoints
4  * ================================================================================
5  * Copyright (C) 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.onap.policy.drools.event.comm;
22
23 import java.util.List;
24
25 import org.onap.policy.drools.properties.Lockable;
26 import org.onap.policy.drools.properties.Startable;
27
28 /**
29  * Essential Topic Data
30  */
31 public interface Topic extends TopicRegisterable, Startable, Lockable {
32         
33         /**
34          * network logger
35          */
36         public static final String NETWORK_LOGGER = "network";
37         
38         /**
39          * Underlying Communication infrastructure Types
40          */
41         public enum CommInfrastructure {
42                 /**
43                  * UEB Communication Infrastructure
44                  */
45                 UEB,
46                 /**
47                  * DMAAP Communication Infrastructure
48                  */             
49                 DMAAP,
50                 /**
51                  * NOOP for internal use only
52                  */
53                 NOOP,
54                 /**
55                  * REST Communication Infrastructure
56                  */                             
57                 REST
58         }
59         
60         /**
61          * gets the topic name
62          * 
63          * @return topic name
64          */
65         public String getTopic();
66         
67         /**
68          * gets the communication infrastructure type
69          * @return
70          */
71         public CommInfrastructure getTopicCommInfrastructure();
72         
73         /**
74          * return list of servers
75          * @return bus servers
76          */
77         public List<String> getServers();       
78
79         /**
80          * get the more recent events in this topic entity
81          * 
82          * @return list of most recent events
83          */
84         public String[] getRecentEvents();
85
86 }