OSDN Git Service

b6df01955f089af908d10973bf9c84b412408a9c
[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      * boolean値から真偽Valueを返す。\r
24      * @param bool boolean値\r
25      * @return TRUEかFALSE\r
26      */\r
27     public static JsBoolean valueOf(boolean bool){\r
28         if(bool) return TRUE;\r
29         return FALSE;\r
30     }\r
31 \r
32     /**\r
33      * コンストラクタ。\r
34      * 2回しか呼ばれないはず。\r
35      */\r
36     private JsBoolean(){\r
37         super();\r
38         return;\r
39     }\r
40 \r
41     /**\r
42      * boolean値を返す。\r
43      * @return boolean値\r
44      */\r
45     public boolean booleanValue(){\r
46         if(this == TRUE) return true;\r
47         return false;\r
48     }\r
49 \r
50     /**\r
51      * 真か判定する。\r
52      * @return 真ならtrue\r
53      */\r
54     public boolean isTrue(){\r
55         if(this == TRUE) return true;\r
56         return false;\r
57     }\r
58 \r
59     /**\r
60      * 偽か判定する。\r
61      * @return 偽ならtrue\r
62      */\r
63     public boolean isFalse(){\r
64         if(this == FALSE) return true;\r
65         return false;\r
66     }\r
67 \r
68     /**\r
69      * {@inheritDoc}\r
70      * @return {@inheritDoc}\r
71      */\r
72     @Override\r
73     public int hashCode(){\r
74         if(this.isTrue()) return Boolean.TRUE.hashCode();\r
75         return Boolean.FALSE.hashCode();\r
76     }\r
77 \r
78     /**\r
79      * {@inheritDoc}\r
80      * @param obj {@inheritDoc}\r
81      * @return {@inheritDoc}\r
82      */\r
83     @Override\r
84     public boolean equals(Object obj){\r
85         if(obj == null) return false;\r
86         if(this == obj) return true;\r
87 \r
88         if( ! (obj instanceof JsBoolean) ) return false;\r
89 \r
90         return false;\r
91     }\r
92 \r
93     /**\r
94      * {@inheritDoc}\r
95      * @param value {@inheritDoc}\r
96      * @return {@inheritDoc}\r
97      */\r
98     public int compareTo(JsBoolean value){\r
99         if(value == null) throw new NullPointerException();\r
100         if(this == value) return 0;\r
101 \r
102         if     (this.isTrue()  && value.isFalse()) return -1;\r
103         else if(this.isFalse() && value.isTrue() ) return +1;\r
104 \r
105         return 0;\r
106     }\r
107 \r
108     /**\r
109      * {@inheritDoc}\r
110      * @return {@inheritDoc}\r
111      */\r
112     @Override\r
113     public String toString(){\r
114         if(this.isTrue()) return "true";\r
115         return "false";\r
116     }\r
117 \r
118 }\r