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.
17 #include <CommonsJavaScript/Converter.h>
18 #include <CommonsJavaScript/Validator.h>
19 #include <CommonsJavaScript/JSUtils.h>
20 #include <CommonsJavaScript/JSDOMExceptionFactory.h>
21 #include "JSSensorError.h"
26 #define LOG_TAG "TIZEN_SENSOR"
30 using namespace WrtDeviceApis::CommonsJavaScript;
40 JSClassRef JSSensorError::m_jsClassRef = NULL;
42 JSClassDefinition JSSensorError::m_jsClassInfo = {
44 kJSClassAttributeNone,
52 JSSensorError::getProperty, //getProperty,
53 JSSensorError::setProperty, //setProperty,
54 NULL, //deleteProperty,Geolocation
55 NULL, //getPropertyNames,
62 JSStaticValue JSSensorError::m_jsStaticProperties[] = {
63 {"PERMISSION_DENIED", JSSensorError::getStaticProperty, NULL, kJSPropertyAttributeReadOnly},
64 {"CONNECTION_ERROR", JSSensorError::getStaticProperty, NULL, kJSPropertyAttributeReadOnly},
69 const JSClassRef JSSensorError::getClassRef()
72 m_jsClassRef = JSClassCreate(&m_jsClassInfo);
77 const JSClassDefinition* JSSensorError::getClassInfo()
79 return &m_jsClassInfo;
82 JSObjectRef JSSensorError::makeSensorError(JSContextRef ctx, const char* message, unsigned short code)
84 struct MsgCode* msgcode = new MsgCode;
85 msgcode->msg = message;
88 JSObjectRef errorObj = JSObjectMake(ctx, getClassRef(), (void*)msgcode);
93 void JSSensorError::initialize(JSContextRef ctx, JSObjectRef object)
97 void JSSensorError::finalize(JSObjectRef object)
101 bool JSSensorError::hasInstance(JSContextRef ctx, JSObjectRef constructor, JSValueRef possibleInstance, JSValueRef* exception) {
102 return JSValueIsObjectOfClass(ctx, possibleInstance, getClassRef());
105 JSValueRef JSSensorError::getProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception)
107 struct MsgCode* msgcode = (struct MsgCode*) JSObjectGetPrivate(object);
109 return JSValueMakeNull(ctx);
112 if(JSStringIsEqualToUTF8CString(propertyName, "message")) {
113 JSStringRef msg = JSStringCreateWithUTF8CString(msgcode->msg.c_str());
114 JSValueRef msgVal = JSValueMakeString(ctx, msg);
115 JSStringRelease(msg);
118 else if(JSStringIsEqualToUTF8CString(propertyName, "code")) {
119 JSValueRef msgVal = JSValueMakeNumber(ctx, msgcode->code);
126 bool JSSensorError::setProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSValueRef* exception)
128 // return true for read only
129 if(JSStringIsEqualToUTF8CString(propertyName, "message")) {
132 else if(JSStringIsEqualToUTF8CString(propertyName, "code")) {
139 JSValueRef JSSensorError::getStaticProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception)
141 if(JSStringIsEqualToUTF8CString(propertyName, "PERMISSION_DENIED")) {
142 return JSValueMakeNumber(ctx, PERMISSION_DENIED);
144 else if(JSStringIsEqualToUTF8CString(propertyName, "CONNECTION_ERROR")) {
145 return JSValueMakeNumber(ctx, PERMISSION_DENIED);
147 return JSValueMakeNull(ctx);