upload tizen1.0 source
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Contact / JSContactOrganization.cpp
index 4e09297..17c3788 100755 (executable)
@@ -26,7 +26,6 @@
 #include <CommonsJavaScript/Validator.h>
 #include <Tizen/Common/JSTizenExceptionFactory.h>
 #include <Tizen/Common/JSTizenException.h>
-//#include <Tizen/Common/JSGlobalContextFactory.h>
 #include "ContactConverter.h"
 
 #define ORGANIZATION_CLASS_NAME "ContactOrganization"
@@ -165,7 +164,9 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context,
 {
        LogDebug("entered");
 
-//     AceSecurityStatus status = CONTACT_CHECK_ACCESS(controller->getContext(), CONTACT_FUNCTION_API_ADD);
+       bool js1stParamIsObject = false;
+
+//     AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_ADD);
 //     TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
 
        JSContactOrganizationPriv *priv = static_cast<JSContactOrganizationPriv*>(JSObjectGetPrivate(constructor));
@@ -174,22 +175,22 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context,
        }
        JSContextRef gContext = priv->getContext();
 
-//     JSContextRef gContext = JSGlobalContextFactory::getInstance()->get();
-
        BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
        Try {
-               if (argumentCount > 1)
-                       ThrowMsg(InvalidArgumentException, "Wrong arguments count.");
-
-               if (argumentCount == 1)
+               if (argumentCount >= 1)
                {
-                       if (!JSValueIsObject(gContext, arguments[0]) && !JSValueIsNull(gContext, arguments[0]))
-                               ThrowMsg(InvalidArgumentException, "2nd argument is not object.");
+                       if (JSValueIsObject(gContext, arguments[0]))
+                               js1stParamIsObject = true;
+
+                       if (!js1stParamIsObject &&
+                                       !JSValueIsNull(gContext, arguments[0]) &&
+                                       !JSValueIsUndefined(gContext, arguments[0]))
+                               ThrowMsg(InvalidArgumentException, "1st argument must be a 'object'");
                }
 
        } Catch(Exception ) {
                LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
-               *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");
+               *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "1st argument must be a 'object'");
                return NULL;
        }
 
@@ -197,18 +198,14 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context,
 
        ContactOrganizationPtr contactOrganization(NULL);
        Try {
-               if(argumentCount == 1)
-               {
-                       if(JSValueIsObject(gContext, arguments[0]))
-                               contactOrganization = converter->toContactOrganizationFromInit(arguments[0]);
-               }
-
-               if(contactOrganization == NULL)
+               if(js1stParamIsObject)
+                       contactOrganization = converter->toContactOrganizationFromInit(arguments[0]);
+               else
                        contactOrganization = ContactOrganizationPtr(new ContactOrganization());
 
        } Catch(Exception) {
                LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
-               *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");
+               *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::UNKNOWN_ERROR, "Internal error");
                return NULL;
        }
 
@@ -218,7 +215,7 @@ JSObjectRef JSContactOrganization::constructor(JSContextRef context,
                jsobject = createJSObject(gContext, contactOrganization);
        } Catch(Exception) {
                LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
-               *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");
+               *exception = JSTizenExceptionFactory::makeErrorObject(context, JSTizenException::UNKNOWN_ERROR, "Internal error");
                return NULL;
        }