From 27d388563cdc48a1fc19ca5ca99a0482e6834db5 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 10 Jul 2019 16:39:28 -0400 Subject: Fix checkstyle issues in policy-core Also deleted the checkstyle suppression file. Change-Id: I93e9f9154b614b56f7826ec978e1a99bd9369348 Issue-ID: POLICY-1907 Signed-off-by: Jim Hahn --- .../drools/core/PolicySessionFeatureApi.java | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureApi.java (limited to 'policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureApi.java') diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureApi.java b/policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureApi.java new file mode 100644 index 00000000..3d259954 --- /dev/null +++ b/policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureApi.java @@ -0,0 +1,102 @@ +/*- + * ============LICENSE_START======================================================= + * policy-core + * ================================================================================ + * Copyright (C) 2017-2019 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.onap.policy.drools.core; + +import org.kie.api.runtime.KieSession; +import org.onap.policy.common.utils.services.OrderedService; +import org.onap.policy.common.utils.services.OrderedServiceImpl; + +/** + * This interface provides a way to invoke optional features at various + * points in the code. At appropriate points in the + * application, the code iterates through this list, invoking these optional + * methods. Most of the methods here are notification only -- these tend to + * return a 'void' value. In other cases, such as 'activatePolicySession', + * may + */ +public interface PolicySessionFeatureApi extends OrderedService { + /** + * 'FeatureAPI.impl.getList()' returns an ordered list of objects + * implementing the 'FeatureAPI' interface. + */ + public static OrderedServiceImpl impl = + new OrderedServiceImpl<>(PolicySessionFeatureApi.class); + + /** + * This method is called during initialization at a point right after + * 'PolicyContainer' initialization has completed. + * + * @param args standard 'main' arguments, which are currently ignored + * @param configDir the relative directory containing configuration files + */ + public default void globalInit(String[] args, String configDir) {} + + /** + * This method is used to create a 'KieSession' as part of a + * 'PolicyContainer'. The caller of this method will iterate over the + * implementers of this interface until one returns a non-null value. + * + * @param policyContainer the 'PolicyContainer' instance containing this + * session + * @param name the name of the KieSession (which is also the name of + * the associated PolicySession) + * @param kieBaseName the name of the 'KieBase' instance containing + * this session + * @return a new KieSession, if one was created, or 'null' if not + * (this depends on the capabilities and state of the object implementing + * this interface) + */ + public default KieSession activatePolicySession(PolicyContainer policyContainer, String name, String kieBaseName) { + return null; + } + + /** + * This method is called after a new 'PolicySession' has been initialized, + * and linked to the 'PolicyContainer'. + * + * @param policySession the new 'PolicySession' instance + */ + public default void newPolicySession(PolicySession policySession) {} + + /** + * This method is called to select the 'ThreadModel' instance associated + * with a 'PolicySession' instance. + */ + public default PolicySession.ThreadModel selectThreadModel(PolicySession session) { + return null; + } + + /** + * This method is called after 'KieSession.dispose()' is called. + * + * @param policySession the 'PolicySession' object that wrapped the + * 'KieSession' + */ + public default void disposeKieSession(PolicySession policySession) {} + + /** + * This method is called after 'KieSession.destroy()' is called. + * + * @param policySession the 'PolicySession' object that wrapped the + * 'KieSession' + */ + public default void destroyKieSession(PolicySession policySession) {} +} -- cgit 1.2.3-korg