OSDN Git Service

cflib は plugins プロジェクトから,Stigmata直下のプロジェクトに移行したため,このリポジトリからは削除した.
[stigmata/stigmata-plugins.git] / osb / src / main / java / jp / sourceforge / stigmata / birthmarks / osb / hungarian / Cell.java
1 package jp.sourceforge.stigmata.birthmarks.osb.hungarian;\r
2 \r
3 /**\r
4  * 2次元配列の特定のセルを表すクラス.\r
5  * このクラスのオブジェクトは,セルの行番号,列番号と,その値を保持する.\r
6  * \r
7  * @author Haruaki Tamada\r
8  */\r
9 public class Cell{\r
10     public static final class EmptyCell extends Cell{\r
11         public EmptyCell(int i, int j){\r
12             super(Double.NaN, i, j);\r
13         }\r
14 \r
15         public double getValue(){\r
16             throw new IllegalStateException();\r
17         }\r
18 \r
19         public boolean isAvailable(){\r
20             return false;\r
21         }\r
22 \r
23         public String toString(){\r
24             return String.format("(%d, %d): N/A", getX(), getY());\r
25         }\r
26     };\r
27     private int x, y;\r
28     private double value;\r
29 \r
30     /**\r
31      * 値と場所を指定してオブジェクトを作成する.\r
32      * @param value 値\r
33      * @param i 行番号\r
34      * @param j 列番号\r
35      */\r
36     Cell(double value, int i, int j){\r
37         this.x = i;\r
38         this.y = j;\r
39         this.value = value;\r
40     }\r
41 \r
42     public boolean isAvailable(){\r
43         return true;\r
44     }\r
45 \r
46     /**\r
47      * 値を返す.\r
48      */\r
49     public double getValue(){\r
50         return value;\r
51     }\r
52 \r
53     /**\r
54      * 行番号を返す.\r
55      */\r
56     public int getX(){\r
57         return x;\r
58     }\r
59 \r
60     /**\r
61      * 列番号を返す.\r
62      */\r
63     public int getY(){\r
64         return y;\r
65     }\r
66 \r
67     /**\r
68      * このオブジェクトの文字列表現を返す.\r
69      */\r
70     public String toString(){\r
71         return String.format("(%d, %d): %1.4g", getX(), getY(), getValue());\r
72     }\r
73 }\r