zpt
Version:
Zenon Page Templates - JS (ZPT-JS)
57 lines (42 loc) • 1.43 kB
JavaScript
/*
AndExpression class
*/
;
var context = require( '../../context.js' );
var evaluateHelper = require( '../evaluateHelper.js' );
var expressionsUtils = require( '../expressionsUtils.js' );
var AndExpression = function( stringToApply, expressionListToApply ) {
var string = stringToApply;
var expressionList = expressionListToApply;
var evaluate = function( scope ){
for ( var i = 0; i < expressionList.length; i++ ) {
var expression = expressionList[ i ];
if ( ! evaluateHelper.evaluateBoolean( scope, expression ) ){
return false;
}
}
return true;
};
var dependsOn = function( depsDataItem, scope ){
return expressionsUtils.buildDependsOnList( depsDataItem, scope, expressionList );
};
var toString = function(){
return string;
};
return {
evaluate: evaluate,
dependsOn: dependsOn,
toString: toString
};
};
AndExpression.removePrefix = true;
AndExpression.getPrefix = function() {
return context.getConf().andExpression;
};
AndExpression.getId = AndExpression.getPrefix;
AndExpression.build = function( string ) {
var boolHelper = require( './boolHelper.js' );
var expressionList = boolHelper.build( string, 'And' );
return new AndExpression( string, expressionList );
};
module.exports = AndExpression;