Do not install debug libraries on our own
[platform/framework/native/json.git] / inc / FWebJsonJsonNull.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file                FWebJsonJsonNull.h
20  * @brief               This is the header file for the %JsonNull class.
21  *
22  * This header file contains the declarations of the %JsonNull class.
23  * This class represents the JSON value of type @c null.
24  */
25 #ifndef _FWEB_JSON_JSON_NULL_H_
26 #define _FWEB_JSON_JSON_NULL_H_
27
28 #include <FBaseObject.h>
29 #include <FBaseString.h>
30 #include <FWebJsonIJsonValue.h>
31
32 namespace Tizen { namespace Web { namespace Json
33 {
34 class _JsonNullImpl;
35 }}} // Tizen::Web::Json
36
37 namespace Tizen { namespace Web { namespace Json
38 {
39
40 /**
41  * @class       JsonNull
42  * @brief       This class represents the JSON value of type @c null.
43  *
44  * @since       2.0
45  *
46  * @final       This class is not intended for extension.
47  *
48  * The %JsonNull class represents the JSON value of type @c null.
49  * 
50  * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/web/json_namespace.htm">JSON Guide</a>.
51  *
52  */
53 class _OSP_EXPORT_ JsonNull
54         : public IJsonValue
55         , public Tizen::Base::Object
56 {
57 public:
58         /**
59          * This is the default constructor for this class.
60          *
61          * @since       2.0
62          */
63         JsonNull(void);
64
65         /**
66          * Copying of objects using this copy constructor is allowed. @n
67          * Initializes a new instance of %JsonNull to the specified @c value.
68          *
69          * @since       2.0
70          *
71          * @param[in]   value   An instance of %JsonNull
72          */
73         JsonNull(const JsonNull& value);
74
75         /**
76          * This destructor overrides Tizen::Base::Object::~Object().
77          *
78          * @since       2.0
79          */
80         virtual ~JsonNull(void);
81
82         /**
83          *      Checks whether the value of the specified instance equals the value of the current instance.
84          *
85          *      @since          2.0
86          *
87          *      @return                              @c true if the value of the current instance equals the value of the specified instance, @n
88          *                                else @c false
89          *      @param[in]      obj                  The object to compare with the current instance of %JsonNull @n
90          *                                                                      This method returns @c false if the specified object is not %JsonNull.
91          *  @see                Tizen::Base::Object::Equals()
92          */
93         virtual bool Equals(const Object& obj) const;
94
95         /**
96          *      Gets the hash value of the current instance.
97          *
98          *      @since          2.0
99          *
100          *      @return         An integer value indicating the hash value of the current instance
101          *      @remarks    The two equal instances must return the same hash value. For better performance,
102          *                              the used hash function must generate a random distribution for all inputs. @n
103          *                              The default implementation of this method returns the address of the current instance.
104          */
105         virtual int GetHashCode(void) const;
106
107         /**
108          * Gets the type of the object (always @c JSON_NULL).
109          *
110          * @since               2.0
111          *
112          * @return  The JSON type
113          */
114         JsonType GetType(void) const;
115
116         /**
117          *      Converts the value of the calling object from %JsonNull to a string.
118          *
119          *      @since  2.0
120          *
121          *      @return A string representing the value of the current instance
122          */
123         Tizen::Base::String ToString(void) const;
124
125         /**
126          * Assigns the value of the specified instance of %JsonNull to the current instance of %JsonNull.
127          *
128          * @since               2.0
129          *
130          * @param[in]   rhs     An instance of %JsonNull
131          */
132         JsonNull& operator =(const JsonNull& rhs);
133
134         /**
135          *      Checks whether the values of the two %JsonNull objects are equal.
136          *
137          *      @since          2.0
138          *
139          *      @return                 @c true if the values of the objects are equal, @n
140          *                   else @c false
141          *      @param[in]      rhs             A %JsonNull instance to compare with the current instance
142          */
143         bool operator ==(const JsonNull& rhs) const;
144
145
146         /**
147          *      Checks whether the values of the two %JsonNull objects are not equal.
148          *
149          *      @since          2.0
150          *
151          *      @return                     @c true if the values of the objects are not equal, @n
152          *                       else @c false
153          *      @param[in]      rhs             A %JsonNull instance to compare with the current instance
154          */
155         bool operator !=(const JsonNull& rhs) const;
156
157 private:
158         _JsonNullImpl* __pJsonNullImpl;
159
160         friend class _JsonNullImpl;
161 }; // JsonNull
162
163 }}} // Tizen::Web::Json
164 #endif // _FWEB_JSON_JSON_NULL_H_