a43a146763e952fdc1c9732c67e536bc0b7da03f
[policy/drools-pdp.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2017-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.controller.internal;
22
23 import java.util.ArrayList;
24 import java.util.Collections;
25 import java.util.HashMap;
26 import java.util.List;
27 import java.util.Map;
28 import org.checkerframework.checker.nullness.qual.NonNull;
29 import org.onap.policy.common.endpoints.event.comm.TopicSink;
30 import org.onap.policy.drools.controller.DroolsController;
31 import org.onap.policy.drools.controller.DroolsControllerConstants;
32 import org.onap.policy.drools.core.PolicyContainer;
33 import org.onap.policy.drools.protocol.coders.TopicCoderFilterConfiguration;
34
35 /**
36  * no-op Drools Controller.
37  */
38 public class NullDroolsController implements DroolsController {
39
40     @Override
41     public boolean start() {
42         return false;
43     }
44
45     @Override
46     public boolean stop() {
47         return false;
48     }
49
50     @Override
51     public void shutdown() {
52         return;
53     }
54
55     @Override
56     public void halt() {
57         return;
58     }
59
60     @Override
61     public boolean isAlive() {
62         return false;
63     }
64
65     @Override
66     public boolean lock() {
67         return false;
68     }
69
70     @Override
71     public boolean unlock() {
72         return false;
73     }
74
75     @Override
76     public boolean isLocked() {
77         return false;
78     }
79
80     @Override
81     public String getGroupId() {
82         return DroolsControllerConstants.NO_GROUP_ID;
83     }
84
85     @Override
86     public String getArtifactId() {
87         return DroolsControllerConstants.NO_ARTIFACT_ID;
88     }
89
90     @Override
91     public String getVersion() {
92         return DroolsControllerConstants.NO_VERSION;
93     }
94
95     @Override
96     public List<String> getSessionNames() {
97         return new ArrayList<>();
98     }
99
100     @Override
101     public List<String> getCanonicalSessionNames() {
102         return new ArrayList<>();
103     }
104
105     @Override
106     public List<String> getBaseDomainNames() {
107         return Collections.emptyList();
108     }
109
110     @Override
111     public boolean offer(String topic, String event) {
112         return false;
113     }
114
115     @Override
116     public <T> boolean offer(T event) {
117         return false;
118     }
119
120     @Override
121     public boolean deliver(TopicSink sink, Object event) {
122         throw new IllegalStateException(makeInvokeMsg());
123     }
124
125     @Override
126     public Object[] getRecentSourceEvents() {
127         return new String[0];
128     }
129
130     @Override
131     public PolicyContainer getContainer() {
132         return null;
133     }
134
135     @Override
136     public String[] getRecentSinkEvents() {
137         return new String[0];
138     }
139
140     @Override
141     public boolean ownsCoder(Class<?> coderClass, int modelHash) {
142         throw new IllegalStateException(makeInvokeMsg());
143     }
144
145     @Override
146     public Class<?> fetchModelClass(String className) {
147         throw new IllegalArgumentException(makeInvokeMsg());
148     }
149
150     @Override
151     public boolean isBrained() {
152         return false;
153     }
154
155     @Override
156     public String toString() {
157         StringBuilder builder = new StringBuilder();
158         builder.append("NullDroolsController []");
159         return builder.toString();
160     }
161
162     @Override
163     public void updateToVersion(String newGroupId, String newArtifactId, String newVersion,
164             List<TopicCoderFilterConfiguration> decoderConfigurations,
165             List<TopicCoderFilterConfiguration> encoderConfigurations)
166                     throws LinkageError {
167         throw new IllegalArgumentException(makeInvokeMsg());
168     }
169
170     @Override
171     public Map<String, Integer> factClassNames(String sessionName) {
172         return new HashMap<>();
173     }
174
175     @Override
176     public long factCount(String sessionName) {
177         return 0;
178     }
179
180     @Override
181     public List<Object> facts(String sessionName, String className, boolean delete) {
182         return new ArrayList<>();
183     }
184
185     @Override
186     public <T> List<T> facts(@NonNull String sessionName, @NonNull Class<T> clazz) {
187         return new ArrayList<>();
188     }
189
190     @Override
191     public List<Object> factQuery(String sessionName, String queryName,
192             String queriedEntity,
193             boolean delete, Object... queryParams) {
194         return new ArrayList<>();
195     }
196
197     @Override
198     public <T> boolean delete(@NonNull String sessionName, @NonNull T fact) {
199         return false;
200     }
201
202     @Override
203     public <T> boolean delete(@NonNull T fact) {
204         return false;
205     }
206
207     @Override
208     public <T> boolean delete(@NonNull String sessionName, @NonNull Class<T> fact) {
209         return false;
210     }
211
212     @Override
213     public <T> boolean delete(@NonNull Class<T> fact) {
214         return false;
215     }
216
217     private String makeInvokeMsg() {
218         return this.getClass().getName() + " invoked";
219     }
220 }