baja/ord/ViewScheme.js
/**
* @copyright 2015 Tridium, Inc. All Rights Reserved.
* @author Gareth Johnson
*/
/**
* Defines {@link baja.ViewScheme}.
* @module baja/ord/ViewScheme
*/
define([ "bajaScript/sys",
"bajaScript/baja/ord/OrdScheme" ],
function (baja, OrdScheme) {
"use strict";
var subclass = baja.subclass,
callSuper = baja.callSuper;
/**
* View ORD Scheme.
*
* This scheme is used to process View query related information.
*
* @class
* @alias baja.ViewScheme
* @extends baja.OrdScheme
* @private
*/
var ViewScheme = function ViewScheme() {
callSuper(ViewScheme, this, arguments);
};
subclass(ViewScheme, OrdScheme);
/**
* Default View Scheme instance.
* @private
* @type {baja.ViewScheme}
*/
ViewScheme.DEFAULT = new ViewScheme();
/**
* Called when an ORD is resolved.
*
* @private
*
* @see baja.OrdScheme#resolve
*
* @param {module:baja/ord/OrdTarget} target the current ORD Target.
* @param {baja.OrdQuery} query the ORD Query used in resolving the ORD.
* @param {module:baja/ord/OrdQueryListCursor} cursor the ORD Query List
* cursor used for helping to
* asynchronously resolve the ORD.
* @param {Object} options options used for resolving an ORD.
*/
ViewScheme.prototype.resolve = function (target, query, cursor, options) {
// Note down the view query information onto the ORD target so it can be accessed
target.view = {
id: query.getViewId(),
params: query.getParameters()
};
cursor.resolveNext(target, options);
};
/**
* Return an ORD Query for the scheme.
*
* @returns {baja.ViewQuery}
*/
ViewScheme.prototype.parse = function (schemeName, body) {
return new baja.ViewQuery(body);
};
return ViewScheme;
});