JAL-1767 save PCA D and E vectors instead of 'details' text
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 7 May 2018 08:59:44 +0000 (09:59 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 7 May 2018 08:59:44 +0000 (09:59 +0100)
12 files changed:
schemas/jalview.xsd
src/jalview/analysis/PCA.java
src/jalview/gui/Jalview2XML.java
src/jalview/schemabinding/version2/.castor.cdr
src/jalview/schemabinding/version2/PcaDataType.java
src/jalview/schemabinding/version2/TridiagonalD.java [moved from src/jalview/schemabinding/version2/EigenMatrixE.java with 94% similarity]
src/jalview/schemabinding/version2/TridiagonalE.java [new file with mode: 0644]
src/jalview/schemabinding/version2/TridiagonalMatrix.java [new file with mode: 0644]
src/jalview/schemabinding/version2/descriptors/PcaDataTypeDescriptor.java
src/jalview/schemabinding/version2/descriptors/TridiagonalDDescriptor.java [moved from src/jalview/schemabinding/version2/descriptors/EigenMatrixEDescriptor.java with 91% similarity]
src/jalview/schemabinding/version2/descriptors/TridiagonalEDescriptor.java [new file with mode: 0644]
src/jalview/schemabinding/version2/descriptors/TridiagonalMatrixDescriptor.java [new file with mode: 0644]

index 109b83b..acf842b 100755 (executable)
                        </xs:documentation>
                </xs:annotation>
                <xs:sequence>
-                       <xs:element name="details" type="xs:string">
-                               <xs:annotation>
-                                       <xs:documentation>
-                                               The text report of the calculation
-                                       </xs:documentation>
-                               </xs:annotation>
-                       </xs:element>
                        <xs:element name="pairwiseMatrix" type="jv:DoubleMatrix" />
+                       <xs:element name="tridiagonalMatrix" type="jv:DoubleMatrix" />
+                       <xs:element name="tridiagonalD" type="jv:DoubleVector" />
+                       <xs:element name="tridiagonalE" type="jv:DoubleVector" />
                        <xs:element name="eigenMatrix" type="jv:DoubleMatrix" />
                        <xs:element name="eigenMatrixD" type="jv:DoubleVector" />
-                       <xs:element name="eigenMatrixE" type="jv:DoubleVector" />
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="DoubleVector">
index b3268df..d51f00e 100755 (executable)
@@ -22,6 +22,7 @@ package jalview.analysis;
 
 import jalview.api.analysis.ScoreModelI;
 import jalview.api.analysis.SimilarityParamsI;
+import jalview.bin.Cache;
 import jalview.datamodel.AlignmentView;
 import jalview.datamodel.Point;
 import jalview.math.MatrixI;
@@ -47,11 +48,9 @@ public class PCA implements Runnable
    */
   private MatrixI pairwiseScores;
 
-  private MatrixI afterTred;
+  private MatrixI tridiagonal;
 
-  private MatrixI eigenvector;
-
-  private String details;
+  private MatrixI eigenMatrix;
 
   /**
    * Constructor given the sequences to compute for, the similarity model to
@@ -78,7 +77,7 @@ public class PCA implements Runnable
    */
   public double getEigenvalue(int i)
   {
-    return eigenvector.getD()[i];
+    return eigenMatrix.getD()[i];
   }
 
   /**
@@ -147,10 +146,10 @@ public class PCA implements Runnable
 
     for (int i = 0; i < pairwiseScores.width(); i++)
     {
-      out += (pairwiseScores.getValue(row, i) * eigenvector.getValue(i, n));
+      out += (pairwiseScores.getValue(row, i) * eigenMatrix.getValue(i, n));
     }
 
-    return out / eigenvector.getD()[n];
+    return out / eigenMatrix.getD()[n];
   }
 
   /**
@@ -161,32 +160,38 @@ public class PCA implements Runnable
    */
   public String getDetails()
   {
-    return details;
-    /*
     StringBuilder sb = new StringBuilder(1024);
     sb.append("PCA calculation using ").append(scoreModel.getName())
             .append(" sequence similarity matrix\n========\n\n");
     PrintStream ps = wrapOutputBuffer(sb);
     
+    /*
+     * pairwise similarity scores
+     */
     sb.append(" --- OrigT * Orig ---- \n");
     pairwiseScores.print(ps, "%8.2f");
     
+    /*
+     * tridiagonal matrix, with D and E vectors
+     */
     sb.append(" ---Tridiag transform matrix ---\n");
     sb.append(" --- D vector ---\n");
-    afterTred.printD(ps, "%15.4e");
+    tridiagonal.printD(ps, "%15.4e");
     ps.println();
     sb.append("--- E vector ---\n");
-    afterTred.printE(ps, "%15.4e");
+    tridiagonal.printE(ps, "%15.4e");
     ps.println();
     
+    /*
+     * eigenvalues matrix, with D vector
+     */
     sb.append(" --- New diagonalization matrix ---\n");
-    eigenvector.print(ps, "%8.2f");
+    eigenMatrix.print(ps, "%8.2f");
     sb.append(" --- Eigenvalues ---\n");
-    eigenvector.printD(ps, "%15.4e");
+    eigenMatrix.printD(ps, "%15.4e");
     ps.println();
     
     return sb.toString();
-    */
   }
 
   /**
@@ -195,53 +200,29 @@ public class PCA implements Runnable
   @Override
   public void run()
   {
-    /*
-     * print details to a string buffer as they are computed
-     */
-    StringBuilder sb = new StringBuilder(1024);
-    sb.append("PCA calculation using ").append(scoreModel.getName())
-            .append(" sequence similarity matrix\n========\n\n");
-    PrintStream ps = wrapOutputBuffer(sb);
-
     try
     {
-      eigenvector = scoreModel.findSimilarities(seqs, similarityParams);
-
-      sb.append(" --- OrigT * Orig ---- \n");
-      eigenvector.print(ps, "%8.2f");
-
-      pairwiseScores = eigenvector.copy();
-
-      eigenvector.tred();
-
-      afterTred = eigenvector.copy();
-
-      sb.append(" ---Tridiag transform matrix ---\n");
-      sb.append(" --- D vector ---\n");
-      afterTred.printD(ps, "%15.4e");
-      ps.println();
-      sb.append("--- E vector ---\n");
-      afterTred.printE(ps, "%15.4e");
-      ps.println();
-
-      // Now produce the diagonalization matrix
-      eigenvector.tqli();
+      /*
+       * sequence pairwise similarity scores
+       */
+      pairwiseScores = scoreModel.findSimilarities(seqs, similarityParams);
+
+      /*
+       * tridiagonal matrix
+       */
+      tridiagonal = pairwiseScores.copy();
+      tridiagonal.tred();
+
+      /*
+       * the diagonalization matrix
+       */
+      eigenMatrix = tridiagonal.copy();
+      eigenMatrix.tqli();
     } catch (Exception q)
     {
+      Cache.log.error("Error computing PCA:  " + q.getMessage());
       q.printStackTrace();
-      sb.append("\n*** Unexpected exception when performing PCA ***\n"
-              + q.getLocalizedMessage());
-      sb.append(
-              "*** Matrices below may not be fully diagonalised. ***\n");
     }
-
-    sb.append(" --- New diagonalization matrix ---\n");
-    eigenvector.print(ps, "%8.2f");
-    sb.append(" --- Eigenvalues ---\n");
-    eigenvector.printD(ps, "%15.4e");
-    ps.println();
-
-    details = sb.toString();
   }
 
   /**
@@ -300,16 +281,21 @@ public class PCA implements Runnable
 
   public MatrixI getEigenmatrix()
   {
-    return eigenvector;
+    return eigenMatrix;
   }
 
   public void setEigenmatrix(MatrixI m)
   {
-    eigenvector = m;
+    eigenMatrix = m;
+  }
+
+  public MatrixI getTridiagonal()
+  {
+    return tridiagonal;
   }
 
-  public void setDetails(String d)
+  public void setTridiagonal(MatrixI tridiagonal)
   {
-    details = d;
+    this.tridiagonal = tridiagonal;
   }
 }
index 2b3e5ce..c725db8 100644 (file)
@@ -70,7 +70,6 @@ import jalview.schemabinding.version2.DBRef;
 import jalview.schemabinding.version2.DoubleMatrix;
 import jalview.schemabinding.version2.EigenMatrix;
 import jalview.schemabinding.version2.EigenMatrixD;
-import jalview.schemabinding.version2.EigenMatrixE;
 import jalview.schemabinding.version2.Features;
 import jalview.schemabinding.version2.Group;
 import jalview.schemabinding.version2.HiddenColumns;
@@ -104,6 +103,9 @@ import jalview.schemabinding.version2.Setting;
 import jalview.schemabinding.version2.StructureState;
 import jalview.schemabinding.version2.ThresholdLine;
 import jalview.schemabinding.version2.Tree;
+import jalview.schemabinding.version2.TridiagonalD;
+import jalview.schemabinding.version2.TridiagonalE;
+import jalview.schemabinding.version2.TridiagonalMatrix;
 import jalview.schemabinding.version2.UserColours;
 import jalview.schemabinding.version2.Viewport;
 import jalview.schemabinding.version2.types.ColourThreshTypeType;
@@ -1622,42 +1624,30 @@ public class Jalview2XML
       PcaData data = new PcaData();
       viewer.setPcaData(data);
       PCA pca = pcaModel.getPcaData();
-      data.setDetails(pca.getDetails());
-      MatrixI m = pca.getEigenmatrix();
-      EigenMatrix eigenMatrix = new EigenMatrix();
-      eigenMatrix.setRows(m.height());
-      eigenMatrix.setColumns(m.width());
-      data.setEigenMatrix(eigenMatrix);
-      for (int i = 0; i < m.height(); i++)
-      {
-        Row row = new Row();
-        for (int j = 0; j < m.width(); j++)
-        {
-          row.addD(m.getValue(i, j));
-        }
-        eigenMatrix.addRow(row);
-      }
-      EigenMatrixD eigenMatrixD = new EigenMatrixD();
-      eigenMatrixD.setD(m.getD());
-      data.setEigenMatrixD(eigenMatrixD);
-      EigenMatrixE eigenMatrixE = new EigenMatrixE();
-      eigenMatrixE.setD(m.getE());
-      data.setEigenMatrixE(eigenMatrixE);
 
       PairwiseMatrix pm = new PairwiseMatrix();
-      m = pca.getPairwiseScores();
-      pm.setRows(m.height());
-      pm.setColumns(m.width());
+      MatrixI m = pca.getPairwiseScores();
+      saveDoubleMatrix(m, pm);
       data.setPairwiseMatrix(pm);
-      for (int i = 0; i < m.height(); i++)
-      {
-        Row row = new Row();
-        for (int j = 0; j < m.width(); j++)
-        {
-          row.addD(m.getValue(i, j));
-        }
-        pm.addRow(row);
-      }
+
+      TridiagonalMatrix tm = new TridiagonalMatrix();
+      m = pca.getTridiagonal();
+      saveDoubleMatrix(m, tm);
+      data.setTridiagonalMatrix(tm);
+      TridiagonalD tridiagonalD = new TridiagonalD();
+      tridiagonalD.setD(m.getD());
+      data.setTridiagonalD(tridiagonalD);
+      TridiagonalE tridiagonalE = new TridiagonalE();
+      tridiagonalE.setD(m.getE());
+      data.setTridiagonalE(tridiagonalE);
+
+      m = pca.getEigenmatrix();
+      EigenMatrix eigenMatrix = new EigenMatrix();
+      data.setEigenMatrix(eigenMatrix);
+      saveDoubleMatrix(m, eigenMatrix);
+      EigenMatrixD eigenmatrixD = new EigenMatrixD();
+      eigenmatrixD.setD(m.getD());
+      data.setEigenMatrixD(eigenmatrixD);
 
       jms.addPcaViewer(viewer);
     } catch (Throwable t)
@@ -1667,6 +1657,49 @@ public class Jalview2XML
   }
 
   /**
+   * Stores values from a matrix into an XML element
+   * 
+   * @param m
+   * @param xmlMatrix
+   * @see #loadDoubleMatrix(DoubleMatrix)
+   */
+  protected void saveDoubleMatrix(MatrixI m, DoubleMatrix xmlMatrix)
+  {
+    xmlMatrix.setRows(m.height());
+    xmlMatrix.setColumns(m.width());
+    for (int i = 0; i < m.height(); i++)
+    {
+      Row row = new Row();
+      for (int j = 0; j < m.width(); j++)
+      {
+        row.addD(m.getValue(i, j));
+      }
+      xmlMatrix.addRow(row);
+    }
+  }
+
+  /**
+   * Loads XML matrix data into a new Matrix object
+   * 
+   * @param mData
+   * @return
+   * @see Jalview2XML#saveDoubleMatrix(MatrixI, DoubleMatrix)
+   */
+  protected MatrixI loadDoubleMatrix(DoubleMatrix mData)
+  {
+    int rows = mData.getRows();
+    double[][] vals = new double[rows][];
+
+    for (int i = 0; i < rows; i++)
+    {
+      vals[i] = mData.getRow(i).getD();
+    }
+
+    MatrixI m = new Matrix(vals);
+    return m;
+  }
+
+  /**
    * Save any Varna viewers linked to this sequence. Writes an rnaViewer element
    * for each viewer, with
    * <ul>
@@ -5912,13 +5945,19 @@ public class Jalview2XML
                 .getScoreModel(modelName, ap);
         PCA pca = new PCA(null, scoreModel, params);
         PcaData pcaData = viewer.getPcaData();
-        pca.setDetails(pcaData.getDetails());
-        MatrixI pairwise = loadMatrix(pcaData.getPairwiseMatrix());
+
+        MatrixI pairwise = loadDoubleMatrix(pcaData.getPairwiseMatrix());
         pca.setPairwiseScores(pairwise);
-        MatrixI result = loadMatrix(pcaData.getEigenMatrix());
+
+        MatrixI triDiag = loadDoubleMatrix(pcaData.getTridiagonalMatrix());
+        triDiag.setD(pcaData.getTridiagonalD().getD());
+        triDiag.setE(pcaData.getTridiagonalE().getD());
+        pca.setTridiagonal(triDiag);
+
+        MatrixI result = loadDoubleMatrix(pcaData.getEigenMatrix());
         result.setD(pcaData.getEigenMatrixD().getD());
-        result.setE(pcaData.getEigenMatrixE().getD());
         pca.setEigenmatrix(result);
+
         panel.pcaModel.setPCA(pca);
 
         /*
@@ -5984,26 +6023,6 @@ public class Jalview2XML
   }
 
   /**
-   * Loads XML matrix data into a new Matrix object
-   * 
-   * @param mData
-   * @return
-   */
-  protected MatrixI loadMatrix(DoubleMatrix mData)
-  {
-    int rows = mData.getRows();
-    double[][] vals = new double[rows][];
-
-    for (int i = 0; i < rows; i++)
-    {
-      vals[i] = mData.getRow(i).getD();
-    }
-
-    MatrixI m = new Matrix(vals);
-    return m;
-  }
-
-  /**
    * Populates an XML model of the feature colour scheme for one feature type
    * 
    * @param featureType
index 4248a04..0141c27 100644 (file)
@@ -1,4 +1,4 @@
-#Fri May 04 15:18:48 BST 2018
+#Mon May 07 09:17:08 BST 2018
 jalview.schemabinding.version2.SeqPointMax=jalview.schemabinding.version2.descriptors.SeqPointMaxDescriptor
 jalview.schemabinding.version2.ThresholdLine=jalview.schemabinding.version2.descriptors.ThresholdLineDescriptor
 jalview.schemabinding.version2.SequenceSetProperties=jalview.schemabinding.version2.descriptors.SequenceSetPropertiesDescriptor
@@ -7,9 +7,11 @@ jalview.schemabinding.version2.CalcIdParam=jalview.schemabinding.version2.descri
 jalview.schemabinding.version2.Tree=jalview.schemabinding.version2.descriptors.TreeDescriptor
 jalview.schemabinding.version2.JalviewModel=jalview.schemabinding.version2.descriptors.JalviewModelDescriptor
 jalview.schemabinding.version2.SequenceType=jalview.schemabinding.version2.descriptors.SequenceTypeDescriptor
+jalview.schemabinding.version2.TridiagonalE=jalview.schemabinding.version2.descriptors.TridiagonalEDescriptor
 jalview.schemabinding.version2.SequencePoint=jalview.schemabinding.version2.descriptors.SequencePointDescriptor
 jalview.schemabinding.version2.OtherData=jalview.schemabinding.version2.descriptors.OtherDataDescriptor
 jalview.schemabinding.version2.Setting=jalview.schemabinding.version2.descriptors.SettingDescriptor
+jalview.schemabinding.version2.TridiagonalD=jalview.schemabinding.version2.descriptors.TridiagonalDDescriptor
 jalview.schemabinding.version2.Axis=jalview.schemabinding.version2.descriptors.AxisDescriptor
 jalview.schemabinding.version2.AlcodonFrame=jalview.schemabinding.version2.descriptors.AlcodonFrameDescriptor
 jalview.schemabinding.version2.AnnotationElement=jalview.schemabinding.version2.descriptors.AnnotationElementDescriptor
@@ -37,6 +39,7 @@ jalview.schemabinding.version2.Filter=jalview.schemabinding.version2.descriptors
 jalview.schemabinding.version2.WebServiceParameterSet=jalview.schemabinding.version2.descriptors.WebServiceParameterSetDescriptor
 jalview.schemabinding.version2.Alcodon=jalview.schemabinding.version2.descriptors.AlcodonDescriptor
 jalview.schemabinding.version2.AnnotationColours=jalview.schemabinding.version2.descriptors.AnnotationColoursDescriptor
+jalview.schemabinding.version2.TridiagonalMatrix=jalview.schemabinding.version2.descriptors.TridiagonalMatrixDescriptor
 jalview.schemabinding.version2.Pdbids=jalview.schemabinding.version2.descriptors.PdbidsDescriptor
 jalview.schemabinding.version2.AnnotationColourScheme=jalview.schemabinding.version2.descriptors.AnnotationColourSchemeDescriptor
 jalview.schemabinding.version2.Mapping=jalview.schemabinding.version2.descriptors.MappingDescriptor
index 0335b44..3d05727 100644 (file)
@@ -28,15 +28,24 @@ public class PcaDataType implements java.io.Serializable
   // --------------------------/
 
   /**
-   * The text report of the calculation
-   * 
+   * Field _pairwiseMatrix.
    */
-  private java.lang.String _details;
+  private jalview.schemabinding.version2.PairwiseMatrix _pairwiseMatrix;
 
   /**
-   * Field _pairwiseMatrix.
+   * Field _tridiagonalMatrix.
    */
-  private jalview.schemabinding.version2.PairwiseMatrix _pairwiseMatrix;
+  private jalview.schemabinding.version2.TridiagonalMatrix _tridiagonalMatrix;
+
+  /**
+   * Field _tridiagonalD.
+   */
+  private jalview.schemabinding.version2.TridiagonalD _tridiagonalD;
+
+  /**
+   * Field _tridiagonalE.
+   */
+  private jalview.schemabinding.version2.TridiagonalE _tridiagonalE;
 
   /**
    * Field _eigenMatrix.
@@ -48,11 +57,6 @@ public class PcaDataType implements java.io.Serializable
    */
   private jalview.schemabinding.version2.EigenMatrixD _eigenMatrixD;
 
-  /**
-   * Field _eigenMatrixE.
-   */
-  private jalview.schemabinding.version2.EigenMatrixE _eigenMatrixE;
-
   // ----------------/
   // - Constructors -/
   // ----------------/
@@ -67,18 +71,6 @@ public class PcaDataType implements java.io.Serializable
   // -----------/
 
   /**
-   * Returns the value of field 'details'. The field 'details' has the following
-   * description: The text report of the calculation
-   * 
-   * 
-   * @return the value of field 'Details'.
-   */
-  public java.lang.String getDetails()
-  {
-    return this._details;
-  }
-
-  /**
    * Returns the value of field 'eigenMatrix'.
    * 
    * @return the value of field 'EigenMatrix'.
@@ -99,23 +91,43 @@ public class PcaDataType implements java.io.Serializable
   }
 
   /**
-   * Returns the value of field 'eigenMatrixE'.
+   * Returns the value of field 'pairwiseMatrix'.
    * 
-   * @return the value of field 'EigenMatrixE'.
+   * @return the value of field 'PairwiseMatrix'.
    */
-  public jalview.schemabinding.version2.EigenMatrixE getEigenMatrixE()
+  public jalview.schemabinding.version2.PairwiseMatrix getPairwiseMatrix()
   {
-    return this._eigenMatrixE;
+    return this._pairwiseMatrix;
   }
 
   /**
-   * Returns the value of field 'pairwiseMatrix'.
+   * Returns the value of field 'tridiagonalD'.
    * 
-   * @return the value of field 'PairwiseMatrix'.
+   * @return the value of field 'TridiagonalD'.
    */
-  public jalview.schemabinding.version2.PairwiseMatrix getPairwiseMatrix()
+  public jalview.schemabinding.version2.TridiagonalD getTridiagonalD()
   {
-    return this._pairwiseMatrix;
+    return this._tridiagonalD;
+  }
+
+  /**
+   * Returns the value of field 'tridiagonalE'.
+   * 
+   * @return the value of field 'TridiagonalE'.
+   */
+  public jalview.schemabinding.version2.TridiagonalE getTridiagonalE()
+  {
+    return this._tridiagonalE;
+  }
+
+  /**
+   * Returns the value of field 'tridiagonalMatrix'.
+   * 
+   * @return the value of field 'TridiagonalMatrix'.
+   */
+  public jalview.schemabinding.version2.TridiagonalMatrix getTridiagonalMatrix()
+  {
+    return this._tridiagonalMatrix;
   }
 
   /**
@@ -173,19 +185,6 @@ public class PcaDataType implements java.io.Serializable
   }
 
   /**
-   * Sets the value of field 'details'. The field 'details' has the following
-   * description: The text report of the calculation
-   * 
-   * 
-   * @param details
-   *          the value of field 'details'.
-   */
-  public void setDetails(final java.lang.String details)
-  {
-    this._details = details;
-  }
-
-  /**
    * Sets the value of field 'eigenMatrix'.
    * 
    * @param eigenMatrix
@@ -210,18 +209,6 @@ public class PcaDataType implements java.io.Serializable
   }
 
   /**
-   * Sets the value of field 'eigenMatrixE'.
-   * 
-   * @param eigenMatrixE
-   *          the value of field 'eigenMatrixE'.
-   */
-  public void setEigenMatrixE(
-          final jalview.schemabinding.version2.EigenMatrixE eigenMatrixE)
-  {
-    this._eigenMatrixE = eigenMatrixE;
-  }
-
-  /**
    * Sets the value of field 'pairwiseMatrix'.
    * 
    * @param pairwiseMatrix
@@ -234,6 +221,42 @@ public class PcaDataType implements java.io.Serializable
   }
 
   /**
+   * Sets the value of field 'tridiagonalD'.
+   * 
+   * @param tridiagonalD
+   *          the value of field 'tridiagonalD'.
+   */
+  public void setTridiagonalD(
+          final jalview.schemabinding.version2.TridiagonalD tridiagonalD)
+  {
+    this._tridiagonalD = tridiagonalD;
+  }
+
+  /**
+   * Sets the value of field 'tridiagonalE'.
+   * 
+   * @param tridiagonalE
+   *          the value of field 'tridiagonalE'.
+   */
+  public void setTridiagonalE(
+          final jalview.schemabinding.version2.TridiagonalE tridiagonalE)
+  {
+    this._tridiagonalE = tridiagonalE;
+  }
+
+  /**
+   * Sets the value of field 'tridiagonalMatrix'.
+   * 
+   * @param tridiagonalMatrix
+   *          the value of field 'tridiagonalMatrix'.
+   */
+  public void setTridiagonalMatrix(
+          final jalview.schemabinding.version2.TridiagonalMatrix tridiagonalMatrix)
+  {
+    this._tridiagonalMatrix = tridiagonalMatrix;
+  }
+
+  /**
    * Method unmarshal.
    * 
    * @param reader
@@ -15,11 +15,11 @@ import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
 
 /**
- * Class EigenMatrixE.
+ * Class TridiagonalD.
  * 
  * @version $Revision$ $Date$
  */
-public class EigenMatrixE extends DoubleVector
+public class TridiagonalD extends DoubleVector
         implements java.io.Serializable
 {
 
@@ -27,7 +27,7 @@ public class EigenMatrixE extends DoubleVector
   // - Constructors -/
   // ----------------/
 
-  public EigenMatrixE()
+  public TridiagonalD()
   {
     super();
   }
@@ -107,7 +107,7 @@ public class EigenMatrixE extends DoubleVector
           org.exolab.castor.xml.ValidationException
   {
     return (jalview.schemabinding.version2.DoubleVector) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.EigenMatrixE.class,
+            .unmarshal(jalview.schemabinding.version2.TridiagonalD.class,
                     reader);
   }
 
diff --git a/src/jalview/schemabinding/version2/TridiagonalE.java b/src/jalview/schemabinding/version2/TridiagonalE.java
new file mode 100644 (file)
index 0000000..8a30112
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+//---------------------------------/
+//- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Class TridiagonalE.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class TridiagonalE extends DoubleVector
+        implements java.io.Serializable
+{
+
+  // ----------------/
+  // - Constructors -/
+  // ----------------/
+
+  public TridiagonalE()
+  {
+    super();
+  }
+
+  // -----------/
+  // - Methods -/
+  // -----------/
+
+  /**
+   * Method isValid.
+   * 
+   * @return true if this object is valid according to the schema
+   */
+  public boolean isValid()
+  {
+    try
+    {
+      validate();
+    } catch (org.exolab.castor.xml.ValidationException vex)
+    {
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * 
+   * 
+   * @param out
+   * @throws org.exolab.castor.xml.MarshalException
+   *           if object is null or if any SAXException is thrown during
+   *           marshaling
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   */
+  public void marshal(final java.io.Writer out)
+          throws org.exolab.castor.xml.MarshalException,
+          org.exolab.castor.xml.ValidationException
+  {
+    Marshaller.marshal(this, out);
+  }
+
+  /**
+   * 
+   * 
+   * @param handler
+   * @throws java.io.IOException
+   *           if an IOException occurs during marshaling
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   * @throws org.exolab.castor.xml.MarshalException
+   *           if object is null or if any SAXException is thrown during
+   *           marshaling
+   */
+  public void marshal(final org.xml.sax.ContentHandler handler)
+          throws java.io.IOException,
+          org.exolab.castor.xml.MarshalException,
+          org.exolab.castor.xml.ValidationException
+  {
+    Marshaller.marshal(this, handler);
+  }
+
+  /**
+   * Method unmarshal.
+   * 
+   * @param reader
+   * @throws org.exolab.castor.xml.MarshalException
+   *           if object is null or if any SAXException is thrown during
+   *           marshaling
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   * @return the unmarshaled jalview.schemabinding.version2.DoubleVector
+   */
+  public static jalview.schemabinding.version2.DoubleVector unmarshal(
+          final java.io.Reader reader)
+          throws org.exolab.castor.xml.MarshalException,
+          org.exolab.castor.xml.ValidationException
+  {
+    return (jalview.schemabinding.version2.DoubleVector) Unmarshaller
+            .unmarshal(jalview.schemabinding.version2.TridiagonalE.class,
+                    reader);
+  }
+
+  /**
+   * 
+   * 
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   */
+  public void validate() throws org.exolab.castor.xml.ValidationException
+  {
+    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+    validator.validate(this);
+  }
+
+}
diff --git a/src/jalview/schemabinding/version2/TridiagonalMatrix.java b/src/jalview/schemabinding/version2/TridiagonalMatrix.java
new file mode 100644 (file)
index 0000000..b22302c
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+//---------------------------------/
+//- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Class TridiagonalMatrix.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class TridiagonalMatrix extends DoubleMatrix
+        implements java.io.Serializable
+{
+
+  // ----------------/
+  // - Constructors -/
+  // ----------------/
+
+  public TridiagonalMatrix()
+  {
+    super();
+  }
+
+  // -----------/
+  // - Methods -/
+  // -----------/
+
+  /**
+   * Method isValid.
+   * 
+   * @return true if this object is valid according to the schema
+   */
+  public boolean isValid()
+  {
+    try
+    {
+      validate();
+    } catch (org.exolab.castor.xml.ValidationException vex)
+    {
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * 
+   * 
+   * @param out
+   * @throws org.exolab.castor.xml.MarshalException
+   *           if object is null or if any SAXException is thrown during
+   *           marshaling
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   */
+  public void marshal(final java.io.Writer out)
+          throws org.exolab.castor.xml.MarshalException,
+          org.exolab.castor.xml.ValidationException
+  {
+    Marshaller.marshal(this, out);
+  }
+
+  /**
+   * 
+   * 
+   * @param handler
+   * @throws java.io.IOException
+   *           if an IOException occurs during marshaling
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   * @throws org.exolab.castor.xml.MarshalException
+   *           if object is null or if any SAXException is thrown during
+   *           marshaling
+   */
+  public void marshal(final org.xml.sax.ContentHandler handler)
+          throws java.io.IOException,
+          org.exolab.castor.xml.MarshalException,
+          org.exolab.castor.xml.ValidationException
+  {
+    Marshaller.marshal(this, handler);
+  }
+
+  /**
+   * Method unmarshal.
+   * 
+   * @param reader
+   * @throws org.exolab.castor.xml.MarshalException
+   *           if object is null or if any SAXException is thrown during
+   *           marshaling
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   * @return the unmarshaled jalview.schemabinding.version2.DoubleMatrix
+   */
+  public static jalview.schemabinding.version2.DoubleMatrix unmarshal(
+          final java.io.Reader reader)
+          throws org.exolab.castor.xml.MarshalException,
+          org.exolab.castor.xml.ValidationException
+  {
+    return (jalview.schemabinding.version2.DoubleMatrix) Unmarshaller
+            .unmarshal(
+                    jalview.schemabinding.version2.TridiagonalMatrix.class,
+                    reader);
+  }
+
+  /**
+   * 
+   * 
+   * @throws org.exolab.castor.xml.ValidationException
+   *           if this object is an invalid instance according to the schema
+   */
+  public void validate() throws org.exolab.castor.xml.ValidationException
+  {
+    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+    validator.validate(this);
+  }
+
+}
index 6508ee2..f864feb 100644 (file)
@@ -66,18 +66,18 @@ public class PcaDataTypeDescriptor
 
     // -- initialize element descriptors
 
-    // -- _details
+    // -- _pairwiseMatrix
     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_details", "details",
+            jalview.schemabinding.version2.PairwiseMatrix.class,
+            "_pairwiseMatrix", "pairwiseMatrix",
             org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
     handler = new org.exolab.castor.xml.XMLFieldHandler()
     {
       public java.lang.Object getValue(java.lang.Object object)
               throws IllegalStateException
       {
         PcaDataType target = (PcaDataType) object;
-        return target.getDetails();
+        return target.getPairwiseMatrix();
       }
 
       public void setValue(java.lang.Object object, java.lang.Object value)
@@ -86,7 +86,8 @@ public class PcaDataTypeDescriptor
         try
         {
           PcaDataType target = (PcaDataType) object;
-          target.setDetails((java.lang.String) value);
+          target.setPairwiseMatrix(
+                  (jalview.schemabinding.version2.PairwiseMatrix) value);
         } catch (java.lang.Exception ex)
         {
           throw new IllegalStateException(ex.toString());
@@ -95,7 +96,7 @@ public class PcaDataTypeDescriptor
 
       public java.lang.Object newInstance(java.lang.Object parent)
       {
-        return null;
+        return new jalview.schemabinding.version2.PairwiseMatrix();
       }
     };
     desc.setHandler(handler);
@@ -104,20 +105,16 @@ public class PcaDataTypeDescriptor
     desc.setMultivalued(false);
     addFieldDescriptor(desc);
 
-    // -- validation code for: _details
+    // -- validation code for: _pairwiseMatrix
     fieldValidator = new org.exolab.castor.xml.FieldValidator();
     fieldValidator.setMinOccurs(1);
     { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
     }
     desc.setValidator(fieldValidator);
-    // -- _pairwiseMatrix
+    // -- _tridiagonalMatrix
     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.PairwiseMatrix.class,
-            "_pairwiseMatrix", "pairwiseMatrix",
+            jalview.schemabinding.version2.TridiagonalMatrix.class,
+            "_tridiagonalMatrix", "tridiagonalMatrix",
             org.exolab.castor.xml.NodeType.Element);
     handler = new org.exolab.castor.xml.XMLFieldHandler()
     {
@@ -125,7 +122,7 @@ public class PcaDataTypeDescriptor
               throws IllegalStateException
       {
         PcaDataType target = (PcaDataType) object;
-        return target.getPairwiseMatrix();
+        return target.getTridiagonalMatrix();
       }
 
       public void setValue(java.lang.Object object, java.lang.Object value)
@@ -134,8 +131,8 @@ public class PcaDataTypeDescriptor
         try
         {
           PcaDataType target = (PcaDataType) object;
-          target.setPairwiseMatrix(
-                  (jalview.schemabinding.version2.PairwiseMatrix) value);
+          target.setTridiagonalMatrix(
+                  (jalview.schemabinding.version2.TridiagonalMatrix) value);
         } catch (java.lang.Exception ex)
         {
           throw new IllegalStateException(ex.toString());
@@ -144,7 +141,7 @@ public class PcaDataTypeDescriptor
 
       public java.lang.Object newInstance(java.lang.Object parent)
       {
-        return new jalview.schemabinding.version2.PairwiseMatrix();
+        return new jalview.schemabinding.version2.TridiagonalMatrix();
       }
     };
     desc.setHandler(handler);
@@ -153,16 +150,16 @@ public class PcaDataTypeDescriptor
     desc.setMultivalued(false);
     addFieldDescriptor(desc);
 
-    // -- validation code for: _pairwiseMatrix
+    // -- validation code for: _tridiagonalMatrix
     fieldValidator = new org.exolab.castor.xml.FieldValidator();
     fieldValidator.setMinOccurs(1);
     { // -- local scope
     }
     desc.setValidator(fieldValidator);
-    // -- _eigenMatrix
+    // -- _tridiagonalD
     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.EigenMatrix.class,
-            "_eigenMatrix", "eigenMatrix",
+            jalview.schemabinding.version2.TridiagonalD.class,
+            "_tridiagonalD", "tridiagonalD",
             org.exolab.castor.xml.NodeType.Element);
     handler = new org.exolab.castor.xml.XMLFieldHandler()
     {
@@ -170,7 +167,7 @@ public class PcaDataTypeDescriptor
               throws IllegalStateException
       {
         PcaDataType target = (PcaDataType) object;
-        return target.getEigenMatrix();
+        return target.getTridiagonalD();
       }
 
       public void setValue(java.lang.Object object, java.lang.Object value)
@@ -179,8 +176,8 @@ public class PcaDataTypeDescriptor
         try
         {
           PcaDataType target = (PcaDataType) object;
-          target.setEigenMatrix(
-                  (jalview.schemabinding.version2.EigenMatrix) value);
+          target.setTridiagonalD(
+                  (jalview.schemabinding.version2.TridiagonalD) value);
         } catch (java.lang.Exception ex)
         {
           throw new IllegalStateException(ex.toString());
@@ -189,7 +186,7 @@ public class PcaDataTypeDescriptor
 
       public java.lang.Object newInstance(java.lang.Object parent)
       {
-        return new jalview.schemabinding.version2.EigenMatrix();
+        return new jalview.schemabinding.version2.TridiagonalD();
       }
     };
     desc.setHandler(handler);
@@ -198,16 +195,16 @@ public class PcaDataTypeDescriptor
     desc.setMultivalued(false);
     addFieldDescriptor(desc);
 
-    // -- validation code for: _eigenMatrix
+    // -- validation code for: _tridiagonalD
     fieldValidator = new org.exolab.castor.xml.FieldValidator();
     fieldValidator.setMinOccurs(1);
     { // -- local scope
     }
     desc.setValidator(fieldValidator);
-    // -- _eigenMatrixD
+    // -- _tridiagonalE
     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.EigenMatrixD.class,
-            "_eigenMatrixD", "eigenMatrixD",
+            jalview.schemabinding.version2.TridiagonalE.class,
+            "_tridiagonalE", "tridiagonalE",
             org.exolab.castor.xml.NodeType.Element);
     handler = new org.exolab.castor.xml.XMLFieldHandler()
     {
@@ -215,7 +212,7 @@ public class PcaDataTypeDescriptor
               throws IllegalStateException
       {
         PcaDataType target = (PcaDataType) object;
-        return target.getEigenMatrixD();
+        return target.getTridiagonalE();
       }
 
       public void setValue(java.lang.Object object, java.lang.Object value)
@@ -224,8 +221,8 @@ public class PcaDataTypeDescriptor
         try
         {
           PcaDataType target = (PcaDataType) object;
-          target.setEigenMatrixD(
-                  (jalview.schemabinding.version2.EigenMatrixD) value);
+          target.setTridiagonalE(
+                  (jalview.schemabinding.version2.TridiagonalE) value);
         } catch (java.lang.Exception ex)
         {
           throw new IllegalStateException(ex.toString());
@@ -234,7 +231,7 @@ public class PcaDataTypeDescriptor
 
       public java.lang.Object newInstance(java.lang.Object parent)
       {
-        return new jalview.schemabinding.version2.EigenMatrixD();
+        return new jalview.schemabinding.version2.TridiagonalE();
       }
     };
     desc.setHandler(handler);
@@ -243,16 +240,16 @@ public class PcaDataTypeDescriptor
     desc.setMultivalued(false);
     addFieldDescriptor(desc);
 
-    // -- validation code for: _eigenMatrixD
+    // -- validation code for: _tridiagonalE
     fieldValidator = new org.exolab.castor.xml.FieldValidator();
     fieldValidator.setMinOccurs(1);
     { // -- local scope
     }
     desc.setValidator(fieldValidator);
-    // -- _eigenMatrixE
+    // -- _eigenMatrix
     desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.EigenMatrixE.class,
-            "_eigenMatrixE", "eigenMatrixE",
+            jalview.schemabinding.version2.EigenMatrix.class,
+            "_eigenMatrix", "eigenMatrix",
             org.exolab.castor.xml.NodeType.Element);
     handler = new org.exolab.castor.xml.XMLFieldHandler()
     {
@@ -260,7 +257,7 @@ public class PcaDataTypeDescriptor
               throws IllegalStateException
       {
         PcaDataType target = (PcaDataType) object;
-        return target.getEigenMatrixE();
+        return target.getEigenMatrix();
       }
 
       public void setValue(java.lang.Object object, java.lang.Object value)
@@ -269,8 +266,8 @@ public class PcaDataTypeDescriptor
         try
         {
           PcaDataType target = (PcaDataType) object;
-          target.setEigenMatrixE(
-                  (jalview.schemabinding.version2.EigenMatrixE) value);
+          target.setEigenMatrix(
+                  (jalview.schemabinding.version2.EigenMatrix) value);
         } catch (java.lang.Exception ex)
         {
           throw new IllegalStateException(ex.toString());
@@ -279,7 +276,7 @@ public class PcaDataTypeDescriptor
 
       public java.lang.Object newInstance(java.lang.Object parent)
       {
-        return new jalview.schemabinding.version2.EigenMatrixE();
+        return new jalview.schemabinding.version2.EigenMatrix();
       }
     };
     desc.setHandler(handler);
@@ -288,7 +285,52 @@ public class PcaDataTypeDescriptor
     desc.setMultivalued(false);
     addFieldDescriptor(desc);
 
-    // -- validation code for: _eigenMatrixE
+    // -- validation code for: _eigenMatrix
+    fieldValidator = new org.exolab.castor.xml.FieldValidator();
+    fieldValidator.setMinOccurs(1);
+    { // -- local scope
+    }
+    desc.setValidator(fieldValidator);
+    // -- _eigenMatrixD
+    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
+            jalview.schemabinding.version2.EigenMatrixD.class,
+            "_eigenMatrixD", "eigenMatrixD",
+            org.exolab.castor.xml.NodeType.Element);
+    handler = new org.exolab.castor.xml.XMLFieldHandler()
+    {
+      public java.lang.Object getValue(java.lang.Object object)
+              throws IllegalStateException
+      {
+        PcaDataType target = (PcaDataType) object;
+        return target.getEigenMatrixD();
+      }
+
+      public void setValue(java.lang.Object object, java.lang.Object value)
+              throws IllegalStateException, IllegalArgumentException
+      {
+        try
+        {
+          PcaDataType target = (PcaDataType) object;
+          target.setEigenMatrixD(
+                  (jalview.schemabinding.version2.EigenMatrixD) value);
+        } catch (java.lang.Exception ex)
+        {
+          throw new IllegalStateException(ex.toString());
+        }
+      }
+
+      public java.lang.Object newInstance(java.lang.Object parent)
+      {
+        return new jalview.schemabinding.version2.EigenMatrixD();
+      }
+    };
+    desc.setHandler(handler);
+    desc.setNameSpaceURI("www.jalview.org");
+    desc.setRequired(true);
+    desc.setMultivalued(false);
+    addFieldDescriptor(desc);
+
+    // -- validation code for: _eigenMatrixD
     fieldValidator = new org.exolab.castor.xml.FieldValidator();
     fieldValidator.setMinOccurs(1);
     { // -- local scope
@@ -11,14 +11,14 @@ package jalview.schemabinding.version2.descriptors;
 //- Imported classes and packages -/
 //---------------------------------/
 
-import jalview.schemabinding.version2.EigenMatrixE;
+import jalview.schemabinding.version2.TridiagonalD;
 
 /**
- * Class EigenMatrixEDescriptor.
+ * Class TridiagonalDDescriptor.
  * 
  * @version $Revision$ $Date$
  */
-public class EigenMatrixEDescriptor extends
+public class TridiagonalDDescriptor extends
         jalview.schemabinding.version2.descriptors.DoubleVectorDescriptor
 {
 
@@ -50,13 +50,13 @@ public class EigenMatrixEDescriptor extends
   // - Constructors -/
   // ----------------/
 
-  public EigenMatrixEDescriptor()
+  public TridiagonalDDescriptor()
   {
     super();
     setExtendsWithoutFlatten(
             new jalview.schemabinding.version2.descriptors.DoubleVectorDescriptor());
     _nsURI = "www.jalview.org";
-    _xmlName = "eigenMatrixE";
+    _xmlName = "tridiagonalD";
     _elementDefinition = true;
   }
 
@@ -91,7 +91,7 @@ public class EigenMatrixEDescriptor extends
    */
   public java.lang.Class getJavaClass()
   {
-    return jalview.schemabinding.version2.EigenMatrixE.class;
+    return jalview.schemabinding.version2.TridiagonalD.class;
   }
 
   /**
diff --git a/src/jalview/schemabinding/version2/descriptors/TridiagonalEDescriptor.java b/src/jalview/schemabinding/version2/descriptors/TridiagonalEDescriptor.java
new file mode 100644 (file)
index 0000000..117cb71
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+//---------------------------------/
+//- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.TridiagonalE;
+
+/**
+ * Class TridiagonalEDescriptor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class TridiagonalEDescriptor extends
+        jalview.schemabinding.version2.descriptors.DoubleVectorDescriptor
+{
+
+  // --------------------------/
+  // - Class/Member Variables -/
+  // --------------------------/
+
+  /**
+   * Field _elementDefinition.
+   */
+  private boolean _elementDefinition;
+
+  /**
+   * Field _nsPrefix.
+   */
+  private java.lang.String _nsPrefix;
+
+  /**
+   * Field _nsURI.
+   */
+  private java.lang.String _nsURI;
+
+  /**
+   * Field _xmlName.
+   */
+  private java.lang.String _xmlName;
+
+  // ----------------/
+  // - Constructors -/
+  // ----------------/
+
+  public TridiagonalEDescriptor()
+  {
+    super();
+    setExtendsWithoutFlatten(
+            new jalview.schemabinding.version2.descriptors.DoubleVectorDescriptor());
+    _nsURI = "www.jalview.org";
+    _xmlName = "tridiagonalE";
+    _elementDefinition = true;
+  }
+
+  // -----------/
+  // - Methods -/
+  // -----------/
+
+  /**
+   * Method getAccessMode.
+   * 
+   * @return the access mode specified for this class.
+   */
+  public org.exolab.castor.mapping.AccessMode getAccessMode()
+  {
+    return null;
+  }
+
+  /**
+   * Method getIdentity.
+   * 
+   * @return the identity field, null if this class has no identity.
+   */
+  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
+  {
+    return super.getIdentity();
+  }
+
+  /**
+   * Method getJavaClass.
+   * 
+   * @return the Java class represented by this descriptor.
+   */
+  public java.lang.Class getJavaClass()
+  {
+    return jalview.schemabinding.version2.TridiagonalE.class;
+  }
+
+  /**
+   * Method getNameSpacePrefix.
+   * 
+   * @return the namespace prefix to use when marshaling as XML.
+   */
+  public java.lang.String getNameSpacePrefix()
+  {
+    return _nsPrefix;
+  }
+
+  /**
+   * Method getNameSpaceURI.
+   * 
+   * @return the namespace URI used when marshaling and unmarshaling as XML.
+   */
+  public java.lang.String getNameSpaceURI()
+  {
+    return _nsURI;
+  }
+
+  /**
+   * Method getValidator.
+   * 
+   * @return a specific validator for the class described by this
+   *         ClassDescriptor.
+   */
+  public org.exolab.castor.xml.TypeValidator getValidator()
+  {
+    return this;
+  }
+
+  /**
+   * Method getXMLName.
+   * 
+   * @return the XML Name for the Class being described.
+   */
+  public java.lang.String getXMLName()
+  {
+    return _xmlName;
+  }
+
+  /**
+   * Method isElementDefinition.
+   * 
+   * @return true if XML schema definition of this Class is that of a global
+   *         element or element with anonymous type definition.
+   */
+  public boolean isElementDefinition()
+  {
+    return _elementDefinition;
+  }
+
+}
diff --git a/src/jalview/schemabinding/version2/descriptors/TridiagonalMatrixDescriptor.java b/src/jalview/schemabinding/version2/descriptors/TridiagonalMatrixDescriptor.java
new file mode 100644 (file)
index 0000000..3abbeab
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+//---------------------------------/
+//- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.TridiagonalMatrix;
+
+/**
+ * Class TridiagonalMatrixDescriptor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class TridiagonalMatrixDescriptor extends
+        jalview.schemabinding.version2.descriptors.DoubleMatrixDescriptor
+{
+
+  // --------------------------/
+  // - Class/Member Variables -/
+  // --------------------------/
+
+  /**
+   * Field _elementDefinition.
+   */
+  private boolean _elementDefinition;
+
+  /**
+   * Field _nsPrefix.
+   */
+  private java.lang.String _nsPrefix;
+
+  /**
+   * Field _nsURI.
+   */
+  private java.lang.String _nsURI;
+
+  /**
+   * Field _xmlName.
+   */
+  private java.lang.String _xmlName;
+
+  // ----------------/
+  // - Constructors -/
+  // ----------------/
+
+  public TridiagonalMatrixDescriptor()
+  {
+    super();
+    setExtendsWithoutFlatten(
+            new jalview.schemabinding.version2.descriptors.DoubleMatrixDescriptor());
+    _nsURI = "www.jalview.org";
+    _xmlName = "tridiagonalMatrix";
+    _elementDefinition = true;
+  }
+
+  // -----------/
+  // - Methods -/
+  // -----------/
+
+  /**
+   * Method getAccessMode.
+   * 
+   * @return the access mode specified for this class.
+   */
+  public org.exolab.castor.mapping.AccessMode getAccessMode()
+  {
+    return null;
+  }
+
+  /**
+   * Method getIdentity.
+   * 
+   * @return the identity field, null if this class has no identity.
+   */
+  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
+  {
+    return super.getIdentity();
+  }
+
+  /**
+   * Method getJavaClass.
+   * 
+   * @return the Java class represented by this descriptor.
+   */
+  public java.lang.Class getJavaClass()
+  {
+    return jalview.schemabinding.version2.TridiagonalMatrix.class;
+  }
+
+  /**
+   * Method getNameSpacePrefix.
+   * 
+   * @return the namespace prefix to use when marshaling as XML.
+   */
+  public java.lang.String getNameSpacePrefix()
+  {
+    return _nsPrefix;
+  }
+
+  /**
+   * Method getNameSpaceURI.
+   * 
+   * @return the namespace URI used when marshaling and unmarshaling as XML.
+   */
+  public java.lang.String getNameSpaceURI()
+  {
+    return _nsURI;
+  }
+
+  /**
+   * Method getValidator.
+   * 
+   * @return a specific validator for the class described by this
+   *         ClassDescriptor.
+   */
+  public org.exolab.castor.xml.TypeValidator getValidator()
+  {
+    return this;
+  }
+
+  /**
+   * Method getXMLName.
+   * 
+   * @return the XML Name for the Class being described.
+   */
+  public java.lang.String getXMLName()
+  {
+    return _xmlName;
+  }
+
+  /**
+   * Method isElementDefinition.
+   * 
+   * @return true if XML schema definition of this Class is that of a global
+   *         element or element with anonymous type definition.
+   */
+  public boolean isElementDefinition()
+  {
+    return _elementDefinition;
+  }
+
+}