source: fedd/abac-src/rbtm/engine/ProofNode.java @ 4adc697

version-1.30
Last change on this file since 4adc697 was 8780cbec, checked in by Jay Jacobs <Jay.Jacobs@…>, 15 years ago

ABAC sources from Cobham

  • Property mode set to 100644
File size: 2.0 KB
Line 
1package edu.stanford.peer.rbtm.engine;
2
3import java.util.*;
4
5import edu.stanford.peer.rbtm.credential.*;
6import edu.stanford.peer.rbtm.util.*;
7
8/*
9 */
10public 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
Note: See TracBrowser for help on using the repository browser.