From 97666cda8ba38e6b15ebca557e7197eb3ee43214 Mon Sep 17 00:00:00 2001 From: Tomasz Marciniak Date: Tue, 10 Mar 2015 14:27:53 +0100 Subject: [PATCH] [Alarm] Changed alarm.id property to be read only. [Verification] Code compiles without errors. alarm.id property cannot be changed now. Change-Id: I5284361905945749a313bdb92c7bb965d855b4db Signed-off-by: Tomasz Marciniak --- src/alarm/alarm_api.js | 69 ++++++++++++++++++++++++-------------- src/alarm/alarm_manager.cc | 2 +- 2 files changed, 44 insertions(+), 27 deletions(-) diff --git a/src/alarm/alarm_api.js b/src/alarm/alarm_api.js index 85c3b487..156808fa 100644 --- a/src/alarm/alarm_api.js +++ b/src/alarm/alarm_api.js @@ -17,10 +17,26 @@ var AlarmManager = function () { }); }; -//internal ///////////////////////////////////////////////////////////// -//this function should be kept in internal scope -function InternalData(id) { - this.id = id; +function InternalData_(data) { + if (!(this instanceof InternalData_)) { + return new InternalData_(data); + } + + for(var key in data) { + if (data.hasOwnProperty(key)) { + this[key] = data[key]; + } + } +} + +function UpdateInternalData_(internal, data) { + var values = InternalData_(data); + + for(var key in data) { + if (values.hasOwnProperty(key) && internal.hasOwnProperty(key)) { + internal[key] = values; + } + } } //class AlarmManager //////////////////////////////////////////////////// @@ -66,11 +82,7 @@ AlarmManager.prototype.add = function () { if (native.isFailure(result)) { throw native.getErrorObject(result); } else { - Object.defineProperties(args.alarm, { - id: { - value: Converter.toString(native.getResultObject(result).alarm_id), - writable: false, enumerable: true, configurable: true} - }); + UpdateInternalData_(args.alarm, native.getResultObject(result)); } }; @@ -112,14 +124,12 @@ AlarmManager.prototype.get = function () { } else { result = native.getResultObject(result); if ('AlarmRelative' === result.type) { - return new tizen.AlarmRelative(result.delay, result.period, - new InternalData(result.id)); + return new tizen.AlarmRelative(result.delay, result.period, InternalData_(result)); } else { var date = new Date(result.year, result.month, result.day, result.hour, result.min, result.sec); - return new tizen.AlarmAbsolute(date, result.second, - new InternalData(result.id)); + return new tizen.AlarmAbsolute(date, result.second, InternalData_(result)); } } }; @@ -134,13 +144,11 @@ AlarmManager.prototype.getAll = function () { var md = []; data.forEach(function (i) { if ('AlarmRelative'=== i.type) { - md.push(new tizen.AlarmRelative(i.delay, i.period, - new InternalData(i.id))); + md.push(new tizen.AlarmRelative(i.delay, i.period, InternalData_(i))); } else { var date = new Date(i.year, i.month, i.day, i.hour, i.min, i.sec); - md.push(new tizen.AlarmAbsolute(date, i.second, - new InternalData(i.id))); + md.push(new tizen.AlarmAbsolute(date, i.second, InternalData_(i))); } }); return md; @@ -151,12 +159,24 @@ AlarmManager.prototype.getAll = function () { function Alarm(id) { var m_id = null; - if (!T.isNullOrUndefined(id)) { - m_id = Converter.toString(id); + if (!T.isNullOrUndefined(id) && id instanceof InternalData_) { + m_id = id.id; } + var _internal = { + 'id' : m_id + }; + Object.defineProperties(this, { - id: { value: m_id, writable: false, enumerable: true, configurable: true} + id: { + get: function () {return _internal.id;}, + set: function (value) { + if (value instanceof InternalData_) { + _internal.id = value.id; + } + }, + enumerable: true + } }); } //class AlarmRelative ////////////////////////////////////////////////// @@ -171,9 +191,8 @@ tizen.AlarmRelative = function(delay, period, internal) { if (arguments.length >= 2) { m_period = Converter.toLong(period, true); } - if (internal instanceof InternalData) { - Alarm.call(this, internal.id); - } + + Alarm.call(this, internal); Object.defineProperties(this, { delay: { value: m_delay, writable: false, enumerable: true}, @@ -233,9 +252,7 @@ tizen.AlarmAbsolute = function(date, second, internal) { } } - if (internal instanceof InternalData) { - Alarm.call(this, internal.id); - } + Alarm.call(this, internal); } else { m_period = undefined; } diff --git a/src/alarm/alarm_manager.cc b/src/alarm/alarm_manager.cc index 838cf9a6..e32ae509 100644 --- a/src/alarm/alarm_manager.cc +++ b/src/alarm/alarm_manager.cc @@ -210,7 +210,7 @@ void AlarmManager::Add(const picojson::value& args, picojson::object& out) { picojson::value result = picojson::value(picojson::object()); picojson::object& result_obj = result.get(); - result_obj.insert(std::make_pair("alarm_id", picojson::value(std::to_string(alarm_id)))); + result_obj.insert(std::make_pair("id", picojson::value(std::to_string(alarm_id)))); ReportSuccess(result, out); } -- 2.34.1