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 }