OSDN Git Service

remove subversion keyword
[jindolf/Jindolf.git] / src / main / java / jp / sourceforge / jindolf / json / JsPair.java
1 /*\r
2  * JSON pair in object\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 import java.io.IOException;\r
11 \r
12 /**\r
13  * JSON オブジェクトValue内に列挙される、名前の付いたValueとの組。\r
14  * 後での変更は不可能。\r
15  */\r
16 public class JsPair{\r
17 \r
18     private final String name;\r
19     private final JsValue value;\r
20 \r
21     /**\r
22      * コンストラクタ。\r
23      * @param name 名前\r
24      * @param value JSON Value\r
25      * @throws NullPointerException 名前もしくはValueがnull\r
26      */\r
27     public JsPair(String name, JsValue value)\r
28             throws NullPointerException{\r
29         super();\r
30 \r
31         if(name  == null || value == null) throw new NullPointerException();\r
32 \r
33         this.name = name;\r
34         this.value = value;\r
35 \r
36         return;\r
37     }\r
38 \r
39     /**\r
40      * コンストラクタ。\r
41      * @param name 名前\r
42      * @param text 文字列\r
43      * @throws NullPointerException 名前がnull\r
44      */\r
45     public JsPair(String name, CharSequence text)\r
46             throws NullPointerException{\r
47         this(name, (JsValue) new JsString(text) );\r
48         return;\r
49     }\r
50 \r
51     /**\r
52      * コンストラクタ。\r
53      * @param name 名前\r
54      * @param bool 真偽\r
55      * @throws NullPointerException 名前がnull\r
56      */\r
57     public JsPair(String name, boolean bool)\r
58             throws NullPointerException{\r
59         this(name, JsBoolean.valueOf(bool));\r
60         return;\r
61     }\r
62 \r
63     /**\r
64      * コンストラクタ。\r
65      * @param name 名前\r
66      * @param number 数値\r
67      * @throws NullPointerException 名前がnull\r
68      */\r
69     public JsPair(String name, long number)\r
70             throws NullPointerException{\r
71         this(name, new JsNumber(number));\r
72         return;\r
73     }\r
74 \r
75     /**\r
76      * コンストラクタ。\r
77      * @param name 名前\r
78      * @param number 数値\r
79      * @throws NullPointerException 名前がnull\r
80      */\r
81     public JsPair(String name, double number)\r
82             throws NullPointerException{\r
83         this(name, new JsNumber(number));\r
84         return;\r
85     }\r
86 \r
87     /**\r
88      * 名前を返す。\r
89      * @return 名前\r
90      */\r
91     public String getName(){\r
92         return this.name;\r
93     }\r
94 \r
95     /**\r
96      * JSON Valueを返す。\r
97      * @return JSON Value\r
98      */\r
99     public JsValue getValue(){\r
100         return this.value;\r
101     }\r
102 \r
103     /**\r
104      * {@inheritDoc}\r
105      * @return {@inheritDoc}\r
106      */\r
107     @Override\r
108     public String toString(){\r
109         StringBuilder text = new StringBuilder();\r
110 \r
111         try{\r
112             JsString.writeText(text, this.name);\r
113         }catch(IOException e){\r
114             assert false; // NEVER!\r
115         }\r
116 \r
117         text.append(':')\r
118             .append(this.value);\r
119 \r
120         return text.toString();\r
121     }\r
122 \r
123 }\r