[8780cbec] | 1 | package edu.stanford.peer.rbtm.engine; |
---|
| 2 | |
---|
| 3 | import java.util.*; |
---|
| 4 | |
---|
| 5 | import edu.stanford.peer.rbtm.credential.*; |
---|
| 6 | import edu.stanford.peer.rbtm.util.*; |
---|
| 7 | |
---|
| 8 | /* |
---|
| 9 | */ |
---|
| 10 | public interface ProofNode extends BackwardSolutionListener, ForwardSolutionListener |
---|
| 11 | { |
---|
| 12 | EntityExpression getRoleExp(); |
---|
| 13 | |
---|
| 14 | void addBackwardListener(BackwardSolutionListener sl); |
---|
| 15 | |
---|
| 16 | /** |
---|
| 17 | * Process this node for search in the backward direction. The |
---|
| 18 | * implementation of this method should find all nodes that can reach |
---|
| 19 | * this node directly and do appropriate things. |
---|
| 20 | */ |
---|
| 21 | void backwardProcess(); |
---|
| 22 | |
---|
| 23 | void invalidateForward(); |
---|
| 24 | |
---|
| 25 | void invalidateBackward(); |
---|
| 26 | |
---|
| 27 | void addForwardListener(ForwardSolutionListener sl); |
---|
| 28 | |
---|
| 29 | void forwardProcess(); |
---|
| 30 | |
---|
| 31 | /** |
---|
| 32 | * add a node as a parent to this node |
---|
| 33 | * @param node: the parent node |
---|
| 34 | */ |
---|
| 35 | void addParent(ProofNode node, Object evidence); |
---|
| 36 | |
---|
| 37 | void addChild(ProofNode node, Object evidence); |
---|
| 38 | |
---|
| 39 | ResultEvidenceMap getForwardSolutions(); |
---|
| 40 | |
---|
| 41 | ResultEvidenceMap getBackwardSolutions(); |
---|
| 42 | |
---|
| 43 | ResultEvidenceMap getParents(); |
---|
| 44 | |
---|
| 45 | ResultEvidenceMap getChildren(); |
---|
| 46 | |
---|
| 47 | /** |
---|
| 48 | * recursively travers the credential graph and collect evidence along |
---|
| 49 | * the way. |
---|
| 50 | * @return credentials from this node and further along the traversal |
---|
| 51 | */ |
---|
| 52 | HashSet getChain(int size, EntityExpression target); |
---|
| 53 | |
---|
| 54 | /** |
---|
| 55 | * Enable this node for backward searching, it then should store all |
---|
| 56 | * backward solutions (entities that are member of this node). |
---|
| 57 | */ |
---|
| 58 | // void enableAllBackwardGoals(); |
---|
| 59 | |
---|
| 60 | /** |
---|
| 61 | * If one only wants to know whether this node has some particular |
---|
| 62 | * backward solutions, and doesn't care about others, then one can use |
---|
| 63 | * this call to tell this proof node. It might improve efficiency in |
---|
| 64 | * bi-direction search. |
---|
| 65 | */ |
---|
| 66 | // void enableBackwardGoal(EntityExpression g); |
---|
| 67 | |
---|
| 68 | // void enableAllForwardGoals(); |
---|
| 69 | // void enableForwardGoal(EntityExpression g); |
---|
| 70 | |
---|
| 71 | // boolean hasParent(ProofNode node); |
---|
| 72 | // boolean hasChild(ProofNode node); |
---|
| 73 | |
---|
| 74 | } // End of class ProofNode |
---|
| 75 | |
---|