01 package dk.deepthought.sidious.supportsystem;
02 
03 import java.util.Collection;
04 
05 import dk.deepthought.sidious.planner.Plan;
06 import dk.deepthought.sidious.rules.Rule;
07 
08 /**
09  * Classes implementing this interface are allowed to request plans.
10  
11  @author Deepthought
12  
13  */
14 public interface PlanRequester {
15 
16     /**
17      * Returns the adjustables associated with this plan requester.
18      
19      @return all adjustables associated with this
20      */
21     public Collection<Adjustable> getAdjustables();
22 
23     /**
24      * Returns the rules associated with this plan requester.
25      
26      @return all rules associated with this
27      */
28     public Collection<Rule> getRules();
29 
30     /**
31      * Returns the current state of the system from the point of view of this
32      * plan requester.
33      
34      @return current state
35      */
36     public State getState();
37 
38     /**
39      * Returns the id of this plan requester.
40      
41      @return the id
42      */
43     public SuperLinkID getID();
44 
45     /**
46      * Sets the plan on this requester.
47      
48      @param plan
49      *            the plan
50      */
51     public void setPlan(Plan plan);
52 
53 }