UNPKG

liborm

Version:

ORM that use the legacy libsqlite

369 lines (337 loc) 11.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SQLiteModel = exports.Model = undefined; var _stringify = require("babel-runtime/core-js/json/stringify"); var _stringify2 = _interopRequireDefault(_stringify); var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of"); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require("babel-runtime/helpers/inherits"); var _inherits3 = _interopRequireDefault(_inherits2); var _future = require("hjs-future/lib/future"); var _service = require("hjs-future/lib/service"); var _obs = require("libobs/lib/obs"); var _http = require("libhttp/lib/http"); var _helper = require("libsqlite/lib/helper"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Model = exports.Model = function (_Observable) { (0, _inherits3.default)(Model, _Observable); function Model() { (0, _classCallCheck3.default)(this, Model); var _this = (0, _possibleConstructorReturn3.default)(this, (Model.__proto__ || (0, _getPrototypeOf2.default)(Model)).call(this)); _this.mInternals = null; return _this; } (0, _createClass3.default)(Model, [{ key: "clone", value: function clone() { var o = new this.constructor(); var obj = this.getProperties(); for (var p in obj) { if (obj.hasOwnProperty(p)) { o[p] = obj[p]; } } return o; } }, { key: "compare", value: function compare(model1, model2) { return 0; } }, { key: "compareTo", value: function compareTo(model) { return 0; } }, { key: "containsKey", value: function containsKey(key) { if (key) { var keys = this.getKeys(); return keys.indexOf(key) !== -1; } return false; } }, { key: "equals", value: function equals(obj) { if (!obj) { return false; } if (obj === this) { return true; } if (!(obj instanceof this.constructor)) { return false; } var properties = this.getProperties(); for (var p in properties) { if (properties.hasOwnProperty(p)) { if (properties[p] !== obj[p]) { return false; } } } return true; } }, { key: "fromJSONObject", value: function fromJSONObject(url) { var _this2 = this; return new _service.FutureTask({ callable: new _future.Callable({ compute: function compute(onComplete) { new _http.HTTPConnection({ url: url, method: _http.HTTPMessage.GET, responseType: _http.HTTPMessage.JSON, handler: { onHandleRequest: function onHandleRequest(event) { var type = event.type; var response = event.response; if (type === "loadend") { if (!response.hasError()) { _this2.setProperties(response.getMessageBody()); } onComplete(_this2); } } }, autostart: true }); } }) }); } }, { key: "getInternals", value: function getInternals() { return this.mInternals; } }, { key: "getInternalsProperty", value: function getInternalsProperty(key) { if (key) { return this.mInternals[key]; } return null; } }, { key: "getKeys", value: function getKeys(filter) { return null; } }, { key: "getProperties", value: function getProperties(filter) { var properties = {}; var ctr = this.constructor; var keys = this.getKeys(filter); var len = keys.length; for (var i = 0; i < len; i++) { var key = keys[i]; properties[key] = this[key]; } return properties; } }, { key: "getProperty", value: function getProperty(key) { if (key) { return this[key]; } return null; } }, { key: "getPropertyType", value: function getPropertyType(key) { if (key) { var value = this[key]; if (value !== null && value !== undefined) { return value.constructor; } } return null; } }, { key: "getValues", value: function getValues() { var withoutId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; var values = []; var keys = this.getKeys(withoutId); var len = keys.length; for (var i = 0; i < len; i++) { values.push(this[keys[i]]); } return values; } }, { key: "parseProperties", value: function parseProperties(properties) { if (properties) { if (typeof properties === "string") { properties = JSON.parse(properties); } this.setProperties(properties); } } }, { key: "setInternals", value: function setInternals(properties) { if (properties) { for (var p in properties) { if (properties.hasOwnProperty(p)) { this.setInternalProperty(p, properties[p]); } } } } }, { key: "setInternalProperty", value: function setInternalProperty(key, value) { if (!this.mInternals) { this.mInternals = {}; } this.mInternals[key] = value; } }, { key: "setProperties", value: function setProperties(properties) { if (properties) { var changeCount = 0; for (var key in properties) { if (properties.hasOwnProperty(key)) { if (this.containsKey(key)) { this[key] = properties[key]; changeCount++; } else { this.setInternalProperty(key, properties[key]); } } } if (changeCount > 0) { this.setChanged(); } } } }, { key: "setProperty", value: function setProperty(key, value) { var changeCount = 0; if (key) { if (this.containsKey(key)) { this[key] = value; } else { this.setInternalProperty(key, value); } } if (changeCount > 0) { this.setChanged(); } } }, { key: "toJSONObject", value: function toJSONObject() { var obj = this.getProperties(); return (0, _stringify2.default)(obj, null, 4); } }, { key: "toString", value: function toString() { return this.toJSONObject(); } }]); return Model; }(_obs.Observable); /** @babel */ var SQLiteModel = exports.SQLiteModel = function (_Model) { (0, _inherits3.default)(SQLiteModel, _Model); function SQLiteModel() { (0, _classCallCheck3.default)(this, SQLiteModel); return (0, _possibleConstructorReturn3.default)(this, (SQLiteModel.__proto__ || (0, _getPrototypeOf2.default)(SQLiteModel)).call(this)); } (0, _createClass3.default)(SQLiteModel, [{ key: "compare", value: function compare(entity1, entity2) { var _id1 = entity1.getProperty(_helper.BaseColumns._ID); var _id2 = entity2.getProperty(_helper.BaseColumns._ID); return _id1 < _id2 ? -1 : _id1 > _id2 ? 1 : 0; } }, { key: "compareTo", value: function compareTo(entity) { var _id1 = entity.getProperty(_helper.BaseColumns._ID); var _id2 = entity.getProperty(_helper.BaseColumns._ID); return _id1 < _id2 ? -1 : _id1 > _id2 ? 1 : 0; } }, { key: "getKeys", value: function getKeys() { var withoutId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; var columnNames = this.getTable().getColumnNames(); var result = columnNames.filter(function (key, index, columnNames) { return !(withoutId && key === _helper.BaseColumns._ID); }); return result; } }, { key: "getPropertyInfo", value: function getPropertyInfo(name) { return this.getTable().getColumnInfoByName(name); } }, { key: "getPropertyInfoAt", value: function getPropertyInfoAt(index) { return this.getTable().getColumnInfo(index); } }, { key: "getTable", value: function getTable() { return null; } }, { key: "getTableName", value: function getTableName() { return null; } }, { key: "getValues", value: function getValues() { var withoutId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; var values = []; var keys = this.getKeys(withoutId); var len = keys.length; for (var i = 0; i < len; i++) { values.push(this[keys[i]]); } return values; } }, { key: "toString", value: function toString() { var buffer = ""; var index = 0; var properties = this.getProperties(); var len = _helper.DatabaseUtils.countValues(properties); buffer += this.constructor.name + "{\n"; for (var p in properties) { if (properties.hasOwnProperty(p)) { buffer += p + "=" + (properties[p] ? properties[p] : "null"); if (index < len - 1) { buffer += ",\n"; } index++; } } return buffer += "}"; } }]); return SQLiteModel; }(Model);