View Javadoc

1   package org.qedeq.kernel.bo.module;
2   
3   
4   /**
5    * Reference to another QEDEQ module, a node, a part of a node formula, a formal proof line.
6    *
7    * @author  Michael Meyling
8    */
9   public interface Reference {
10  
11      /**
12       * Does the the reference point to another QEDEQ module?
13       *
14       * @return  The reference goes to another module.
15       */
16      public boolean isExternal();
17  
18      /**
19       * Does the the reference point to another QEDEQ module but not to a node?
20       *
21       * @return  The reference goes directly to to another module.
22       */
23      public boolean isExternalModuleReference();
24  
25      /**
26       * Get label for QEDEQ module the reference points to.
27       *
28       * @return  QEDEQ module label.
29       */
30      public String getExternalQedeqLabel();
31  
32      /**
33       * Get external QEDEQ module the reference points to.
34       *
35       * @return  QEDEQ module.
36       */
37      public KernelQedeqBo getExternalQedeq();
38  
39      /**
40       * Does the the reference point to a node? It might also be a sub reference to
41       * a node like a part of a proposition or a formal proof line.
42       *
43       * @return  The reference goes to a node or to a label within a node.
44       */
45      public boolean isNodeReference();
46  
47      /**
48       * Label of the node the reference points to.
49       *
50       * @return  Node label the reference points to.
51       */
52      public String getNodeLabel();
53  
54      /**
55       * Node the reference points to. Might be in an external QEDEQ module. The reference might
56       * also have a sub reference or proof line reference.
57       *
58       * @return  Node the reference points to.
59       */
60      public KernelNodeBo getNode();
61  
62      /**
63       * Does the the reference point to the same node?
64       *
65       * @return  The reference is in the same node as the label.
66       */
67      public boolean isNodeLocalReference();
68  
69      /**
70       * Does the the reference point to a sub reference of a node? This is a part of a node formula.
71       * If this is true it can not have a proof line reference.
72       *
73       * @return  The reference goes to a part of a node formula.
74       */
75      public boolean isSubReference();
76  
77      /**
78       * Sub node label the reference points to.
79       *
80       * @return  Sub node label the reference points to.
81       */
82      public String getSubLabel();
83  
84      /**
85       * Does the the reference point to a proof line of a node? If this is true
86       * it can not have a node sub reference.
87       *
88       * @return  The reference goes to a proof line.
89       */
90      public boolean isProofLineReference();
91  
92      /**
93       * Proof line label of a node the reference points to.
94       *
95       * @return  Proof line label the reference points to.
96       */
97      public String getProofLineLabel();
98  
99  }