All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.qedeq.kernel.bo.module.Reference Maven / Gradle / Ivy

package org.qedeq.kernel.bo.module;


/**
 * Reference to another QEDEQ module, a node, a part of a node formula, a formal proof line.
 *
 * @author  Michael Meyling
 */
public interface Reference {

    /**
     * Does the the reference point to another QEDEQ module?
     *
     * @return  The reference goes to another module.
     */
    public boolean isExternal();

    /**
     * Does the the reference point to another QEDEQ module but not to a node?
     *
     * @return  The reference goes directly to to another module.
     */
    public boolean isExternalModuleReference();

    /**
     * Get label for QEDEQ module the reference points to.
     *
     * @return  QEDEQ module label.
     */
    public String getExternalQedeqLabel();

    /**
     * Get external QEDEQ module the reference points to.
     *
     * @return  QEDEQ module.
     */
    public KernelQedeqBo getExternalQedeq();

    /**
     * Does the the reference point to a node? It might also be a sub reference to
     * a node like a part of a proposition or a formal proof line.
     *
     * @return  The reference goes to a node or to a label within a node.
     */
    public boolean isNodeReference();

    /**
     * Label of the node the reference points to.
     *
     * @return  Node label the reference points to.
     */
    public String getNodeLabel();

    /**
     * Node the reference points to. Might be in an external QEDEQ module. The reference might
     * also have a sub reference or proof line reference.
     *
     * @return  Node the reference points to.
     */
    public KernelNodeBo getNode();

    /**
     * Does the the reference point to the same node?
     *
     * @return  The reference is in the same node as the label.
     */
    public boolean isNodeLocalReference();

    /**
     * Does the the reference point to a sub reference of a node? This is a part of a node formula.
     * If this is true it can not have a proof line reference.
     *
     * @return  The reference goes to a part of a node formula.
     */
    public boolean isSubReference();

    /**
     * Sub node label the reference points to.
     *
     * @return  Sub node label the reference points to.
     */
    public String getSubLabel();

    /**
     * Does the the reference point to a proof line of a node? If this is true
     * it can not have a node sub reference.
     *
     * @return  The reference goes to a proof line.
     */
    public boolean isProofLineReference();

    /**
     * Proof line label of a node the reference points to.
     *
     * @return  Proof line label the reference points to.
     */
    public String getProofLineLabel();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy