From b89a7ee8b956c96a1dcee995ea840feddc5d4b27 Mon Sep 17 00:00:00 2001 From: Pierre Frisch Date: Thu, 22 Dec 2011 07:25:50 -0800 Subject: First commit of Ninja to ninja-internal Signed-off-by: Valerio Virgillito --- node_modules/montage/data/query.js | 114 +++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100755 node_modules/montage/data/query.js (limited to 'node_modules/montage/data/query.js') diff --git a/node_modules/montage/data/query.js b/node_modules/montage/data/query.js new file mode 100755 index 00000000..9fce9dae --- /dev/null +++ b/node_modules/montage/data/query.js @@ -0,0 +1,114 @@ +/* +This file contains proprietary software owned by Motorola Mobility, Inc.
+No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ +/** + @module montage/data/query + @requires montage/core/core + @requires montage/data/selector + @requires montage/core/logger +*/ +var Montage = require("montage").Montage; +var Selector = require("data/selector").Selector; +var Key = require("data/selector").Key; +var logger = require("core/logger").logger("query"); +/** + @class module:montage/data/query.Query + @extends module:montage/data/selector.Selector +*/ +var Query = exports.Query = Montage.create(Selector,/** @lends module:montage/data/query.Query# */ { +/** + Description TODO + @type {Property} + @default {Function} null + */ + blueprint: { + value: null, + serializable: true + }, +/** + Description TODO + @type {Property} + @default {Selector} null + */ + selector: { + value: null, + serializable: true + }, +/** + Description TODO + @type {Property} + @default {String} "" + */ + name: { + serializable: true, + enumerable: true, + value: "" + }, +/** + Description TODO + @function + @param {Function} blueprint TODO + @returns this.initWithBlueprintAndSelector(blueprint, null) + */ + initWithBlueprint: { + enumerable: true, + value: function(blueprint) { + return this.initWithBlueprintAndSelector(blueprint, null); + } + }, +/** + Description TODO + @function + @param {Function} blueprint TODO + @param {Selector} selector TODO + @returns itself + */ + initWithBlueprintAndSelector: { + enumerable: true, + value: function(blueprint, selector) { + this.blueprint = blueprint; + Object.defineProperty(this, "blueprint", {writable: false}); + if ((selector != null) && (typeof selector === 'object')) { + this.selector = selector; + } else { + this.selector = this; + } + return this; + } + }, +/** + Description TODO + @function + @param {Function} propertyPath TODO + @returns this.selector + */ + where: { + value: function(propertyPath) { + // where clause with an empty key path is a noop. + if ((propertyPath != null) && (typeof propertyPath == 'string') && (propertyPath.length > 0)) { + // TODO [PJYF Aug 23 2011] We should check that the key path is valid + return Key.create().init(this, [propertyPath]); + } + return this.selector; + } + }, +/** + Description TODO + @function + @param {Function} propertyPath TODO + @returns this.selector + */ + property: { + value: function(propertyPath) { + if (((propertyPath) != null) && (typeof (propertyPath) == 'string') && (propertyPath.length > 0)) { + // TODO [PJYF Aug 23 2011] We should check that the key path is valid + return Key.create().init(this, [(propertyPath)]); + } + // TODO [PJYF Aug 23 2011] We should raise here. + return this.selector; + } + } + +}); -- cgit v1.2.3