29de80a500be87ccbdf2dd25ff2c58e6133df443
[framework/osp/social.git] / inc / FSclOrganization.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  * @file        FSclOrganization.h
19  * @brief       This is the header file for the %Organization class.
20  *
21  * This header file contains the declarations of the %Organization class.
22  */
23 #ifndef _FSCL_ORGANIZATION_H_
24 #define _FSCL_ORGANIZATION_H_
25
26 #include <FBaseResult.h>
27 #include <FBaseObject.h>
28 #include <FSclTypes.h>
29
30 namespace Tizen { namespace Base
31 {
32 class String;
33 }}
34
35 namespace Tizen { namespace Social
36 {
37
38 /**
39  * @class       Organization
40  * @brief       This class represents the organization information.
41  *
42  * @since       2.0
43  *
44  * @final       This class is not intended for extension.
45  *
46  * The %Organization class represents the organization information of a person. @n
47  * The organization information consists of name, job title, role, agent, and department.
48  */
49 class _OSP_EXPORT_ Organization
50         : public Tizen::Base::Object
51 {
52 public:
53         /**
54          * This is the default constructor for this class.
55          *
56          * @since       2.0
57          */
58         Organization(void);
59
60         /**
61          * Copying of objects using this copy constructor is allowed.
62          *
63          * @since       2.0
64          *
65          * @param[in]   rhs             An instance of %Organization
66          */
67         Organization(const Organization& rhs);
68
69         /**
70          * This destructor overrides Tizen::Base::Object::~Object().
71          *
72          * @since       2.0
73          */
74         virtual ~Organization(void);
75
76         /**
77          * Checks whether the value of the specified instance is equal to the value of the current instance of Tizen::Base::Object.
78          *
79          * @since       2.0
80          *
81          * @return      @c true if the value of the specified instance of Tizen::Base::Object is equal to the value of the current instance of %Tizen::Base::Object, @n
82          *                      else @c false
83          * @param[in]   rhs             An instance of Tizen::Base::Object to compare
84          */
85         virtual bool Equals(const Tizen::Base::Object& rhs) const;
86
87         /**
88          * Gets the hash value of the current instance of Tizen::Base::Object.
89          *
90          * @since       2.0
91          *
92          * @return      An integer value indicating the hash value of the current instance of Tizen::Base::Object
93          */
94         virtual int GetHashCode(void) const;
95
96         /**
97          * Gets the organization name.
98          *
99          * @since       2.0
100          *
101          * @return      The organization name
102          */
103         Tizen::Base::String GetName(void) const;
104
105         /**
106          * Gets the job title.
107          *
108          * @since       2.0
109          *
110          * @return      The job title
111          */
112         Tizen::Base::String GetJobTitle(void) const;
113
114         /**
115          * Gets the department. 
116          *
117          * @since       2.0
118          *
119          * @return      The department
120          */
121         Tizen::Base::String GetDepartment(void) const;
122
123         /**
124          * Gets the role.
125          *
126          * @since       2.0
127          *
128          * @return      The role
129          */
130         Tizen::Base::String GetRole(void) const;
131
132         /**
133          * Gets the agent.
134          *
135          * @since       2.0
136          *
137          * @return      The agent
138          */
139         Tizen::Base::String GetAgent(void) const;
140
141         /**
142          * Gets the organization type.
143          *
144          * @since       2.1
145          *
146          * @return      The organization type
147          */
148         OrganizationType GetType(void) const;
149
150         /**
151          * Gets the label of the organization.
152          *
153          * @since       2.1
154          *
155          * @return      The organization label
156          */
157         Tizen::Base::String GetLabel(void) const;
158
159         /**
160          * Gets the location.
161          *
162          * @since       2.1
163          *
164          * @return      The location
165          */
166         Tizen::Base::String GetLocation(void) const;
167
168         /**
169          * Gets the description.
170          *
171          * @since       2.1
172          *
173          * @return      The description
174          */
175         Tizen::Base::String GetDescription(void) const;
176
177         /**
178          * Gets the phonetic name.
179          *
180          * @since       2.1
181          *
182          * @return      The phonetic name
183          */
184         Tizen::Base::String GetPhoneticName(void) const;
185
186         /**
187          * Gets the logo image path.
188          *
189          * @since       2.1
190          *
191          * @return      The logo image file path
192          */
193         Tizen::Base::String GetLogoPath(void) const;
194
195         /**
196         * Sets the name of the organization.
197         *
198         * @since        2.0
199         *
200         * @param[in]    name    The organization name
201         */
202         void SetName(const Tizen::Base::String& name);
203
204         /**
205          * Sets the job title.
206          *
207          * @since       2.0
208          *
209          * @param[in]   jobTitle        The job title
210          */
211         void SetJobTitle(const Tizen::Base::String& jobTitle);
212
213         /**
214          * Sets the department.
215          *
216          * @since       2.0
217          *
218          * @param[in]   department      The department
219          */
220         void SetDepartment(const Tizen::Base::String& department);
221
222         /**
223          * Sets the role.
224          *
225          * @since       2.0
226          *
227          * @param[in]   role    The role
228          */
229         void SetRole(const Tizen::Base::String& role);
230
231         /**
232          * Sets the agent.
233          *
234          * @since       2.0
235          *
236          * @param[in]   agent           The agent
237          */
238         void SetAgent(const Tizen::Base::String& agent);
239
240         /**
241          * Sets the organization type.
242          *
243          * @since       2.1
244          *
245          * @param[in]   type    The organization type
246          */
247         void SetType(OrganizationType type);
248
249         /**
250          * Sets the label of the organization.
251          *
252          * @since       2.1
253          *
254          * @param[in]   label   The organization label
255          */
256         void SetLabel(const Tizen::Base::String& label);
257
258         /**
259          * Sets the location.
260          *
261          * @since       2.1
262          *
263          * @param[in]   location    The location
264          */
265         void SetLocation(const Tizen::Base::String& location);
266
267         /**
268          * Sets the description.
269          *
270          * @since       2.1
271          *
272          * @param[in]   description           The description
273          */
274         void SetDescription(const Tizen::Base::String& description);
275
276         /**
277          * Sets the phonetic name.
278          *
279          * @since       2.1
280          *
281          * @param[in]   phoneticName    The phonetic name
282          */
283         void SetPhoneticName(const Tizen::Base::String& phoneticName);
284
285         /**
286          * Sets the logo image. @n
287          * If the specified @c filePath is an empty string, the current logo image is removed.
288          *
289          * @since       2.1
290          *
291          * @param[in]   filePath           The file path of the logo image
292          * @exception   E_SUCCESS               The method is successful.
293          * @exception   E_INVALID_ARG           The length of the specified @c filePath exceeds system limitations.
294          * @exception   E_FILE_NOT_FOUND        The specified file cannot be found or accessed.
295          * @exception   E_SYSTEM                The method cannot proceed due to a severe system error.
296          * @remarks     The logo image is copied to the specific directory for logo images by the system when the contact is added or updated.
297          *              Therefore, GetLogoPath() returns the file path to which the logo image is copied.
298          */
299         result SetLogo(const Tizen::Base::String& filePath);
300
301         /**
302          * Copying of objects using this copy assignment operator is allowed.
303          *
304          * @since       2.0
305          *
306          * @param[in]   rhs             An instance of %Organization
307          */
308         Organization& operator =(const Organization& rhs);
309
310         /**
311          * Checks whether the data in the specified instance of %Organization is equal to the data in the current instance.
312          *
313          * @since       2.0
314          *
315          * @return              @c true if the data in the specified instance equals the data in the current instance, @n
316          *                              else @c false
317          * @param[in]   rhs             An instance of %Organization
318          */
319         bool operator ==(const Organization& rhs) const;
320
321         /**
322          * Checks whether the data in the specified instance of %Organization is not equal to the data in the current instance.
323          *
324          * @since       2.0
325          *
326          * @return              @c true if the data in the specified instance is not equal to the data in the current instance, @n
327          *                              else @c false
328          * @param[in]   rhs             An instance of %Organization
329          */
330         bool operator !=(const Organization& rhs) const;
331
332 private:
333         friend class _OrganizationImpl;
334         class _OrganizationImpl* __pOrganizationImpl;
335 }; // Organization
336
337 }} // Tizen::Social
338
339 #endif //_FSCL_ORGANIZATION_H_