OSDN Git Service

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