Changed zouba directory heirarchy.
[ptas] / wrt / zouba / preview / script / lib / sapi / Landmarks.js
diff --git a/wrt/zouba/preview/script/lib/sapi/Landmarks.js b/wrt/zouba/preview/script/lib/sapi/Landmarks.js
deleted file mode 100644 (file)
index 991dea3..0000000
+++ /dev/null
@@ -1,556 +0,0 @@
-/**\r
- * Landmarks.js\r
- * \r
- * Nokia Web Runtime Service API emulation \r
- * WRT v1.1\r
- * \r
- * Copyright 2009 Nokia Corporation. All rights reserved.\r
-*/\r
-\r
\r
-(function(){\r
-       \r
-       var provider = 'Service.Landmarks',\r
-               Interface = 'IDataSource';\r
-\r
-       /**\r
-        * Landmark service\r
-        */\r
-       var LandmarkService = function(){\r
-               this.New                = __New;\r
-               this.GetList    = __GetList;\r
-               this.Add                = __Add;\r
-               this.Delete             = __Delete;             \r
-               this.Import     = __Import;\r
-               this.Export             = __Export;\r
-               this.Organise   = __Organise;\r
-               this.Cancel             = __Cancel;                             \r
-       }\r
-\r
-       device.implementation.extend(provider, Interface, new LandmarkService() );\r
-\r
-\r
-       /******************************************************/        \r
-       /******************************************************/        \r
-       /******************************************************/        \r
-\r
-       var     context = device.implementation.context,\r
-               _t = context._t,\r
-               method = '',\r
-               result = false,\r
-               DBase = null;\r
-\r
-       /**\r
-        * Landmarks: New\r
-        * @param {Object} criteria\r
-        */\r
-       function __New(criteria){\r
-               if ((result = validator.apply('New', arguments)) !== false)\r
-                       return result; \r
-\r
-               if (typeof criteria.Type == 'undefined') \r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType);\r
-\r
-               if (!/^(Landmark|Category)$/i.test(criteria.Type)) \r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType);          \r
-               \r
-               var returnValue;\r
-               \r
-               if(criteria.Type == 'Landmark')\r
-               {\r
-                       returnValue = {\r
-                               'LandmarkName'          : '',\r
-                               'id'                            : '',\r
-                               'CategoryInfo'          : '',\r
-                               'LandmarkDesc'          : '',\r
-                               'LandmarkPosition'      : {\r
-                                                                               'Latitude'      : '',\r
-                                                                               'Longitude' : '',\r
-                                                                               'Altitude'      : '',\r
-                                                                               'HAccuracy' : '',\r
-                                                                               'VAccuracy' : '',\r
-                                                                               'VAccuracy' : ''\r
-                                                                         },\r
-                               'CoverageRadius'        : '',\r
-                               'IconFile'                      : '',\r
-                               'IconIndex'                     : '',\r
-                               'IconMaskIndex'         : '',\r
-                               'LandmarkFields'        : {\r
-                                                                               'Street'                : '',\r
-                                                                               'BuildingName'  : '',\r
-                                                                               'District'              : '',\r
-                                                                               'City'                  : '',\r
-                                                                               'AreaCode'              : '',\r
-                                                                               'Telephone'             : '',\r
-                                                                               'Country'               : ''\r
-                                                                         }\r
-                       };\r
-               }\r
-               else //Category\r
-               {\r
-                       returnValue = {\r
-                               'CategoryName'  : '',\r
-                               'id'                    : '',\r
-                               'GlobalId'              : '',\r
-                               'IconFile'              : '',\r
-                               'IconIndex'             : '',\r
-                               'IconMaskIndex' : ''\r
-                       };\r
-               }\r
-\r
-               return context.Result(returnValue);\r
-       }\r
-       \r
-       /**\r
-        * Landmarks: GetList\r
-        * @param {Object} criteria\r
-        * @param {Function} [callback] function for async call (optional)\r
-        */\r
-       function __GetList(criteria, callback){\r
-               \r
-               if ((result = validator.apply('GetList', arguments)) !== false)\r
-                       return result; \r
-\r
-               if (typeof criteria.Type == 'undefined') \r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType);\r
-\r
-               if (!/^(Landmark|Category|Database)$/i.test(criteria.Type)) \r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType);\r
-\r
-               if (criteria.Filter)\r
-                       context.notify(_t('%s:: GetList : filter not implemented in preview').arg(provider));\r
-\r
-               if(criteria.Sort)\r
-                       context.notify(_t('%s:: GetList : Sort is not implemented in preview').arg(provider));\r
-\r
-               if (typeof callback == 'function') {\r
-                       return context.callAsync(this, arguments.callee, criteria, callback);\r
-               }\r
-               \r
-               var returnValue = [], \r
-                       match = null,\r
-                       filter = criteria.Filter || null;\r
\r
-               DBase = context.getData(provider);\r
-\r
-\r
-               if (/Database/i.test(criteria.Type)) {                          // Type = Database\r
-                       \r
-                       returnValue = context.Iterator( DBase.Database || [] );\r
-                       \r
-               } else if (/Landmark/i.test(criteria.Type)){            // Type = Landmark\r
-                       \r
-                       returnValue = context.Iterator( DBase[criteria.Type] || [] );\r
-                       \r
-               } else {                                                                                        // Type = Category\r
-               \r
-                       // @todo: apply filter criteria\r
-                       returnValue = context.Iterator( DBase[criteria.Type] || [] );\r
-               }\r
-               return context.Result(returnValue);\r
-       }\r
-\r
-       /**\r
-        * Landmarks: Add\r
-        * @param {Object} criteria\r
-        */\r
-       function __Add(criteria){\r
-               \r
-               if ((result = validator.apply('Add', arguments)) !== false)\r
-                       return result; \r
-\r
-               if (!/^(Landmark|Category)$/i.test(criteria.Type))\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType);\r
-\r
-\r
-               var Data = criteria.Data || false; \r
-               if(!Data){\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingData);\r
-               }\r
-\r
-               DBase = context.getData(provider);\r
-               \r
-               // unsupported!                 \r
-               if (Data.DatabaseURI) {\r
-                       context.notify(_t('%s:: Add : Data.DatabaseURI not implemented in preview').arg(provider));\r
-               }\r
-               \r
-               var item;\r
-               \r
-               // Type = Landmark\r
-               if (/Landmark/i.test(criteria.Type)){\r
-\r
-                        if (!Data.LandmarkName)\r
-                               Data.LandmarkName="";\r
-                       \r
-                       var landmarkPos = Data.LandmarkPosition;\r
-                       if (typeof landmarkPos != 'undefined') {\r
-                               if ((typeof landmarkPos.Latitude == 'undefined' || typeof landmarkPos.Latitude != 'number') &&\r
-                                       (typeof landmarkPos.Longitude == 'undefined' || typeof landmarkPos.Longitude != 'number') &&\r
-                                       (typeof landmarkPos.Altitude == 'undefined' || typeof landmarkPos.Altitude != 'number') &&\r
-                                       (typeof landmarkPos.HAccuracy == 'undefined' || typeof landmarkPos.HAccuracy != 'number') &&\r
-                                       (typeof landmarkPos.VAccuracy == 'undefined' || typeof landmarkPos.VAccuracy != 'number')) {\r
-                                               \r
-                                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType);\r
-                               }\r
-                       }\r
-                       // update\r
-                       if (typeof Data.id != 'undefined') {\r
-                               if(typeof Data.id != 'string')\r
-                                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId);\r
-                               \r
-                               var retIndex = findById(DBase.Landmark, Data.id); \r
-                               if (retIndex == -1)\r
-                                       return error(device.implementation.ERR_NOT_FOUND);\r
-                               DBase.Landmark[retIndex] = Data;\r
-                               item = Data;\r
-                       }\r
-                       // new\r
-                       else {\r
-                               item = context.extend({}, Data); \r
-                               item.id = String(context.getUniqueID());\r
-                               DBase.Landmark.push(item);\r
-                       }\r
-               } else { // Type = Category\r
-//                     alert(typeof Data.CategoryName);\r
-\r
-                       //alert("Data.id : "+Data.id);\r
-                       // update\r
-                       if (typeof Data.id != 'undefined') {\r
-                               if(typeof Data.id != 'string')\r
-                                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId);\r
-       \r
-                               var retIndex = findById(DBase.Category, Data.id); \r
-                               if (retIndex == -1)\r
-                                       return error(device.implementation.ERR_NOT_FOUND);\r
-\r
-                               DBase.Category[retIndex] = Data;                                        \r
-                               item = Data;\r
-                       }\r
-                       // new\r
-                       else {\r
-                               if (typeof Data.CategoryName == 'undefined')\r
-                                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingCategoryName);      \r
-       \r
-                               if(typeof Data.CategoryName != 'string' || Data.CategoryName.length <= 0)\r
-                                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType);\r
-\r
-                               var retIndex = findByName(DBase.Category, Data.CategoryName); \r
-                               if (retIndex !=  -1)\r
-                                       return error(device.implementation.ERR_ENTRY_EXISTS);\r
-                                       \r
-                               item = context.extend({}, Data); \r
-                               item.id = String(context.getUniqueID());\r
-                               DBase.Category.push(item);\r
-                       }\r
-               } \r
-               // return success\r
-               return context.Result(item.id, device.implementation.ERR_SUCCESS);\r
-       }\r
-                       \r
-       /**\r
-        * Landmarks: Delete\r
-        * @param {Object} criteria\r
-        */\r
-       function __Delete(criteria){\r
-\r
-               if ((result = validator.apply('Delete', arguments)) !== false)\r
-                       return result; \r
-\r
-               if (!/^(Landmark|Category)$/i.test(criteria.Type))\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType);\r
-\r
-               var Data = criteria.Data || false; \r
-               if(!Data){\r
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData);\r
-               }\r
-\r
-               if (typeof Data.id == 'undefined') {\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId);\r
-                       }\r
-\r
-               if (typeof Data.id != 'undefined' && typeof Data.id != 'string') {\r
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId);\r
-               }\r
-               if(Data.id.length <= 0 )\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.invalidId);\r
-                       \r
-               DBase = context.getData(provider);\r
-               \r
-               var type = criteria.Type;\r
-\r
-               // unsupported!                 \r
-               if (Data.DBUri) {\r
-                       context.notify(_t('%s:: Delete : Data.DBUri not implemented in preview').arg(provider));\r
-               }\r
-\r
-               // for both Landmark & Category:\r
-               var i,item;\r
-\r
-               for (i in DBase[type]) {\r
-                       item = DBase[type][i];\r
-                       if (Data.id == item.id) {\r
-                               DBase[type].splice(i, 1);\r
-                       }\r
-               }\r
-\r
-               // return success\r
-               return error(device.implementation.ERR_SUCCESS);                                \r
-       }\r
-               \r
-       /**\r
-        * Landmarks: Import\r
-        * @param {Object} criteria\r
-        */\r
-       function __Import(criteria){\r
-               \r
-               if ((result = validator.apply('Import', arguments)) !== false)\r
-                       return result; \r
-\r
-               if (!/^(Landmark)$/i.test(criteria.Type))\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType);\r
-\r
-               context.notify(_t('%s:: Import : not implemented in preview.').arg(provider));\r
-\r
-               var Data = criteria.Data || false; \r
-               if(!Data)\r
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData);\r
-\r
-               if (!Data.SourceFile)\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingSourceFile);\r
-\r
-               if (!Data.MimeType)\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingMimeType);\r
-\r
-               if (!/^(application\/vnd.nokia.landmarkcollection\+xml|application\/vnd.nokia.landmark\+wbxml)$/i.test(Data.MimeType))\r
-                       return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.invalidMime);\r
-\r
-               return error(device.implementation.ERR_SUCCESS);                \r
-       }\r
-                       \r
-\r
-       /**\r
-        * Landmarks: Export\r
-        * @param {Object} criteria\r
-        */\r
-       function __Export(criteria){\r
-\r
-               if ((result = validator.apply('Export', arguments)) !== false)\r
-                       return result; \r
-\r
-               context.notify(_t('%s:: Export : not implemented in preview.').arg(provider));\r
-               if (!/^(Landmark)$/i.test(criteria.Type))\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType);\r
-\r
-               var Data = criteria.Data || false; \r
-               if(!Data){\r
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData);\r
-               }\r
-\r
-               if (!Data.DestinationFile)\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingDestFile);\r
-                       \r
-               if (!Data.MimeType)\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingMimeType);\r
-\r
-               if (!Data.IdList)\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList);\r
-\r
-               return error(device.implementation.ERR_SUCCESS);                \r
-       }\r
-                       \r
-\r
-       /**\r
-        * Landmarks: Organise\r
-        * @param {Object} criteria\r
-        */\r
-       function __Organise(criteria){\r
-\r
-               if ((result = validator.apply('Organise', arguments)) !== false)\r
-                       return result; \r
-\r
-               if (!/^(Landmark)$/i.test(criteria.Type))\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType);\r
-\r
-               var Data = criteria.Data || false; \r
-               if(!Data){\r
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData);\r
-               }\r
-\r
-               if (!Data.id || Data.id == "")\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.invalidId);\r
-               \r
-               DBase = context.getData(provider);\r
-               var categories = DBase['Category'];\r
-               var landmarks  = DBase['Landmark'];\r
-               var found = false;\r
-               \r
-               \r
-               for(var i=0;i<categories.length;i++)\r
-               {\r
-                       var category = categories[i];\r
-                       if (category.id == Data.id) {\r
-                               found = true;\r
-                               break;\r
-                       }\r
-               }\r
-               if(!found)\r
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId);\r
-\r
-               try{\r
-                       if(!Data.IdList || Data.IdList.length <=0)\r
-                       {\r
-                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId);\r
-                       }\r
-               }catch(e){\r
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId);\r
-               }\r
-               \r
-               if (!/^(Associate|Disassociate)$/i.test(criteria.OperationType))\r
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.invalidOpType);\r
-               \r
-               context.notify(_t('%s:: Organise : not implemented in preview.').arg(provider));\r
-               if(/^Associate$/i.test(criteria.OperationType))\r
-               {\r
-                       for(var i=0;i<landmarks.length;i++)\r
-                       {\r
-                               for(var j=0;j<Data.IdList.length;j++)\r
-                               {\r
-                                       if(landmarks[i] == Data.IdList[j])\r
-                                       {\r
-                                               if(!landmarks[i].CategoryInfo)\r
-                                               {\r
-                                                       landmarks[i].CategoryInfo = new Array();\r
-                                                       landmarks[i].CategoryInfo.push(Data.id);                                        \r
-                                               }\r
-                                               else{\r
-                                                       var landmark = landmarks[i];\r
-                                                       var found = false;\r
-                                                       for(var k=0;k<landmark.CategoryInfo.length;k++)\r
-                                                       {\r
-                                                               if(landmark.CategoryInfo[k] == Data.id)\r
-                                                                       found = true;\r
-                                                       }\r
-                                                       if(!found)\r
-                                                               landmark.CategoryInfo.push(Data.id);\r
-                                               }\r
-                                               \r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               else\r
-               {\r
-                       for(var i=0;i<landmarks.length;i++)\r
-                       {\r
-                               for(var j=0;j<Data.IdList.length;j++)\r
-                               {\r
-                                       if(landmarks[i] == Data.IdList[j] && landmarks[i].CategoryInfo != undefined)\r
-                                       {\r
-                                               var landmark = landmarks[i];\r
-                                               for(var k=0;k<landmark.CategoryInfo.length;k++)\r
-                                               {\r
-                                                       if(landmark.CategoryInfo[k] == Data.id)\r
-                                                               landmark.CategoryInfo.splice(k,1);\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               \r
-               return error(device.implementation.ERR_SUCCESS);                \r
-       }\r
-               \r
-\r
-       /**\r
-        * Landmarks: Cancel\r
-        * @param {Object} criteria\r
-        */\r
-       function __Cancel(criteria){\r
-               method = 'Cancel';\r
-               \r
-               if ((result = validator.apply('Cancel', arguments)) !== false)\r
-                       return result;          \r
-                       \r
-               if (!criteria.TransactionID)\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingTID);\r
-               \r
-               clearTimeout(criteria.TransactionID);\r
-               return context.ErrorResult(device.implementation.ERR_SUCCESS);\r
-       }\r
-\r
-\r
-       \r
-       /*******************************\r
-        * helper functions\r
-        *******************************/\r
-       function error(code, msg /*, args...*/){\r
-\r
-               var args = ['Landmarks',method].concat([].slice.call(arguments,2));\r
-               msg = msg ? _t().arg.apply(msg,args) : undefined;\r
-               return context.ErrorResult(code, msg);\r
-       }\r
-\r
-       /**\r
-        * validate common input arguments\r
-        * 'this' is string (object) name of calling function\r
-        * \r
-        * @param {arguments} arguments of calling function\r
-        * @return {Result} Result object if error, false if no error.\r
-        */\r
-       function validator() {\r
-               method = ''+this;\r
-               var     failed = false,\r
-                       criteria = arguments[0] || false;\r
-                       \r
-               if (!criteria || typeof criteria != 'object')\r
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType);\r
-\r
-               return failed;\r
-       }\r
-       \r
-       function findById(dbase, id){\r
-               for (var i in dbase) {\r
-                       if (id == dbase[i]['id']) {\r
-                               return i;\r
-                       }\r
-               }\r
-               return -1;\r
-       }       \r
-\r
-       function findByName(dbase, name){\r
-               for (var i in dbase) {\r
-                       if (name == dbase[i]['CategoryName']) {\r
-                               return i;\r
-                       }\r
-               }\r
-               return -1;\r
-       }       \r
-\r
-\r
-       /** \r
-        * error messages\r
-        * order of %s args: Service name, method name, parameter name \r
-        */\r
-       var msg = {\r
-               missingType                     : '%s%s : Type is missing',\r
-               badType                         : '%s%s : Type is invalid',             \r
-               missingData                     : '%s%s : Type or Data is missing',\r
-               missingId                       : '%s%s : Id is missing',\r
-               invalidId                       : '%s%s : id is invalid',\r
-               missingLandmarkName     : '%s%s : Landmrak name Missing',\r
-               missingCategoryName     : '%s%s : CategoryName is missing',\r
-               missingSourceFile       : '%s%s : Import Source Filename is Missing',\r
-               missingMimeType         : '%s%s : MIME type for source file is Missing',\r
-               missingDestFile         : '%s%s : DestinationFile is missing',\r
-               invalidOpType           : '%s%s : OperationType is invalid',\r
-               missingIdList           : '%s%s : Id list is Missing',\r
-               missingTID                      : '%s%s : TransactionID is missing',\r
-               invalidMime                     : '%s%s : MimeType is missing',\r
-               msgNoMsg                        : '',\r
-               \r
-       };\r
-               \r
-\r
-}) ()\r
-\r