01 package org.qedeq.kernel.bo.module;
02
03
04 /**
05 * Reference to another QEDEQ module, a node, a part of a node formula, a formal proof line.
06 *
07 * @author Michael Meyling
08 */
09 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 }
|