/** * */ package org.springmodules.jsr94.rulesource; import java.rmi.RemoteException; import java.util.Map; import javax.rules.RuleExecutionSetNotFoundException; import javax.rules.RuleSession; import javax.rules.RuleSessionCreateException; import javax.rules.RuleSessionTypeUnsupportedException; /** * The RuleSource interface creates a RuleSession subclass implementation. * * @author janm */ public interface RuleSource { /** * Gets a RuleSession implementation for the specified bindUri, properties and type * * @param uri The ruleset uri * @param properties The properties for the session * @param type The session type * @return RuleSession * @throws RuleExecutionSetNotFoundException If the bindUri points to a non-registered ruleExecutionSet * @throws RemoteException If an remoting error is encountered * @throws RuleSessionTypeUnsupportedException If the specified RuleSession type cannot be created * @throws RuleSessionCreateException If the RuleSession cannot be created * @see javax.rules.RuleRuntime#STATEFUL_SESSION_TYPE * @see javax.rules.RuleRuntime#STATELESS_SESSION_TYPE */ RuleSession createSession(String uri, Map properties, int type) throws RuleExecutionSetNotFoundException, RemoteException, RuleSessionTypeUnsupportedException, RuleSessionCreateException; }