error things
[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 String getLabel( final int x ) {
32         return _labels[ x ];
33     }
34
35     final public String getRowAsString( final int x, final char separator ) {
36         final StringBuilder sb = new StringBuilder();
37         sb.append( getLabel( x ) );
38         for( int y = 0; y < size(); ++y ) {
39             sb.append( separator );
40             sb.append( get( x, y ) );
41         }
42         return sb.toString();
43     }
44
45     final public void inreaseByOne( final int x, final int y ) {
46         _data[ x ][ y ]++;
47     }
48
49     final public void set( final int x, final int y, final int value ) {
50         _data[ x ][ y ] = value;
51     }
52
53     final public void setLabel( final int x, final String label ) {
54         if ( label == null ) {
55             throw new IllegalArgumentException( "matrix label must not be null" );
56         }
57         _labels[ x ] = label;
58     }
59
60     final public int size() {
61         return _labels.length;
62     }
63
64     @Override
65     public String toString() {
66         final StringBuilder sb = new StringBuilder();
67         for( int x = 0; x < size(); ++x ) {
68             if ( getLabel( x ) != null ) {
69                 sb.append( getLabel( x ) );
70                 sb.append( "\t" );
71             }
72             for( int y = 0; y < size(); ++y ) {
73                 sb.append( get( x, y ) );
74                 sb.append( "\t" );
75             }
76             sb.append( ForesterUtil.LINE_SEPARATOR );
77         }
78         return sb.toString();
79     }
80 }