Update change log and spec for wrt-plugins-tizen_0.4.57
[platform/framework/web/wrt-plugins-tizen.git] / src / Content / JSContent.cpp
index 2e9267b..35cf614 100755 (executable)
 // limitations under the License.
 //
 
-
-#include <dpl/log/log.h>
 #include <CommonsJavaScript/PrivateObject.h>
 #include <CommonsJavaScript/Converter.h>
 #include <CommonsJavaScript/JSUtils.h>
-#include <JSTizenException.h>
-#include <JSTizenExceptionFactory.h>
-
-
+#include <JSWebAPIErrorFactory.h>
 #include "JSContent.h"
+#include <Logger.h>
 
 namespace DeviceAPI {
 namespace Content {
@@ -91,40 +87,35 @@ JSClassRef JSMedia::m_jsClassRef = JSClassCreate(JSMedia::getClassInfo());
 
 void JSMedia::initialize(JSContextRef context, JSObjectRef object)
 {
-    LogDebug( "entered" );
     MediaPrivObject *priv = static_cast<MediaPrivObject*>( JSObjectGetPrivate( object ) );
     if (!priv) 
        {
         MediacontentMediaPtr privateData(new MediacontentMedia());
         priv = new MediaPrivObject(context, privateData);
         JSObjectSetPrivate(object, static_cast<void*>(priv));
-        LogDebug("new event is created" );
     }
     else 
-       {
-        LogDebug("private object already exists");
+    {
+        LoggerD("private object already exists");
     }
 }
 
 void JSMedia::finalize(JSObjectRef object)
 {
-    LogDebug( "entered" );
     MediaPrivObject *priv = static_cast<MediaPrivObject*>( JSObjectGetPrivate( object ) ) ;
-       if (priv != NULL)
-       {
-               delete (priv);
-               priv = NULL;
-               JSObjectSetPrivate(object, NULL);
-       }
-    
+    if (priv != NULL)
+    {
+        delete (priv);
+        priv = NULL;
+        JSObjectSetPrivate(object, NULL);
+    }
 }
 
 const JSClassRef JSMedia::getClassRef()
 {
-       LogDebug("JSMedia::getClassRef()");
     if (!m_jsClassRef) 
-       {
-            m_jsClassRef = JSClassCreate(&m_classInfo);
+    {
+        m_jsClassRef = JSClassCreate(&m_classInfo);
     }
     return m_jsClassRef;
 }
@@ -136,15 +127,14 @@ const JSClassDefinition* JSMedia::getClassInfo()
 
 MediacontentMediaPtr JSMedia::getMediaObject(JSObjectRef object)
 {
-    LogDebug("entered");
     MediaPrivObject *priv = static_cast<MediaPrivObject*>(JSObjectGetPrivate(object));
     if(!priv) 
-       {
+    {
         ThrowMsg(NullPointerException, "Private object is null");
     }
     MediacontentMediaPtr result = priv->getObject();
     if (!result) 
-       {
+    {
         ThrowMsg(NullPointerException, "Private object is null");
     }
     return result;
@@ -156,17 +146,15 @@ JSValueRef JSMedia::getPropertyId(
                                        JSStringRef propertyName, 
                                        JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
-
         return converter.toJSValueRef(media->getMediaUUID());
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
     return JSValueMakeUndefined(context);
 
@@ -178,7 +166,6 @@ JSValueRef  JSMedia::getPropertyMimeType(
                                        JSStringRef propertyName,
                                        JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
         Converter converter(context);
@@ -187,7 +174,7 @@ JSValueRef  JSMedia::getPropertyMimeType(
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
     return JSValueMakeUndefined(context);
 
@@ -200,17 +187,15 @@ JSValueRef JSMedia::getPropertyDisplayName(
                                        JSStringRef propertyName,
                                        JSValueRef* exception)
 {
-    LogDebug("getPropertyDisplayName::entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
-       LogDebug("getDisplayName:"<<media->getDisplayName());    
         return converter.toJSValueRef(media->getDisplayName());
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
     return JSValueMakeUndefined(context);
 }
@@ -221,17 +206,15 @@ JSValueRef JSMedia::getPropertyTitle(
                                        JSStringRef propertyName,
                                        JSValueRef* exception)
 {
-    LogDebug("getPropertyDisplayName::entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
-               LogDebug("getTitle:"<<media->getTitle());
         return converter.toJSValueRef(media->getTitle());
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
     return JSValueMakeUndefined(context);
 }
@@ -243,7 +226,6 @@ JSValueRef JSMedia::getPropertyFilePath(
                                        JSStringRef propertyName,
                                        JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
         Converter converter(context);
@@ -252,7 +234,7 @@ JSValueRef JSMedia::getPropertyFilePath(
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
     return JSValueMakeUndefined(context);
 }
@@ -264,31 +246,28 @@ JSValueRef JSMedia::getPropertyThumbnailPath(
                                        JSStringRef propertyName, 
                                        JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
         JSObjectRef jsResult = JSCreateArrayObject(context, 0, NULL);
-               if (NULL == jsResult) 
-               {
-                       ThrowMsg(NullPointerException, "Could not create js array object");
-               }
-
-               JSValueRef val = converter.toJSValueRef(media->getThumbnailPath());
-               if(!JSSetArrayElement(context, jsResult, 0, val)) 
-               {
-                  ThrowMsg(UnknownException, "Could not insert value into js array");
-               }
-
-               return jsResult;      
-        
+        if (NULL == jsResult){
+            ThrowMsg(NullPointerException, "Could not create js array object");
+        }
+
+        if(!(media->getThumbnailPath().empty())){
+            JSValueRef val = converter.toJSValueRef(media->getThumbnailPath());
+            if(!JSSetArrayElement(context, jsResult, 0, val)){
+                ThrowMsg(UnknownException, "Could not insert value into js array");
+            }
+            return jsResult;
+        }
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
-    return JSValueMakeUndefined(context);
+    return JSValueMakeNull(context);
 }
 
 JSValueRef JSMedia::getPropertyDescription(
@@ -297,18 +276,20 @@ JSValueRef JSMedia::getPropertyDescription(
                                        JSStringRef propertyName, 
                                        JSValueRef* exception)
 {
-    LogDebug("getPropertyDescription::entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
-        return converter.toJSValueRef(media->getDescription());
+//        if(!(media->getDescription().empty()))
+        {
+            return converter.toJSValueRef(media->getDescription());
+        }
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
-    return JSValueMakeUndefined(context);
+    return JSValueMakeNull(context);
 }
 
 
@@ -318,18 +299,20 @@ JSValueRef JSMedia::getPropertyModifiedDate(
                                        JSStringRef propertyName, 
                                        JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
-        return converter.toJSValueRef(media->getModifiedDate());
+        if(media->getModifiedDate() != NULL)
+        {
+            return converter.toJSValueRef(*(media->getModifiedDate()));
+        }
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
-    return JSValueMakeUndefined(context);
+    return JSValueMakeNull(context);
 }
 
 JSValueRef JSMedia::getPropertyReleasedDate(
@@ -338,18 +321,20 @@ JSValueRef JSMedia::getPropertyReleasedDate(
                                        JSStringRef propertyName,
                                        JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
-        return converter.toJSValueRef(media->getReleasedDate());
+        if(media->getReleasedDate() != NULL)
+        {
+            return converter.toJSValueRef(*(media->getReleasedDate()));
+        }
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
-    return JSValueMakeUndefined(context);
+    return JSValueMakeNull(context);
 
 }
 
@@ -360,7 +345,6 @@ JSValueRef JSMedia::getPropertyRating(
                                        JSStringRef propertyName, 
                                        JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
         Converter converter(context);
@@ -369,9 +353,9 @@ JSValueRef JSMedia::getPropertyRating(
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
-    return JSValueMakeUndefined(context);
+    return JSValueMakeNull(context);
 }
 
 JSValueRef JSMedia::getPropertyType(
@@ -380,7 +364,6 @@ JSValueRef JSMedia::getPropertyType(
                                        JSStringRef propertyName,
                                        JSValueRef* exception)
 {
-    LogDebug("getPropertyType::entered");
     Try
     {
         Converter converter(context);
@@ -389,7 +372,7 @@ JSValueRef JSMedia::getPropertyType(
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
     return JSValueMakeUndefined(context);
 }
@@ -401,21 +384,19 @@ JSValueRef JSMedia::getPropertySize(
                                        JSStringRef propertyName,
                                        JSValueRef* exception)
 {
-    LogDebug("getPropertyType::entered");
     Try
     {
         Converter converter(context);
         MediacontentMediaPtr media = getMediaObject(object);
-        LogDebug("size:" << media->getSize());
-       double var = (double)media->getSize(); //casting.
-       return converter.toJSValueRef(var);
+        double var = (double)media->getSize();
+        return converter.toJSValueRef(var);
     }
     Catch(Exception)
     {
-        LogWarning("trying to get incorrect value");
+        LoggerW("trying to get incorrect value");
     }
 
-    return JSValueMakeUndefined(context);
+    return JSValueMakeNull(context);
 }
 
 
@@ -427,30 +408,30 @@ JSValueRef JSMedia::getPropertyEditableAttr(
 {
     Try
     {
-               Converter converter(context);
-               MediacontentMediaPtr media = getMediaObject(object);
-               vector<std::string> editableAttrList = media->getEditableAttr();
-               JSObjectRef jsResult = JSCreateArrayObject(context, 0, NULL);
-
-                       if (NULL == jsResult) 
-                       {
-                           ThrowMsg(NullPointerException, "Could not create js array object");
-                       }
-               for(unsigned int i=0; i<editableAttrList.size(); i++) 
-                       {
-                       JSValueRef val = converter.toJSValueRef(editableAttrList.at(i));
-                           if(!JSSetArrayElement(context, jsResult, i, val)) 
-                           {
-                              ThrowMsg(UnknownException, "Could not insert value into js array");
-                           }
-                       }
+        Converter converter(context);
+        MediacontentMediaPtr media = getMediaObject(object);
+        vector<std::string> editableAttrList = media->getEditableAttr();
+        JSObjectRef jsResult = JSCreateArrayObject(context, 0, NULL);
+
+        if (NULL == jsResult)
+        {
+            ThrowMsg(NullPointerException, "Could not create js array object");
+        }
+        for(unsigned int i=0; i<editableAttrList.size(); i++)
+        {
+            JSValueRef val = converter.toJSValueRef(editableAttrList.at(i));
+            if(!JSSetArrayElement(context, jsResult, i, val))
+            {
+                ThrowMsg(UnknownException, "Could not insert value into js array");
+            }
+        }
                return jsResult;
-       }
-       Catch(Exception)
-       {
-               LogWarning("trying to get incorrect value");
-       }
-       return JSValueMakeUndefined(context);
+    }
+    Catch(Exception)
+    {
+        LoggerW("trying to get incorrect value");
+    }
+    return JSValueMakeUndefined(context);
 
 }
 
@@ -462,86 +443,72 @@ bool      JSMedia::setPropertyRating(
                                JSValueRef value,
                                JSValueRef* exception)
 {
-    LogDebug("entered");
     Try
     {
        Converter converter(context);
        MediacontentMediaPtr objMedia = getMediaObject(object);
        int rating = converter.toInt(value);
 
-       LogDebug("Inserted value : " << rating);
-
-       if(rating < 0)
+       if(rating < 0 || rating > 10)
        {
-               rating = 0;
-               LogDebug("Rating value set 0 as inserted value is too small");
+            Throw(WrtDeviceApis::Commons::InvalidArgumentException);
        }
-       
        if ( objMedia->getRating() != rating)
        {
-               objMedia->setRating(rating, true);
+            objMedia->setRating(rating, true);
        }
-               
-        return true;
+       return true;
     }
     Catch(Exception)
     {
-        LogWarning("trying to set incorrect value");
-        DeviceAPI::Common::JSTizenExceptionFactory::postException(context, exception, DeviceAPI::Common::JSTizenException::TYPE_MISMATCH_ERROR);
+        LoggerW("trying to set incorrect value");
     }
 
     return false;
 
 }
 
-bool           JSMedia::setPropertyDisplayName(
+bool JSMedia::setPropertyDisplayName(
                                        JSContextRef context,
                                        JSObjectRef object,
                                        JSStringRef propertyName,
                                        JSValueRef value,
                                        JSValueRef* exception)
 {
-       LogDebug("entered");
        Try
        {
                Converter converter(context);
                MediacontentMediaPtr objMedia = getMediaObject(object);
                string displayName = converter.toString(value);
 
-               LogDebug("Inserted value : " << displayName);
-               
-               if ((objMedia->getDescription()).compare(displayName) != 0)
+               if ((objMedia->getDisplayName()).compare(displayName) != 0)
                {
                        objMedia->setDisplayName(displayName, true);
                }
-               
+
                return true;
        }
        Catch(Exception)
        {
-               LogWarning("trying to set incorrect value");
-               DeviceAPI::Common::JSTizenExceptionFactory::postException(context, exception, DeviceAPI::Common::JSTizenException::TYPE_MISMATCH_ERROR);
+               LoggerW("trying to set incorrect value");
        }
 
        return false;
 }
 
-bool           JSMedia::setPropertyDescription(
+bool JSMedia::setPropertyDescription(
                                        JSContextRef context,
                                        JSObjectRef object,
                                        JSStringRef propertyName,
                                        JSValueRef value,
                                        JSValueRef* exception)
 {
-       LogDebug("entered");
        Try
        {
                Converter converter(context);
                MediacontentMediaPtr objMedia = getMediaObject(object);
                string description = converter.toString(value);
-
-               LogDebug("Inserted value : " << description);
-               
+       
                if ( (objMedia->getDescription()).compare(description) != 0 )
                {
                        objMedia->setDescription(description, true);
@@ -551,10 +518,8 @@ bool               JSMedia::setPropertyDescription(
        }
        Catch(Exception)
        {
-               LogWarning("trying to set incorrect value");
-               DeviceAPI::Common::JSTizenExceptionFactory::postException(context, exception, DeviceAPI::Common::JSTizenException::TYPE_MISMATCH_ERROR);
+               LoggerW("trying to set incorrect value");
        }
-
        return false;
 }