[seam-commits] Seam SVN: r9941 - trunk/src/main/org/jboss/seam/persistence.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Fri Jan 16 14:27:39 EST 2009
Author: norman.richards at jboss.com
Date: 2009-01-16 14:27:39 -0500 (Fri, 16 Jan 2009)
New Revision: 9941
Modified:
trunk/src/main/org/jboss/seam/persistence/QueryParser.java
Log:
JBSEAM-3888
Modified: trunk/src/main/org/jboss/seam/persistence/QueryParser.java
===================================================================
--- trunk/src/main/org/jboss/seam/persistence/QueryParser.java 2009-01-16 18:49:19 UTC (rev 9940)
+++ trunk/src/main/org/jboss/seam/persistence/QueryParser.java 2009-01-16 19:27:39 UTC (rev 9941)
@@ -35,35 +35,24 @@
public QueryParser(String ejbql, int startingParameterNumber)
{
- StringTokenizer tokens = new StringTokenizer(ejbql, "#}", true);
- ejbqlBuilder = new StringBuilder( ejbql.length() );
- while ( tokens.hasMoreTokens() )
- {
- String token = tokens.nextToken();
- if ( "#".equals(token) )
- {
- if ( !tokens.hasMoreTokens() )
- {
- throw new IllegalArgumentException("query fragment terminates in #");
- }
- String expressionToken = tokens.nextToken();
- if ( !expressionToken.startsWith("{") )
- {
- throw new IllegalArgumentException("missing { after # in query fragment");
- }
- if ( !tokens.hasMoreTokens() )
- {
- throw new IllegalArgumentException("missing } after expression in query fragment");
- }
- String expression = token + expressionToken + tokens.nextToken();
- ejbqlBuilder.append(':').append( getParameterName( startingParameterNumber + parameterValueBindings.size() ) );
- parameterValueBindings.add( Expressions.instance().createValueExpression(expression) );
- }
- else
- {
- ejbqlBuilder.append(token);
- }
- }
+ StringTokenizer tokens = new StringTokenizer(ejbql, "#}", true);
+ ejbqlBuilder = new StringBuilder(ejbql.length());
+ while (tokens.hasMoreTokens()) {
+ String token = tokens.nextToken();
+ if ("#".equals(token) && tokens.hasMoreTokens()) {
+ String expressionToken = tokens.nextToken();
+
+ if (!expressionToken.startsWith("{") || !tokens.hasMoreTokens()) {
+ ejbqlBuilder.append(token).append(expressionToken);
+ } else {
+ String expression = token + expressionToken + tokens.nextToken();
+ ejbqlBuilder.append(':').append( getParameterName( startingParameterNumber + parameterValueBindings.size() ) );
+ parameterValueBindings.add( Expressions.instance().createValueExpression(expression) );
+ }
+ } else {
+ ejbqlBuilder.append(token);
+ }
+ }
}
}
More information about the seam-commits
mailing list