]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet.common/src/org/simantics/spreadsheet/common/matrix/VariantMatrix.java
Sync git svn branch with SVN repository r33269.
[simantics/platform.git] / bundles / org.simantics.spreadsheet.common / src / org / simantics / spreadsheet / common / matrix / VariantMatrix.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.spreadsheet.common.matrix;\r
13 \r
14 import java.util.ArrayList;\r
15 import java.util.Collection;\r
16 \r
17 import org.simantics.databoard.binding.mutable.Variant;\r
18 \r
19 public class VariantMatrix {\r
20 \r
21         public int rows;\r
22         public int columns;\r
23         public Variant[] data;\r
24         \r
25         public VariantMatrix() {\r
26                 \r
27         }\r
28         \r
29         public VariantMatrix(int rows, int columns) {\r
30                 this.rows = rows;\r
31                 this.columns = columns;\r
32                 this.data = new Variant[rows*columns];\r
33         }\r
34 \r
35         public int getColumnCount() {\r
36                 return columns;\r
37         }\r
38 \r
39         public int getRowCount() {\r
40                 return rows;\r
41         }\r
42 \r
43         public Variant get(int row, int column) {\r
44                 return data[column*rows + row];\r
45         }\r
46         \r
47         public void setColumn(int column, Collection<Variant> objects) {\r
48                 int index = rows*column;\r
49                 for(Variant o : objects) {\r
50                         data[index++] = o;\r
51                 }\r
52         }\r
53 \r
54         public void set(int row, int column, Variant object) {\r
55                 data[rows*column + row] = object;\r
56         }\r
57 \r
58         public Collection<Variant> getColumn(int column) {\r
59                 ArrayList<Variant> result = new ArrayList<Variant>();\r
60                 for(int i=0;i<rows;i++) {\r
61                         result.add(data[rows*column+i]);\r
62                 }\r
63                 return result;\r
64         }\r
65 \r
66         public Collection<Variant> getRow(int row) {\r
67                 ArrayList<Variant> result = new ArrayList<Variant>();\r
68                 for(int i=0;i<columns;i++) {\r
69                         result.add(data[row + columns*i]);\r
70                 }\r
71                 return result;\r
72         }\r
73         \r
74 }\r