You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by jm...@apache.org on 2007/10/22 19:57:57 UTC
svn commit: r587220 -
/incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js
Author: jmargaris
Date: Mon Oct 22 12:57:56 2007
New Revision: 587220
URL: http://svn.apache.org/viewvc?rev=587220&view=rev
Log:
efficiency changes
Modified:
incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js
Modified: incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js?rev=587220&r1=587219&r2=587220&view=diff
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js Mon Oct 22 12:57:56 2007
@@ -49,6 +49,9 @@
xap.data.controller.BindingResolver.EQUALS_CHAR = "=";
/*private static final char[]*/
xap.data.controller.BindingResolver.ESCAPABLE_CHARACTERS = [xap.data.controller.BindingResolver.ESCAPE_CHAR, xap.data.controller.BindingResolver.DELIMITER_CHAR];
+
+
+xap.data.controller.BindingResolver.PARSER = new xap.util.EscapeSyntaxParser(xap.data.controller.BindingResolver.ESCAPABLE_CHARACTERS, xap.data.controller.BindingResolver.ESCAPABLE_CHARACTERS);
/**
* @private ContextStack
**/
@@ -109,7 +112,7 @@
/*int*/
var index = 0;
/*StringBuffer*/
- var curToken = null;
+ var curToken = [];
/*String*/
var parameterName = null;
/*String*/
@@ -119,7 +122,10 @@
/*String*/
var defaultValue = null;
/*EscapeSyntaxParser*/
- var parser = new xap.util.EscapeSyntaxParser(xap.data.controller.BindingResolver.ESCAPABLE_CHARACTERS, xap.data.controller.BindingResolver.ESCAPABLE_CHARACTERS);
+ var parser = xap.data.controller.BindingResolver.PARSER;
+
+ //TODO instead of looping through manually does it make sense to use index of
+ //to look for either \ or ; along with substring or smoething like that??
while (!done) {
var curChar = null;
/*boolean*/
@@ -129,9 +135,6 @@
curChar = xap.data.controller.BindingResolver.DELIMITER_CHAR;
} else {
curChar = parser.getResolvedCharacter(value, index);
- if (curToken == null) {
- curToken = "" ;
- }
if (curChar == xap.util.EscapeSyntaxParser.UNRESOLVED_CHARACTER) {
// REGULAR CHARACTER
curChar = value.charAt(index);
@@ -147,12 +150,12 @@
if (!wasEscapedChar) {
if (curChar == xap.data.controller.BindingResolver.DELIMITER_CHAR) {
if (parameterName == null) {
- if (curToken != null) {
- parameterName = curToken.toString().trim();
+ if (curToken) {
+ parameterName = curToken.join("").trim();
}
} else {
if (curToken != null) {
- parameterValue = curToken.toString().trim();
+ parameterValue = curToken.join("").trim();
}
}
if (xap.data.bridge.XmlDataTokens.FORMATTER == parameterName ) {
@@ -187,14 +190,14 @@
}
}
}
- curToken = null;
+ curToken = [];
parameterName = null;
parameterValue = null;
continue;
} else {
if (parameterName == null && curChar == this.constructor.EQUALS_CHAR) {
- parameterName = curToken.toString().trim();
- curToken = null;
+ parameterName = curToken.join("").trim();
+ curToken = [];
continue;
}
}
@@ -202,7 +205,7 @@
// The character wasn't handled as a special character, so it
// is part of the token currently in progress.
- curToken += curChar ;
+ curToken.push(curChar) ;
}
/*Binding*/
var binding = xap.data.controller.Binding.createIteratorBinding(this.getContextStack(), dataSourceContainer, select, dataSource, this._session, bindType, defaultValue);