1 package cz.cuni.amis.pogamut.shady; 2 3 import cz.cuni.amis.pogamut.sposh.executor.IWorkExecutor; 4 5 /** 6 * Every node has multiple elemnts, binary tree has two, our if-then tree 7 * structure has a variable ammount. This class represents one of possible 8 * choices in the tree engine can select. 9 * 10 * @author Honza 11 */ 12 public class NodeElement { 13 14 private final IQuery priority; 15 private final IQuery trigger; 16 private final NodeCall call; 17 18 /** 19 * Create new node element. 20 * @param priority query that is used to determine priority of this element 21 * @param trigger trigger to determine if this node can be selected 22 * @param call what to call if the element has the highest priority in 23 * the node and trigger is not zero. 24 */ 25 NodeElement(IQuery priority, IQuery trigger, NodeCall call) { 26 this.priority = priority; 27 this.trigger = trigger; 28 this.call = call; 29 } 30 31 /** 32 * Get query that can be used to determine priority of this element. 33 * @return the priority query 34 */ 35 public IQuery getPriority() { 36 return priority; 37 } 38 39 /** 40 * Get query that can be used to determine if this element is eligible 41 * for execution (i.e. if procondition for using call are fulfilles). 42 * That alone is not sufficient, priority of this element must be highest 43 * in the node. 44 * 45 * @return the trigger query. 46 */ 47 public IQuery getTrigger() { 48 return trigger; 49 } 50 51 /** 52 * Get node call, that is either another node or action executed 53 * by {@link IWorkExecutor}. 54 * 55 * @return the call 56 */ 57 public NodeCall getCall() { 58 return call; 59 } 60 61 62 }