2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 * @file ContactConverter.cpp
19 * @author Kisub Song (kisubs.song@samsung.com)
24 #ifndef _TIZEN_JS_CONTACT_CONVERTER_H_
25 #define _TIZEN_JS_CONTACT_CONVERTER_H_
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>
46 class ContactConverter : public WrtDeviceApis::CommonsJavaScript::Converter
49 using WrtDeviceApis::CommonsJavaScript::Converter::toJSValueRef;
51 explicit ContactConverter(JSContextRef context);
52 virtual ~ContactConverter();
54 TizenApis::Api::Contact::StringArrayPtr toStringArray(const JSValueRef &value);
55 JSValueRef toJSValueRef(const TizenApis::Api::Contact::StringArrayPtr &arg);
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);
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);
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);
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);
77 TizenApis::Api::Contact::ContactCapabilityType toContactCapabilityType(const JSValueRef &value);
78 // JSValueRef toJSValueRef(TizenApis::Api::Contact::ContactCapabilityType arg);
80 // JSValueRef toJSValueRef(const std::string &arg);
81 std::string toAttributesOfInterest(const JSValueRef &value);
83 JSValueRef toJSValueRef(const TizenApis::Api::Contact::IAddressBookPtr &arg);
84 TizenApis::Api::Contact::IAddressBookPtr toAddressBook(const JSValueRef &jsValue);
86 JSValueRef toJSValueRef(const TizenApis::Api::Contact::IAddressBookArrayPtr &arg);
87 TizenApis::Api::Contact::IAddressBookArrayPtr toAddressBookArray(const JSValueRef &jsValue);
89 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPtr &arg);
90 TizenApis::Api::Contact::ContactPtr toContact(const JSValueRef &jsValue);
92 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactArrayPtr &arg);
93 TizenApis::Api::Contact::ContactArrayPtr toContactArray(const JSValueRef &jsValue);
95 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPropertiesPtr &arg);
96 TizenApis::Api::Contact::ContactPropertiesPtr toContactProperties(const JSValueRef &jsValue);
98 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPropertiesArrayPtr &arg);
99 TizenApis::Api::Contact::ContactPropertiesArrayPtr toContactPropertiesArray(const JSValueRef &jsValue);
101 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactNamePtr &arg);
102 TizenApis::Api::Contact::ContactNamePtr toContactName(const JSValueRef &jsValue);
104 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAccountPtr &arg);
105 TizenApis::Api::Contact::ContactAccountPtr toContactAccount(const JSValueRef &jsValue);
107 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAnniversaryPtr &arg);
108 TizenApis::Api::Contact::ContactAnniversaryPtr toContactAnniversary(const JSValueRef &jsValue);
110 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAnniversaryArrayPtr &arg);
111 TizenApis::Api::Contact::ContactAnniversaryArrayPtr toContactAnniversaryArray(const JSValueRef &jsValue);
113 JSValueRef toJSValueRefAttributesOfInterestArray(const TizenApis::Api::Contact::AttributesOfInterestArrayPtr &arg);
114 TizenApis::Api::Contact::AttributesOfInterestArrayPtr toAttributesOfInterestArray(const JSValueRef &jsValue);
116 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAddressPtr &arg);
117 TizenApis::Api::Contact::ContactAddressPtr toContactAddress(const JSValueRef &jsValue);
119 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAddressArrayPtr &arg);
120 TizenApis::Api::Contact::ContactAddressArrayPtr toContactAddressArray(const JSValueRef &jsValue);
122 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactAddressTypeArrayPtr &arg);
123 TizenApis::Api::Contact::ContactAddressTypeArrayPtr toContactAddressTypeArray(const JSValueRef &jsValue);
125 // JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactCapabilityTypeArrayPtr &arg);
126 // TizenApis::Api::Contact::ContactCapabilityTypeArrayPtr toContactCapabilityTypeArray(const JSValueRef &jsValue);
128 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPhoneNumberPtr &arg);
129 TizenApis::Api::Contact::ContactPhoneNumberPtr toContactPhoneNumber(const JSValueRef &jsValue);
131 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPhoneNumberArrayPtr &arg);
132 TizenApis::Api::Contact::ContactPhoneNumberArrayPtr toContactPhoneNumberArray(const JSValueRef &jsValue);
134 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactPhoneNumberTypeArrayPtr &arg);
135 TizenApis::Api::Contact::ContactPhoneNumberTypeArrayPtr toContactPhoneNumberTypeArray(const JSValueRef &jsValue);
137 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactEmailAddressPtr &arg);
138 TizenApis::Api::Contact::ContactEmailAddressPtr toContactEmailAddress(const JSValueRef &jsValue);
140 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactEmailAddressArrayPtr &arg);
141 TizenApis::Api::Contact::ContactEmailAddressArrayPtr toContactEmailAddressArray(const JSValueRef &jsValue);
143 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactEmailAddressTypeArrayPtr &arg);
144 TizenApis::Api::Contact::ContactEmailAddressTypeArrayPtr toContactEmailAddressTypeArray(const JSValueRef &jsValue);
146 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactOrganizationPtr &arg);
147 TizenApis::Api::Contact::ContactOrganizationPtr toContactOrganization(const JSValueRef &jsValue);
149 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactOrganizationArrayPtr &arg);
150 TizenApis::Api::Contact::ContactOrganizationArrayPtr toContactOrganizationArray(const JSValueRef &jsValue);
152 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactWebSitePtr &arg);
153 TizenApis::Api::Contact::ContactWebSitePtr toContactWebSite(const JSValueRef &jsValue);
155 JSValueRef toJSValueRef(const TizenApis::Api::Contact::ContactWebSiteArrayPtr &arg);
156 TizenApis::Api::Contact::ContactWebSiteArrayPtr toContactWebSiteArray(const JSValueRef &jsValue);
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;
173 typedef WrtDeviceApis::CommonsJavaScript::ConverterFactory<ContactConverter> ContactConverterFactory;
179 #endif // _TIZEN_JS_CONTACT_CONVERTER_H_