01: package org.drools;
02:
03: import java.util.Collection;
04: import java.util.List;
05:
06: import org.drools.event.AgendaEventListener;
07: import org.drools.event.RuleFlowEventListener;
08: import org.drools.event.WorkingMemoryEventListener;
09: import org.drools.spi.AgendaFilter;
10: import org.drools.spi.GlobalResolver;
11:
12: /**
13: * This represents a working memory session where state is not kept between
14: * invocations.
15: * This is typically used for "decision services" where the rules are
16: * provided all the data in one hit, and a conclusion reached by the engine.
17: * (there is no accumulation of facts/knowledge - each invocation is on a fresh session).
18: *
19: * Care should be used when using the async versions of the methods, consult the javadoc for
20: * the specific information.
21: */
22: public interface StatelessSession extends EventManager {
23:
24: void setAgendaFilter(AgendaFilter agendaFilter);
25:
26: /**
27: * Delegate used to resolve any global names not found in the global map.
28: * @param globalResolver
29: */
30: void setGlobalResolver(GlobalResolver globalResolver);
31:
32: void setGlobal(String identifer, Object value);
33:
34: /**
35: * Insert a single fact, an fire the rules, returning when finished.
36: */
37: void execute(Object object);
38:
39: /**
40: * Insert an array of facts, an fire the rules, returning when finished.
41: * This will assert the list of facts as SEPARATE facts to the engine
42: * (NOT an array).
43: */
44: void execute(Object[] array);
45:
46: /**
47: * Insert a List of facts, an fire the rules, returning when finished.
48: * This will assert the list of facts as SEPARATE facts to the engine
49: * (NOT as a List).
50: */
51: void execute(Collection collection);
52:
53: /**
54: * This will assert the object in the background. This is
55: * "send and forget" execution.
56: */
57: void asyncExecute(Object object);
58:
59: /**
60: * This will assert the object array (as SEPARATE facts) in the background. This is
61: * "send and forget" execution.
62: */
63: void asyncExecute(Object[] array);
64:
65: /**
66: * This will assert the object List (as SEPARATE facts) in the background. This is
67: * "send and forget" execution.
68: */
69: void asyncExecute(Collection collection);
70:
71: /**
72: * Similar to the normal execute method, but this will return
73: * "results".
74: */
75: StatelessSessionResult executeWithResults(Object object);
76:
77: /**
78: * Similar to the normal execute method, but this will return
79: * "results".
80: */
81: StatelessSessionResult executeWithResults(Object[] array);
82:
83: /**
84: * Similar to the normal execute method, but this will return
85: * "results".
86: */
87: StatelessSessionResult executeWithResults(Collection collection);
88: }
|