Getters for member expression properties
This commit is contained in:
@@ -554,17 +554,17 @@ ol.expression.Math.prototype.getRight = function() {
|
|||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends {ol.expression.Expression}
|
* @extends {ol.expression.Expression}
|
||||||
* @param {ol.expression.Expression} expr An expression that resolves to an
|
* @param {ol.expression.Expression} object An expression that resolves to an
|
||||||
* object.
|
* object.
|
||||||
* @param {ol.expression.Identifier} property Identifier with name of property.
|
* @param {ol.expression.Identifier} property Identifier with name of property.
|
||||||
*/
|
*/
|
||||||
ol.expression.Member = function(expr, property) {
|
ol.expression.Member = function(object, property) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {ol.expression.Expression}
|
* @type {ol.expression.Expression}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
this.expr_ = expr;
|
this.object_ = object;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {ol.expression.Identifier}
|
* @type {ol.expression.Identifier}
|
||||||
@@ -581,7 +581,7 @@ goog.inherits(ol.expression.Member, ol.expression.Expression);
|
|||||||
*/
|
*/
|
||||||
ol.expression.Member.prototype.evaluate = function(opt_scope, opt_fns,
|
ol.expression.Member.prototype.evaluate = function(opt_scope, opt_fns,
|
||||||
opt_this) {
|
opt_this) {
|
||||||
var obj = this.expr_.evaluate(opt_scope, opt_fns, opt_this);
|
var obj = this.object_.evaluate(opt_scope, opt_fns, opt_this);
|
||||||
if (!goog.isObject(obj)) {
|
if (!goog.isObject(obj)) {
|
||||||
throw new Error('Expected member expression to evaluate to an object ' +
|
throw new Error('Expected member expression to evaluate to an object ' +
|
||||||
'but got ' + obj);
|
'but got ' + obj);
|
||||||
@@ -590,6 +590,24 @@ ol.expression.Member.prototype.evaluate = function(opt_scope, opt_fns,
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the object expression.
|
||||||
|
* @return {ol.expression.Expression} The object.
|
||||||
|
*/
|
||||||
|
ol.expression.Member.prototype.getObject = function() {
|
||||||
|
return this.object_;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the property expression.
|
||||||
|
* @return {ol.expression.Identifier} The property.
|
||||||
|
*/
|
||||||
|
ol.expression.Member.prototype.getProperty = function() {
|
||||||
|
return this.property_;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A logical not expression (e.g. `!foo`).
|
* A logical not expression (e.g. `!foo`).
|
||||||
|
|||||||
@@ -558,6 +558,19 @@ describe('ol.expression.Member', function() {
|
|||||||
expect(expr.evaluate(scope)).to.be(42);
|
expect(expr.evaluate(scope)).to.be(42);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var object = new ol.expression.Identifier('foo');
|
||||||
|
var property = new ol.expression.Identifier('bar');
|
||||||
|
var expr = new ol.expression.Member(object, property);
|
||||||
|
|
||||||
|
describe('#getObject()', function() {
|
||||||
|
expect(expr.getObject()).to.be(object);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#getProperty()', function() {
|
||||||
|
expect(expr.getProperty()).to.be(property);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user