-package fr.orsay.lri.varna.models.treealign;
-
-/**
- * We use the following convention: If the node is marked by a couple (n,m)
- * these integers are stored in leftBasePosition and rightBasePosition
- * (ie. we have a pair of bases), if only
- * one value is present, it is stored in leftBasePosition and rightBasePosition
- * contains -1 (ie. we have a non-paired base).
- * The right and left nucleotides follow the same rule, but are optional,
- * and '_' is used as undefined instead of -1.
- * Note that it is part of the contract of this class that default
- * values are -1 and _.
- *
- * @author Raphael Champeimont
- */
-public class RNANodeValue implements GraphvizDrawableNodeValue {
- private int leftBasePosition = -1;
- private int rightBasePosition = -1;
-
- private String leftNucleotide = "_";
- private String rightNucleotide = "_";
-
- public enum Origin {
- BASE_PAIR_FROM_HELIX,
- BASE_FROM_HELIX_STRAND5,
- BASE_FROM_HELIX_STRAND3,
- BASE_FROM_UNPAIRED_REGION;
- }
-
- /**
- * Used to store the origin of this base / base pair.
- */
- private Origin origin = null;
-
- public Origin getOrigin() {
- return origin;
- }
- public void setOrigin(Origin comesFromAnHelix) {
- this.origin = comesFromAnHelix;
- }
-
-
-
- public String getLeftNucleotide() {
- return leftNucleotide;
- }
- public void setLeftNucleotide(String leftNucleotide) {
- this.leftNucleotide = leftNucleotide;
- }
- public String getRightNucleotide() {
- return rightNucleotide;
- }
- public void setRightNucleotide(String rightNucleotide) {
- this.rightNucleotide = rightNucleotide;
- }
- public int getLeftBasePosition() {
- return leftBasePosition;
- }
- public void setLeftBasePosition(int leftBasePosition) {
- this.leftBasePosition = leftBasePosition;
- }
- public int getRightBasePosition() {
- return rightBasePosition;
- }
- public void setRightBasePosition(int rightBasePosition) {
- this.rightBasePosition = rightBasePosition;
- }
-
- public String toGraphvizNodeName() {
- if (rightNucleotide.equals("_")) {
- if (leftNucleotide.equals("_")) {
- if (rightBasePosition == -1) {
- if (leftBasePosition == -1) {
- return super.toString();
- } else {
- return Integer.toString(leftBasePosition);
- }
- } else {
- return "(" + leftBasePosition + "," + rightBasePosition + ")";
- }
- } else {
- return leftNucleotide;
- }
- } else {
- return "(" + leftNucleotide + "," + rightNucleotide + ")";
- }
- }
-
- public String toString() {
- if (rightBasePosition == -1) {
- if (leftBasePosition == -1) {
- return super.toString();
- } else {
- return Integer.toString(leftBasePosition);
- }
- } else {
- return "(" + leftBasePosition + "," + rightBasePosition + ")";
- }
- }
-
-
-}