Beta merge 2
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Contact / ContactConverter.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file        ContactConverter.cpp
19  * @author      Kisub Song (kisubs.song@samsung.com)
20  * @version     0.1
21  * @brief
22  */
23
24 #ifndef _TIZEN_JS_CONTACT_CONVERTER_H_
25 #define _TIZEN_JS_CONTACT_CONVERTER_H_
26
27 #include <JavaScriptCore/JavaScript.h>
28 #include <API/Contact/ContactTypes.h>
29 #include <API/Contact/IAddressBook.h>
30 #include <API/Contact/Contact.h>
31 #include <API/Contact/ContactProperties.h>
32 #include <API/Contact/ContactName.h>
33 #include <API/Contact/ContactAccount.h>
34 #include <API/Contact/ContactOrganization.h>
35 #include <API/Contact/ContactWebSite.h>
36 #include <API/Contact/ContactAnniversary.h>
37 #include <API/Contact/ContactAddress.h>
38 #include <API/Contact/ContactPhoneNumber.h>
39 #include <API/Contact/ContactEmailAddress.h>
40 #include <CommonsJavaScript/Converter.h>
41
42 namespace TizenApis {
43 namespace Tizen1_0 {
44 namespace Contact {
45
46 class ContactConverter : public WrtDeviceApis::CommonsJavaScript::Converter
47 {
48 public:
49         using WrtDeviceApis::CommonsJavaScript::Converter::toJSValueRef;
50 public:
51         explicit ContactConverter(JSContextRef context);
52         virtual ~ContactConverter();
53
54         TizenApis::Api::Contact::StringArrayPtr toStringArray(const JSValueRef &value);
55         JSValueRef toJSValueRef(const TizenApis::Api::Contact::StringArrayPtr &arg);
56
57         TizenApis::Api::Contact::ContactEmailAddressType toContactEmailAddressType(const std::string &arg);
58         std::string toContactEmailAddressTypeStr(TizenApis::Api::Contact::ContactEmailAddressType arg);
59         TizenApis::Api::Contact::ContactEmailAddressType toContactEmailAddressType(const JSValueRef &value);
60         JSValueRef toJSValueRef(TizenApis::Api::Contact::ContactEmailAddressType arg);
61
62         TizenApis::Api::Contact::ContactPhoneNumberType toContactPhoneNumberType(const std::string &arg);
63         std::string toContactPhoneNumberTypeStr(TizenApis::Api::Contact::ContactPhoneNumberType arg);
64         TizenApis::Api::Contact::ContactPhoneNumberType toContactPhoneNumberType(const JSValueRef &value);
65         JSValueRef toJSValueRef(TizenApis::Api::Contact::ContactPhoneNumberType arg);
66
67         TizenApis::Api::Contact::ContactAddressType toContactAddressType(const std::string &arg);
68         std::string toContactAddressTypeStr(TizenApis::Api::Contact::ContactAddressType arg);
69         TizenApis::Api::Contact::ContactAddressType toContactAddressType(const JSValueRef &value);
70         JSValueRef toJSValueRef(TizenApis::Api::Contact::ContactAddressType arg);
71
72         TizenApis::Api::Contact::ContactWebSiteType toContactWebSiteType(const std::string &arg);
73         std::string toContactWebSiteTypeStr(TizenApis::Api::Contact::ContactWebSiteType arg);
74         TizenApis::Api::Contact::ContactWebSiteType toContactWebSiteType(const JSValueRef &value);
75         JSValueRef toJSValueRef(TizenApis::Api::Contact::ContactWebSiteType arg);
76
77         TizenApis::Api::Contact::ContactCapabilityType toContactCapabilityType(const JSValueRef &value);
78 //      JSValueRef toJSValueRef(TizenApis::Api::Contact::ContactCapabilityType arg);
79
80 //      JSValueRef toJSValueRef(const std::string &arg);
81         std::string toAttributesOfInterest(const JSValueRef &value);
82
83         JSValueRef toJSValueRef(const TizenApis::Api::Contact::IAddressBookPtr &arg);
84         TizenApis::Api::Contact::IAddressBookPtr toAddressBook(const JSValueRef &jsValue);
85
86         JSValueRef toJSValueRef(const TizenApis::Api::Contact::IAddressBookArrayPtr &arg);
87         TizenApis::Api::Contact::IAddressBookArrayPtr toAddressBookArray(const JSValueRef &jsValue);
88
89         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPtr &arg);
90         TizenApis::Api::Contact::ContactPtr toContact(const JSValueRef &jsValue);
91
92         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactArrayPtr &arg);
93         TizenApis::Api::Contact::ContactArrayPtr toContactArray(const JSValueRef &jsValue);
94
95         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPropertiesPtr &arg);
96         TizenApis::Api::Contact::ContactPropertiesPtr toContactProperties(const JSValueRef &jsValue);
97
98         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPropertiesArrayPtr &arg);
99         TizenApis::Api::Contact::ContactPropertiesArrayPtr toContactPropertiesArray(const JSValueRef &jsValue);
100
101         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactNamePtr &arg);
102         TizenApis::Api::Contact::ContactNamePtr toContactName(const JSValueRef &jsValue);
103
104         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAccountPtr &arg);
105         TizenApis::Api::Contact::ContactAccountPtr toContactAccount(const JSValueRef &jsValue);
106
107         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAnniversaryPtr &arg);
108         TizenApis::Api::Contact::ContactAnniversaryPtr toContactAnniversary(const JSValueRef &jsValue);
109
110         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAnniversaryArrayPtr &arg);
111         TizenApis::Api::Contact::ContactAnniversaryArrayPtr toContactAnniversaryArray(const JSValueRef &jsValue);
112
113         JSValueRef toJSValueRefAttributesOfInterestArray(const TizenApis::Api::Contact::AttributesOfInterestArrayPtr &arg);
114         TizenApis::Api::Contact::AttributesOfInterestArrayPtr toAttributesOfInterestArray(const JSValueRef &jsValue);
115
116         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAddressPtr &arg);
117         TizenApis::Api::Contact::ContactAddressPtr toContactAddress(const JSValueRef &jsValue);
118
119         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAddressArrayPtr &arg);
120         TizenApis::Api::Contact::ContactAddressArrayPtr toContactAddressArray(const JSValueRef &jsValue);
121
122         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAddressTypeArrayPtr &arg);
123         TizenApis::Api::Contact::ContactAddressTypeArrayPtr toContactAddressTypeArray(const JSValueRef &jsValue);
124
125 //      JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactCapabilityTypeArrayPtr &arg);
126 //      TizenApis::Api::Contact::ContactCapabilityTypeArrayPtr toContactCapabilityTypeArray(const JSValueRef &jsValue);
127
128         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPhoneNumberPtr &arg);
129         TizenApis::Api::Contact::ContactPhoneNumberPtr toContactPhoneNumber(const JSValueRef &jsValue);
130
131         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPhoneNumberArrayPtr &arg);
132         TizenApis::Api::Contact::ContactPhoneNumberArrayPtr toContactPhoneNumberArray(const JSValueRef &jsValue);
133
134         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPhoneNumberTypeArrayPtr &arg);
135         TizenApis::Api::Contact::ContactPhoneNumberTypeArrayPtr toContactPhoneNumberTypeArray(const JSValueRef &jsValue);
136
137         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactEmailAddressPtr &arg);
138         TizenApis::Api::Contact::ContactEmailAddressPtr toContactEmailAddress(const JSValueRef &jsValue);
139
140         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactEmailAddressArrayPtr &arg);
141         TizenApis::Api::Contact::ContactEmailAddressArrayPtr toContactEmailAddressArray(const JSValueRef &jsValue);
142
143         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactEmailAddressTypeArrayPtr &arg);
144         TizenApis::Api::Contact::ContactEmailAddressTypeArrayPtr toContactEmailAddressTypeArray(const JSValueRef &jsValue);
145
146         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactOrganizationPtr &arg);
147         TizenApis::Api::Contact::ContactOrganizationPtr toContactOrganization(const JSValueRef &jsValue);
148
149         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactOrganizationArrayPtr &arg);
150         TizenApis::Api::Contact::ContactOrganizationArrayPtr toContactOrganizationArray(const JSValueRef &jsValue);
151
152         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactWebSitePtr &arg);
153         TizenApis::Api::Contact::ContactWebSitePtr toContactWebSite(const JSValueRef &jsValue);
154
155         JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactWebSiteArrayPtr &arg);
156         TizenApis::Api::Contact::ContactWebSiteArrayPtr toContactWebSiteArray(const JSValueRef &jsValue);
157
158 private:
159         bool initializeAllowedProperties();
160         static std::vector<std::string> m_allowedAddressBookProperties;
161         static std::vector<std::string> m_allowedContactProperties;
162         static std::vector<std::string> m_allowedContactPropertiesProperties;
163         static std::vector<std::string> m_allowedContactNameProperties;
164         static std::vector<std::string> m_allowedContactAccountProperties;
165         static std::vector<std::string> m_allowedContactOrganizationProperties;
166         static std::vector<std::string> m_allowedContactWebSiteProperties;
167         static std::vector<std::string> m_allowedContactAnniversaryProperties;
168         static std::vector<std::string> m_allowedContactAddressProperties;
169         static std::vector<std::string> m_allowedContactPhoneNumberProperties;
170         static std::vector<std::string> m_allowedContactEmailAddressProperties;
171 };
172
173 typedef WrtDeviceApis::CommonsJavaScript::ConverterFactory<ContactConverter> ContactConverterFactory;
174
175 } // Contact
176 } // Tizen1_0
177 } // TizenApis
178
179 #endif // _TIZEN_JS_CONTACT_CONVERTER_H_