diff options
Diffstat (limited to 'policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java')
-rw-r--r-- | policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java | 371 |
1 files changed, 186 insertions, 185 deletions
diff --git a/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java b/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java index bdb95e77..7f68930e 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java +++ b/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java @@ -23,194 +23,195 @@ package org.onap.policy.drools.controller; import java.util.List; import java.util.Map; +import org.onap.policy.common.capabilities.Lockable; +import org.onap.policy.common.capabilities.Startable; +import org.onap.policy.common.endpoints.event.comm.TopicSink; import org.onap.policy.drools.core.PolicyContainer; -import org.onap.policy.drools.event.comm.TopicSink; -import org.onap.policy.drools.properties.Lockable; -import org.onap.policy.drools.properties.Startable; import org.onap.policy.drools.protocol.coders.TopicCoderFilterConfiguration; /** - * Drools Controller is the abstractions that wraps the - * drools layer (policy-core) + * Drools Controller is the abstractions that wraps the drools layer (policy-core) */ -public interface DroolsController extends Startable, Lockable { - - /** - * No Group ID identifier - */ - public static final String NO_GROUP_ID = "NO-GROUP-ID"; - - /** - * No Artifact ID identifier - */ - public static final String NO_ARTIFACT_ID = "NO-ARTIFACT-ID"; - - /** - * No version identifier - */ - public static final String NO_VERSION = "NO-VERSION"; - - /** - * Factory to track and manage drools controllers - */ - public static final DroolsControllerFactory factory = - new IndexedDroolsControllerFactory(); - - /** - * get group id - * @return group id - */ - public String getGroupId(); - - /** - * get artifact id - * @return artifact id - */ - public String getArtifactId(); - - /** - * get version - * @return version - */ - public String getVersion(); - - /** - * return the policy session names - * - * @return policy session - */ - public List<String> getSessionNames(); - - /** - * return the policy full session names - * - * @return policy session - */ - public List<String> getCanonicalSessionNames(); - - /** - * offers an event to this controller for processing - * - * @param topic topic associated with the event - * @param event the event - * - * @return true if the operation was successful - */ - public boolean offer(String topic, String event); - - /** - * delivers "event" to "sink" - * - * @param sink destination - * @param event - * @return true if successful, false if a failure has occurred. - * @throws IllegalArgumentException when invalid or insufficient - * properties are provided - * @throws IllegalStateException when the engine is in a state where - * this operation is not permitted (ie. locked or stopped). - * @throws UnsupportedOperationException when the engine cannot deliver due - * to the functionality missing (ie. communication infrastructure - * not supported. - */ - public boolean deliver(TopicSink sink, Object event); - - /** - * - * @return the most recent received events - */ - public Object[] getRecentSourceEvents(); - - /** - * - * @return the most recent delivered events - */ - public String[] getRecentSinkEvents(); - - /** - * @return the underlying policy container - */ - public PolicyContainer getContainer(); - - /** - * Supports this encoder? - * - * @param encodedObject - * @return - */ - public boolean ownsCoder(Class<? extends Object> coderClass, int modelHash); - - /** - * fetches a class from the model - * - * @param className the class to fetch - * @return the actual class object, or null if not found - */ - public Class<?> fetchModelClass(String className); - - /** - * is this controller Smart? - */ - public boolean isBrained(); - - /** - * update the new version of the maven jar rules file - * - * @param newGroupId - new group id - * @param newArtifactId - new artifact id - * @param newVersion - new version - * @param decoderConfigurations - decoder configurations - * @param encoderConfigurations - encoder configurations - * - * @throws Exception from within drools libraries - * @throws LinkageError from within drools libraries - * @throws ArgumentException bad parameter passed in - */ - public void updateToVersion(String newGroupId, String newArtifactId, String newVersion, - List<TopicCoderFilterConfiguration> decoderConfigurations, - List<TopicCoderFilterConfiguration> encoderConfigurations) - throws LinkageError; - - /** - * gets the classnames of facts as well as the current count - * @param sessionName the session name - * @return map of class to count - */ - public Map<String,Integer> factClassNames(String sessionName); - - /** - * gets the count of facts for a given session - * @param sessionName the session name - * @return the fact count - * @throws IllegalArgumentException - */ - public long factCount(String sessionName); - - /** - * gets all the facts of a given class for a given session - * - * @param sessionName the session identifier - * @param className the class type - * @param delete retract from drools the results of the query? - * @return the list of facts returned by the query - */ - public List<Object> facts(String sessionName, String className, boolean delete); - - /** - * gets the facts associated with a query for a give session for a given queried entity - * - * @param sessionName the session - * @param queryName the query identifier - * @param queriedEntity the queried entity - * @param delete retract from drools the results of the query? - * @param queryParams query parameters - * @return list of facts returned by the query - */ - public List<Object> factQuery(String sessionName, String queryName, String queriedEntity, - boolean delete, Object... queryParams); - - /** - * halts and permanently releases all resources - * @throws IllegalStateException - */ - public void halt(); +public interface DroolsController extends Startable, Lockable { + + /** + * No Group ID identifier + */ + public static final String NO_GROUP_ID = "NO-GROUP-ID"; + + /** + * No Artifact ID identifier + */ + public static final String NO_ARTIFACT_ID = "NO-ARTIFACT-ID"; + + /** + * No version identifier + */ + public static final String NO_VERSION = "NO-VERSION"; + + /** + * Factory to track and manage drools controllers + */ + public static final DroolsControllerFactory factory = new IndexedDroolsControllerFactory(); + + /** + * get group id + * + * @return group id + */ + public String getGroupId(); + + /** + * get artifact id + * + * @return artifact id + */ + public String getArtifactId(); + + /** + * get version + * + * @return version + */ + public String getVersion(); + + /** + * return the policy session names + * + * @return policy session + */ + public List<String> getSessionNames(); + + /** + * return the policy full session names + * + * @return policy session + */ + public List<String> getCanonicalSessionNames(); + + /** + * offers an event to this controller for processing + * + * @param topic topic associated with the event + * @param event the event + * + * @return true if the operation was successful + */ + public boolean offer(String topic, String event); + + /** + * delivers "event" to "sink" + * + * @param sink destination + * @param event + * @return true if successful, false if a failure has occurred. + * @throws IllegalArgumentException when invalid or insufficient properties are provided + * @throws IllegalStateException when the engine is in a state where this operation is not + * permitted (ie. locked or stopped). + * @throws UnsupportedOperationException when the engine cannot deliver due to the functionality + * missing (ie. communication infrastructure not supported. + */ + public boolean deliver(TopicSink sink, Object event); + + /** + * + * @return the most recent received events + */ + public Object[] getRecentSourceEvents(); + + /** + * + * @return the most recent delivered events + */ + public String[] getRecentSinkEvents(); + + /** + * @return the underlying policy container + */ + public PolicyContainer getContainer(); + + /** + * Supports this encoder? + * + * @param encodedObject + * @return + */ + public boolean ownsCoder(Class<? extends Object> coderClass, int modelHash); + + /** + * fetches a class from the model + * + * @param className the class to fetch + * @return the actual class object, or null if not found + */ + public Class<?> fetchModelClass(String className); + + /** + * is this controller Smart? + */ + public boolean isBrained(); + + /** + * update the new version of the maven jar rules file + * + * @param newGroupId - new group id + * @param newArtifactId - new artifact id + * @param newVersion - new version + * @param decoderConfigurations - decoder configurations + * @param encoderConfigurations - encoder configurations + * + * @throws Exception from within drools libraries + * @throws LinkageError from within drools libraries + * @throws ArgumentException bad parameter passed in + */ + public void updateToVersion(String newGroupId, String newArtifactId, String newVersion, + List<TopicCoderFilterConfiguration> decoderConfigurations, + List<TopicCoderFilterConfiguration> encoderConfigurations) throws LinkageError; + + /** + * gets the classnames of facts as well as the current count + * + * @param sessionName the session name + * @return map of class to count + */ + public Map<String, Integer> factClassNames(String sessionName); + + /** + * gets the count of facts for a given session + * + * @param sessionName the session name + * @return the fact count + * @throws IllegalArgumentException + */ + public long factCount(String sessionName); + + /** + * gets all the facts of a given class for a given session + * + * @param sessionName the session identifier + * @param className the class type + * @param delete retract from drools the results of the query? + * @return the list of facts returned by the query + */ + public List<Object> facts(String sessionName, String className, boolean delete); + + /** + * gets the facts associated with a query for a give session for a given queried entity + * + * @param sessionName the session + * @param queryName the query identifier + * @param queriedEntity the queried entity + * @param delete retract from drools the results of the query? + * @param queryParams query parameters + * @return list of facts returned by the query + */ + public List<Object> factQuery(String sessionName, String queryName, String queriedEntity, boolean delete, + Object... queryParams); + + /** + * halts and permanently releases all resources + * + * @throws IllegalStateException + */ + public void halt(); } |