View Javadoc
1   /*
2    * The baseCode project
3    * 
4    * Copyright (c) 2006 University of British Columbia
5    * 
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *       http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   *
18   */
19  package ubic.basecode.dataStructure.matrix;
20  
21  /**
22   * @author pavlidis
23   */
24  public class IntegerMatrix<R, C> extends AbstractMatrix<R, C, Integer> implements PrimitiveMatrix<R, C, Integer> {
25  
26      private static final long serialVersionUID = -8413796057024940237L;
27      private ObjectMatrixImpl<R, C, Integer> matrix;
28  
29      public IntegerMatrix( int x, int y ) {
30          super();
31          matrix = new ObjectMatrixImpl<>( x, y );
32      }
33  
34      /**
35       * @return
36       */
37      @Override
38      public int columns() {
39          return matrix.columns();
40      }
41  
42      /**
43       * @param row
44       * @param column
45       * @return
46       */
47      public Integer get( int row, int column ) {
48          return matrix.get( row, column );
49      }
50  
51      @Override
52      public Integer getByKeys( R r, C c ) {
53          return this.get( getRowIndexByName( r ), getColIndexByName( c ) );
54      }
55  
56      @Override
57      public Integer[] getColObj( int col ) {
58          Integer[] result = new Integer[rows()];
59          for ( int i = 0; i < rows(); i++ ) {
60              result[i] = get( i, col );
61          }
62          return result;
63      }
64  
65      public Integer[] getColumn( int col ) {
66          Integer[] result = new Integer[rows()];
67          for ( int i = 0; i < rows(); i++ ) {
68              result[i] = get( i, col );
69          }
70          return result;
71      }
72  
73      @Override
74      public Integer getEntry( int row, int column ) {
75          return get( row, column );
76      }
77  
78      @Override
79      public Integer getObject( int row, int col ) {
80          return get( row, col );
81      }
82  
83      public Integer[] getRow( int row ) {
84          Integer[] result = new Integer[columns()];
85          for ( int i = 0; i < columns(); i++ ) {
86              result[i] = get( i, row );
87          }
88          return result;
89  
90      }
91  
92      @Override
93      public Integer[] getRowObj( int row ) {
94          Integer[] result = new Integer[columns()];
95          for ( int i = 0; i < columns(); i++ ) {
96              result[i] = get( row, i );
97          }
98          return result;
99      }
100 
101     @Override
102     public boolean isMissing( int i, int j ) {
103         return get( i, j ) == null;
104     }
105 
106     /**
107      * @return
108      */
109     @Override
110     public int rows() {
111         return matrix.rows();
112     }
113 
114     @Override
115     public void set( int row, int column, Integer value ) {
116         matrix.set( row, column, value );
117     }
118 
119     /*
120      * (non-Javadoc)
121      * 
122      * @see ubic.basecode.dataStructure.matrix.NamedMatrix#set(java.lang.Object, java.lang.Object, java.lang.Object)
123      */
124     @Override
125     public void setByKeys( R r, C c, Integer v ) {
126         this.set( getRowIndexByName( r ), getColIndexByName( c ), v );
127     }
128 
129     /**
130      * @param row
131      * @param column
132      * @param value
133      */
134     public void setObj( int row, int column, Integer value ) {
135         matrix.set( row, column, value );
136     }
137 
138     /**
139      * @return
140      */
141     @Override
142     public int size() {
143         return matrix.size();
144     }
145 
146     /**
147      * @return java.lang.Integer
148      */
149     @Override
150     public String toString() {
151         StringBuffer buf = new StringBuffer();
152         buf.append( "label" );
153         for ( int i = 0; i < columns(); i++ ) {
154             buf.append( "\t" + getColName( i ) );
155         }
156         buf.append( "\n" );
157 
158         for ( int i = 0; i < rows(); i++ ) {
159             buf.append( getRowName( i ) );
160             for ( int j = 0; j < columns(); j++ ) {
161                 buf.append( "\t" + get( i, j ) );
162             }
163             buf.append( "\n" );
164         }
165         return buf.toString();
166     }
167 
168 }