OSDN Git Service

クラスメンバ定義順統一
[jindolf/Jindolf.git] / src / main / java / jp / sourceforge / jindolf / json / JsBoolean.java
1 /*\r
2  * JSON boolean value\r
3  *\r
4  * License : The MIT License\r
5  * Copyright(c) 2009 olyutorskii\r
6  */\r
7 \r
8 package jp.sourceforge.jindolf.json;\r
9 \r
10 /**\r
11  * JSON 真偽Value。\r
12  */\r
13 public final class JsBoolean\r
14         extends AbstractJsValue\r
15         implements Comparable<JsBoolean> {\r
16 \r
17     /** 真。 */\r
18     public static final JsBoolean TRUE  = new JsBoolean();\r
19     /** 偽。 */\r
20     public static final JsBoolean FALSE = new JsBoolean();\r
21 \r
22 \r
23     /**\r
24      * コンストラクタ。\r
25      * 2回しか呼ばれないはず。\r
26      */\r
27     private JsBoolean(){\r
28         super();\r
29         return;\r
30     }\r
31 \r
32 \r
33     /**\r
34      * boolean値から真偽Valueを返す。\r
35      * @param bool boolean値\r
36      * @return TRUEかFALSE\r
37      */\r
38     public static JsBoolean valueOf(boolean bool){\r
39         if(bool) return TRUE;\r
40         return FALSE;\r
41     }\r
42 \r
43     /**\r
44      * boolean値を返す。\r
45      * @return boolean値\r
46      */\r
47     public boolean booleanValue(){\r
48         if(this == TRUE) return true;\r
49         return false;\r
50     }\r
51 \r
52     /**\r
53      * 真か判定する。\r
54      * @return 真ならtrue\r
55      */\r
56     public boolean isTrue(){\r
57         if(this == TRUE) return true;\r
58         return false;\r
59     }\r
60 \r
61     /**\r
62      * 偽か判定する。\r
63      * @return 偽ならtrue\r
64      */\r
65     public boolean isFalse(){\r
66         if(this == FALSE) return true;\r
67         return false;\r
68     }\r
69 \r
70     /**\r
71      * {@inheritDoc}\r
72      * @return {@inheritDoc}\r
73      */\r
74     @Override\r
75     public int hashCode(){\r
76         if(this.isTrue()) return Boolean.TRUE.hashCode();\r
77         return Boolean.FALSE.hashCode();\r
78     }\r
79 \r
80     /**\r
81      * {@inheritDoc}\r
82      * @param obj {@inheritDoc}\r
83      * @return {@inheritDoc}\r
84      */\r
85     @Override\r
86     public boolean equals(Object obj){\r
87         if(obj == null) return false;\r
88         if(this == obj) return true;\r
89 \r
90         if( ! (obj instanceof JsBoolean) ) return false;\r
91 \r
92         return false;\r
93     }\r
94 \r
95     /**\r
96      * {@inheritDoc}\r
97      * @param value {@inheritDoc}\r
98      * @return {@inheritDoc}\r
99      */\r
100     @Override\r
101     public int compareTo(JsBoolean value){\r
102         if(value == null) throw new NullPointerException();\r
103         if(this == value) return 0;\r
104 \r
105         if     (this.isTrue()  && value.isFalse()) return -1;\r
106         else if(this.isFalse() && value.isTrue() ) return +1;\r
107 \r
108         return 0;\r
109     }\r
110 \r
111     /**\r
112      * {@inheritDoc}\r
113      * @return {@inheritDoc}\r
114      */\r
115     @Override\r
116     public String toString(){\r
117         if(this.isTrue()) return "true";\r
118         return "false";\r
119     }\r
120 \r
121 }\r