JAL-2599 parser and datamodel use primitive double[] not List<Double>
[jalview.git] / src / jalview / datamodel / HMMNode.java
index 04e335f..93fa49e 100644 (file)
@@ -1,8 +1,5 @@
 package jalview.datamodel;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * stores data for each node in the hmm model
  * @author TZVanaalten
@@ -11,12 +8,14 @@ import java.util.List;
 public class HMMNode
 {
   //contains the match emissions for each symbol 
-  List<Double> matchEmissions = new ArrayList<>();
+  double[] matchEmissions;
+
   //contains the insert emissions for each symbol 
-  List<Double> insertEmissions = new ArrayList<>();
-  //contains the state transitions for each possible transition. These are bm, bi, bd, im, ii, dm and dd in order (0th position in
-  // the array indicates the probability of a bm transition)
-  List<Double> stateTransitions = new ArrayList<>();
+  double[] insertEmissions;
+
+  // contains the state transitions for each possible transition. These are mm,
+  // mi, md, im, ii, dm and dd in order
+  double[] stateTransitions;
   
   //annotations
   Integer alignmentColumn = null;
@@ -25,47 +24,54 @@ public class HMMNode
   char maskValue;
   char consensusStructure;
 
+  /**
+   * Constructor
+   */
   public HMMNode()
   {
   }
 
-  public HMMNode(HMMNode node)
+  public double[] getMatchEmissions()
   {
-    matchEmissions = new ArrayList<>(node.getMatchEmissions());
-    insertEmissions = new ArrayList<>(node.getInsertEmissions());
-    stateTransitions = new ArrayList<>(node.getStateTransitions());
-    alignmentColumn = new Integer(node.getAlignmentColumn());
-    consensusResidue = node.getConsensusResidue();
-    referenceAnnotation = node.getReferenceAnnotation();
-    maskValue = node.getMaskValue();
-    consensusStructure = node.getConsensusStructure();
+    return matchEmissions;
   }
 
-  public List<Double> getMatchEmissions()
+  public double getMatchEmission(int symbolIndex)
   {
-    return matchEmissions;
+    return matchEmissions[symbolIndex];
   }
 
-  public void setMatchEmissions(List<Double> matchEmissionsL)
+  public void setMatchEmissions(double[] matches)
   {
-    this.matchEmissions = matchEmissionsL;
+    this.matchEmissions = matches;
   }
-  public List<Double> getInsertEmissions()
+
+  public double[] getInsertEmissions()
   {
     return insertEmissions;
   }
 
-  public void setInsertEmissions(List<Double> insertEmissionsL)
+  public double getInsertEmission(int symbolIndex)
+  {
+    return insertEmissions[symbolIndex];
+  }
+
+  public void setInsertEmissions(double[] insertEmissionsL)
   {
     this.insertEmissions = insertEmissionsL;
   }
 
-  public List<Double> getStateTransitions()
+  public double[] getStateTransitions()
   {
     return stateTransitions;
   }
 
-  public void setStateTransitions(List<Double> stateTransitionsM)
+  public double getStateTransition(int transition)
+  {
+    return stateTransitions[transition];
+  }
+
+  public void setStateTransitions(double[] stateTransitionsM)
   {
     this.stateTransitions = stateTransitionsM;
   }