Update change log and spec for wrt-plugins-tizen_0.2.84
[framework/web/wrt-plugins-tizen.git] / src / standards / Tizen / Calendar / CalendarConverter.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 #ifndef _JS_TIZEN_CALENDAR_CONVERTER_H_
19 #define _JS_TIZEN_CALENDAR_CONVERTER_H_
20
21 #include <vector>
22 #include <string>
23 #include <API/Calendar/ICalendar.h>
24 #include <API/Calendar/EventAttendee.h>
25 #include <API/Calendar/EventAlarm.h>
26 #include <CommonsJavaScript/Converter.h>
27 #include <CommonsJavaScript/ScopedJSStringRef.h>
28
29 namespace TizenApis {
30 namespace Tizen1_0 {
31 namespace Calendar {
32
33 class CalendarConverter : public WrtDeviceApis::CommonsJavaScript::Converter
34 {
35   public:
36     using Converter::toJSValueRef;
37   public:
38     explicit CalendarConverter(JSContextRef context, TizenApis::Api::Calendar::CalendarEvent::CalendarType calendarType=TizenApis::Api::Calendar::CalendarEvent::EVENT_TYPE);
39     virtual ~CalendarConverter();
40
41     TizenApis::Api::Calendar::CalendarEventPtr toEvent(const JSValueRef event);
42     TizenApis::Api::Calendar::CalendarEventListPtr toVectorOfEvents(JSValueRef events);
43     TizenApis::Api::Calendar::CalendarEventListPtr toVectorOfEventsFromProperty(JSValueRef events);
44     TizenApis::Api::Calendar::StringArrayPtr toCategories(JSValueRef categories);
45     TizenApis::Api::Calendar::EventAttendeePtr toAttendee(JSValueRef attendee);
46     TizenApis::Api::Calendar::EventAttendeeListPtr toVectorOfAttendeesFromDictionary(JSValueRef attendees);
47     TizenApis::Api::Calendar::EventAttendeeListPtr toVectorOfAttendeesFromReference(JSValueRef attendees);
48
49     TizenApis::Api::Calendar::EventAlarm::EventAlarmType toEventAlarmType(std::string tizenValue) const;
50     TizenApis::Api::Calendar::CalendarEvent::EventStatus toEventStatus(std::string tizenValue) const;
51     TizenApis::Api::Calendar::EventRecurrenceRule::EventRecurrence toRecurrenceFrequency(std::string tizenValue) const;
52     TizenApis::Api::Calendar::EventRecurrenceRulePtr toEventRecurrenceRule(JSValueRef rrule);
53
54     TizenApis::Api::Calendar::CalendarEvent::EventVisibility toEventVisibility(std::string tizenValue) const;
55     TizenApis::Api::Calendar::CalendarEvent::EventAvailability toEventAvailability(std::string tizenValue) const;
56     TizenApis::Api::Calendar::EventAttendee::EventAttendeeRole toEventAttendeeRole(std::string tizenValue) const;
57     TizenApis::Api::Calendar::EventAttendee::EventAttendeeStatus toEventAttendeeStatus(std::string tizenValue) const;
58     TizenApis::Api::Calendar::EventAttendee::EventAttendeeType toEventAttendeeType(std::string tizenValue) const;
59
60     std::string toTizenValue(TizenApis::Api::Calendar::EventAlarm::EventAlarmType abstractValue) const;
61     std::string toTizenValue(TizenApis::Api::Calendar::CalendarEvent::EventStatus abstractValue) const;
62     std::string toTizenValue(TizenApis::Api::Calendar::EventRecurrenceRule::EventRecurrence abstractValue) const;
63     std::string toTizenValue(TizenApis::Api::Calendar::CalendarEvent::EventVisibility abstractValue) const;
64     std::string toTizenValue(TizenApis::Api::Calendar::CalendarEvent::EventAvailability abstractValue) const;
65     std::string toTizenValue(TizenApis::Api::Calendar::EventAttendee::EventAttendeeRole abstractValue) const;
66     std::string toTizenValue(TizenApis::Api::Calendar::EventAttendee::EventAttendeeStatus abstractValue) const;
67     std::string toTizenValue(TizenApis::Api::Calendar::EventAttendee::EventAttendeeType abstractValue) const;
68     std::string toTizenValue(TizenApis::Api::Calendar::CalendarEvent::TaskPriority abstractValue) const;
69
70     JSValueRef toJSValueRefEvent(const TizenApis::Api::Calendar::CalendarEventPtr& arg);
71     JSValueRef toJSValueRefTask(const TizenApis::Api::Calendar::CalendarEventPtr& arg);
72     JSValueRef toJSValueRefEventArray(const TizenApis::Api::Calendar::CalendarEventListPtr &arg);
73     JSValueRef toJSValueRefTaskArray(const TizenApis::Api::Calendar::CalendarEventListPtr &arg);
74     JSValueRef toJSValueRefCalendar(const TizenApis::Api::Calendar::ICalendarPtr& arg);
75     JSValueRef toJSValueRef(const std::vector<TizenApis::Api::Calendar::ICalendarPtr> &arg);
76     JSValueRef toJSValueRef(const TizenApis::Api::Calendar::StringArrayPtr &arg);
77     JSValueRef toJSValueRef(const TizenApis::Api::Calendar::NumberArrayPtr &arg);
78     TizenApis::Api::Calendar::StringArrayPtr toStringArray(const JSValueRef &jsValue);
79     TizenApis::Api::Calendar::NumberArrayPtr toNumberArray(const JSValueRef &jsValue);
80
81     TizenApis::Api::Calendar::EventAlarmPtr toEventAlarm(JSValueRef alarm);
82     TizenApis::Api::Calendar::EventAlarmListPtr toVectorOfEventAlarmsFromDictionary(JSValueRef alarms);
83     TizenApis::Api::Calendar::EventAlarmListPtr toVectorOfEventAlarmsFromReference(JSValueRef alarms);
84     TizenApis::Api::Calendar::EventIdPtr toEventId(JSValueRef eventId);
85     TizenApis::Api::Calendar::EventIdListPtr toVectorOfEventIds(JSValueRef eventIds);
86     std::vector<long long int> toVectorOfTimeFromTZDate(JSValueRef dates);
87     TizenApis::Api::Calendar::CalendarEvent::TaskPriority toTaskPriority(std::string priority) const;
88         TizenApis::Api::Calendar::CalendarEvent::CalendarType toCalendarType(std::string type) const;
89         TizenApis::Api::Calendar::CalendarEvent::VObjectFormat toVObjectFormat(std::string type) const;
90
91     /**
92      * @throw InvalidArgumentException If not a callback nor JS null.
93      */
94     JSValueRef toFunctionOrNull(const JSValueRef& arg);
95
96     /**
97      * @throw ConversionException If JS null.
98      * @throw InvalidArgumentException If not a callback nor JS null.
99      */
100     JSValueRef toFunction(const JSValueRef& arg);
101
102   private:
103     TizenApis::Api::Calendar::CalendarEvent::CalendarType m_calendarType;
104 };
105
106 }
107 }
108 }
109
110 #endif /* _JS_TIZEN_CALENDAR_CONVERTER_H_ */