work on taxonomy extraction for applets for aLeaves MAFFT suite
[jalview.git] / forester / java / src / org / forester / datastructures / IntMatrix.java
1
2 package org.forester.datastructures;
3
4 import java.util.List;
5
6 import org.forester.util.ForesterUtil;
7
8 public final class IntMatrix {
9
10     private final int    _data[][];
11     private final String _labels[];
12
13     public IntMatrix( final int size ) {
14         _data = new int[ size ][ size ];
15         _labels = new String[ size ];
16     }
17
18     public IntMatrix( final List<String> labels ) {
19         final int size = labels.size();
20         _data = new int[ size ][ size ];
21         _labels = new String[ size ];
22         for( int i = 0; i < size; ++i ) {
23             setLabel( i, labels.get( i ) );
24         }
25     }
26
27     final public int get( final int x, final int y ) {
28         return _data[ x ][ y ];
29     }
30
31     final public void set( final int x, final int y, final int value ) {
32         _data[ x ][ y ] = value;
33     }
34
35     final public void inreaseByOne( final int x, final int y ) {
36         _data[ x ][ y ]++;
37     }
38
39     final public String getLabel( final int x ) {
40         return _labels[ x ];
41     }
42
43     final public void setLabel( final int x, final String label ) {
44         if ( label == null ) {
45             throw new IllegalArgumentException( "matrix label must not be null" );
46         }
47         _labels[ x ] = label;
48     }
49
50     final public int size() {
51         return _labels.length;
52     }
53
54     @Override
55     public String toString() {
56         final StringBuilder sb = new StringBuilder();
57         for( int x = 0; x < size(); ++x ) {
58             if ( getLabel( x ) != null ) {
59                 sb.append( getLabel( x ) );
60                 sb.append( "\t" );
61             }
62             for( int y = 0; y < size(); ++y ) {
63                 sb.append( get( x, y ) );
64                 sb.append( "\t" );
65             }
66             sb.append( ForesterUtil.LINE_SEPARATOR );
67         }
68         return sb.toString();
69     }
70 }