/* * Copyright 2008 Udai Gupta, Ralf Joachim * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.castor.cpa.query.ejbql; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import org.castor.cpa.query.ParseException; import org.castor.cpa.query.TokenManagerError; import org.castor.cpa.query.QueryObject; import junit.framework.TestCase; /** * Junit test for testing EjbQL Tree Walker. * * @author <a href="mailto:mailtoud AT gmail DOT com">Udai Gupta</a> * @author <a href="mailto:ralf DOT joachim AT syscon DOT eu">Ralf Joachim</a> * @version $Revision: 7121 $ $Date: 2006-04-25 16:09:10 -0600 (Tue, 25 Apr * 2006) $ * @since 1.3 */ public class TestEjbQLTreeWalker extends TestCase { // -------------------------------------------------------------------------- public final void testConstructor() throws ParseException { try { new EjbQLTreeWalker(new SimpleNode(3)); fail("expected IllegalArgumentException !!!"); } catch (IllegalArgumentException e) { assertTrue(true); } try { new EjbQLTreeWalker((SimpleNode) null); fail("expected NullPointerException !!!"); } catch (NullPointerException e) { assertTrue(true); } SimpleNode root = null; try { root = getSimpleNode("SelecT DisTinct o.item from de.jsci as o"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } try { new EjbQLTreeWalker(root); assertTrue(true); } catch (Exception e) { fail("Exception didn't expeccted !!!"); e.printStackTrace(); } } public final void testOrderBy() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " order by o.name, o.id desc"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO" + " AS o ORDER BY o.name ASC, o.id DESC"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLimitOffsetWithInt() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " limit 1 offset 2"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " LIMIT 1 OFFSET 2"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLimitOffsetWithParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " limit ?1 offset ?2"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " LIMIT ?1 OFFSET ?2"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareEqualWithBoolean() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = true"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted = true)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareEqualWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = 67"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted = 67)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareEqualWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = 67.43"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted = 67.43)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareEqualWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = 'Testing'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted = 'Testing')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareEqualWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = DATE '2008-08-04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted = DATE '2008-08-04')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareEqualWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = Time '03:22:04.9'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted = TIME '03:22:04.900')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareEqualWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = TimeStamp '2008-08-05 03:22:04.000'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted = TIMESTAMP '2008-08-05 03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareNotEqualWithBoolean() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <> true"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted <> true)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareNotEqualWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <> 67"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted <> 67)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareNotEqualWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <> 67.43"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted <> 67.43)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareNotEqualWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <> 'Testing'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted <> 'Testing')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareNotEqualWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <> DATE '2008-08-04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted <> DATE '2008-08-04')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareNotEqualWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <> Time '03:22:04.000'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted <> TIME '03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareNotEqualWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <> TimeStamp '2008-08-05 03:22:04.000'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted <> TIMESTAMP '2008-08-05 03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessThanWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted < 67"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted < 67)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessThanWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted < 67.43"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted < 67.43)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessThanWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted < 'Testing'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted < 'Testing')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessThanWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted < DATE '2008-08-04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted < DATE '2008-08-04')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessThanWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted < Time '03:22:04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted < TIME '03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessThanWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted < TimeStamp '2008-08-05 03:22:04.000'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted < TIMESTAMP '2008-08-05 03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessEqualWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <= 67"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted <= 67)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessEqualWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <= 67.43"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted <= 67.43)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessEqualWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <= 'Testing'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted <= 'Testing')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessEqualWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <= DATE '2008-08-04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted <= DATE '2008-08-04')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessEqualWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <= Time '03:22:04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted <= TIME '03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareLessEqualWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted <= TimeStamp '2008-08-05 03:22:04.000'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted <= TIMESTAMP '2008-08-05 03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterEqualWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted >= 67"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted >= 67)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterEqualWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted >= 67.43"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted >= 67.43)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterEqualWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted >= 'Testing'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted >= 'Testing')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterEqualWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted >= DATE '2008-08-04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted >= DATE '2008-08-04')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterEqualWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted >= Time '03:22:04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted >= TIME '03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterEqualWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted >= TimeStamp '2008-08-05 03:22:04.090'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted >= TIMESTAMP '2008-08-05 03:22:04.090')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterThanWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted > 67"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted > 67)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterThanWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted > 67.43"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted > 67.43)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterThanWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted > 'Testing'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted > 'Testing')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterThanWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted > DATE '2008-08-04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted > DATE '2008-08-04')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterThanWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted > Time '03:22:04'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted > TIME '03:22:04.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testCompareGreaterThanWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted > TimeStamp '2008-08-05 03:22:04.009'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o" + " WHERE (o.deleted > TIMESTAMP '2008-08-05 03:22:04.009')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLikeWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.$8de_leted LIKE '%s@T#'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.$8de_leted LIKE '%s@T#')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLikeWithStringChar() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted LIKE 'sT' ESCAPE 'r'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted LIKE 'sT' ESCAPE 'r')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLikeWithStringParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted LIKE 'sT' ESCAPE :N"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted LIKE 'sT' ESCAPE :N)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLikeWithParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted LIKE :NamedParameter"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted LIKE :NamedParameter)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLikeWithParameterChar() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted LIKE :NamedParameter Escape 'r'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted LIKE :NamedParameter ESCAPE 'r')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLikeWithParameterParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted LIKE :NamedParameter Escape :N"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted LIKE :NamedParameter ESCAPE :N)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotLikeWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT LIKE 'sT'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT LIKE 'sT')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotLikeWithStringChar() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted Not LIKE 'sT' ESCAPE 'r'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT LIKE 'sT' ESCAPE 'r')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotLikeWithStringParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted nOt LIKE 'sT' ESCAPE :N"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT LIKE 'sT' ESCAPE :N)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotLikeWithParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted not LIKE :NamedParameter"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT LIKE :NamedParameter)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotLikeWithParameterChar() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted not LIKE :NamedParameter Escape 'r'"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT LIKE :NamedParameter ESCAPE 'r')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotLikeWithParameterParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT LIKE :NamedParameter Escape :N"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT LIKE :NamedParameter ESCAPE :N)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testBetweenWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted betweEn 95 and 400 "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted BETWEEN 95 AND 400)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testBetweenWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted betweEn 95.43 and 400.95 "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted BETWEEN 95.43 AND 400.95)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testBetweenWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted betweEn 'Low' and 'High' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted BETWEEN 'Low' AND 'High')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testBetweenWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted betweEn DATE '2007-08-05' and DATE '2008-08-05' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted BETWEEN DATE '2007-08-05' AND DATE '2008-08-05')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testBetweenWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted betweEn TIME '06:52:56' and TIME '08:52:56' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted BETWEEN TIME '06:52:56.000' AND TIME '08:52:56.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testBetweenWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted betweEn TIMESTAMP '2007-08-05 06:52:56.130' and " + "TIMESTAMP '2008-08-05 08:52:56.130' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted BETWEEN TIMESTAMP '2007-08-05 06:52:56.130' AND " + "TIMESTAMP '2008-08-05 08:52:56.130')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotBetweenWithLong() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT betweEn 95 and 400 "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT BETWEEN 95 AND 400)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotBetweenWithDouble() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT betweEn 95.43 and 400.95 "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT BETWEEN 95.43 AND 400.95)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotBetweenWithString() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT betweEn 'Low' and 'High' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT BETWEEN 'Low' AND 'High')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotBetweenWithDate() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT betweEn DATE '2007-08-05' and DATE '2008-08-05' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT BETWEEN DATE '2007-08-05' AND DATE '2008-08-05')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotBetweenWithTime() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT betweEn TIME '06:52:56' and TIME '08:52:56' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT BETWEEN TIME '06:52:56.000' AND TIME '08:52:56.000')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNotBetweenWithTimestamp() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT betweEn TIMESTAMP '2007-08-05 06:52:56.013' and " + "TIMESTAMP '2008-08-05 08:52:56.013' "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT BETWEEN TIMESTAMP '2007-08-05 06:52:56.013' AND " + "TIMESTAMP '2008-08-05 08:52:56.013')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testInWithPath() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT IN (org.castor.cpa.query.ejbql.MockEnum.TEST1" + ", org.castor.cpa.query.ejbql.MockEnum.TEST2)"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT IN (org.castor.cpa.query.ejbql.MockEnum.TEST1" + ", org.castor.cpa.query.ejbql.MockEnum.TEST2))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testInWithPathFail() throws UnsupportedEncodingException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT IN (org.castor.cpa.query.ejbql.MockEnum.INVALID)"; try { getQO(oql); fail("ParseException expected !!!"); } catch (ParseException e) { assertTrue(true); } } // -------------------------------------------------------------------------- public final void testInParameter() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT IN (:test, ?453,:asd)"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT IN (:test, ?453, :asd))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testInLiterals() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted NOT IN (34, 453.34, true, 'String')"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted NOT IN (34, 453.34, true, 'String'))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testNull() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted IS NOT NULL"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted IS NOT NULL)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testComplex() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted+3*5 = 4 and (o.deleted+3)*5 = 4 " + " or o.deleted LIKE 'jk' and o.deleted IS NULL "; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE ((o.deleted + (3 * 5) = 4) AND ((o.deleted + 3) * 5 = 4))" + " OR ((o.deleted LIKE 'jk') AND (o.deleted IS NULL))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLengthFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = Length ('testString')"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = LENGTH('testString'))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLocateFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = locate ('String','testString')"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = LOCATE('String', 'testString'))"; String actual = qo.toString(); assertEquals(expected, actual); oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = LOcate('String', 'testString', 3)"; qo = getQO(oql); expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = LOCATE('String', 'testString', 3))"; actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testAbsFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = abs(-45)"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = ABS(-45))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testSqrtFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = sqrT(5)"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = SQRT(5))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testModFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = mod(5, 3)"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = 5 % 3)"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testConcateFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = CONcat('String1','String2')"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = 'String1' || 'String2')"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testSubstringFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = SubstrinG('TestString', 3 ,5)"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = SUBSTRING('TestString', 3, 5))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testTrimFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = trim('testString')"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = TRIM('testString'))"; String actual = qo.toString(); assertEquals(expected, actual); oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = trim('t' FROM 'testString')"; qo = getQO(oql); expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = TRIM('t' FROM 'testString'))"; actual = qo.toString(); assertEquals(expected, actual); oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = trim(TRAILING FROM 'testString')"; qo = getQO(oql); expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = TRIM(TRAILING FROM 'testString'))"; actual = qo.toString(); assertEquals(expected, actual); oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = trim(LEADING 't' FROM 'testString')"; qo = getQO(oql); expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = TRIM(LEADING 't' FROM 'testString'))"; actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- public final void testLowerFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = Lower('STRING')"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = LOWER('STRING'))"; String actual = qo.toString(); assertEquals(expected, actual); } public final void testUpperFunction() throws UnsupportedEncodingException, ParseException { String oql = "SelecT DisTinct o.item from de.jsci.pcv.jdo.LieferantJDO as o" + " where o.deleted = UPPER('string')"; QueryObject qo = getQO(oql); String expected = "SELECT DISTINCT o.item FROM de.jsci.pcv.jdo.LieferantJDO AS o " + "WHERE (o.deleted = UPPER('string'))"; String actual = qo.toString(); assertEquals(expected, actual); } // -------------------------------------------------------------------------- private QueryObject getQO(final String oql) throws UnsupportedEncodingException, ParseException { EjbQLParser parser = null; EjbQLParserTokenManager tkmgr = null; try { tkmgr = createTkmgr(oql); parser = new EjbQLParser(tkmgr); SimpleNode root = parser.ejbQL(); EjbQLTreeWalker tw = new EjbQLTreeWalker(root); return tw.getSelect(); } catch (org.castor.cpa.query.ejbql.ParseException e) { parser.ReInit(tkmgr); throw new ParseException(e); } catch (org.castor.cpa.query.ejbql.TokenMgrError e) { // parser.ReInit(tkmgr); throw new TokenManagerError(e); } } private SimpleNode getSimpleNode(final String oql) throws UnsupportedEncodingException, ParseException { EjbQLParser parser = null; EjbQLParserTokenManager tkmgr = null; try { tkmgr = createTkmgr(oql); parser = new EjbQLParser(tkmgr); return parser.ejbQL(); } catch (org.castor.cpa.query.ejbql.ParseException e) { parser.ReInit(tkmgr); throw new ParseException(e); } catch (org.castor.cpa.query.ejbql.TokenMgrError e) { // parser.ReInit(tkmgr); throw new TokenManagerError(e); } } private EjbQLParserTokenManager createTkmgr(final String oql) throws UnsupportedEncodingException { StringBuffer stringBuffer = new StringBuffer(oql); InputStream bis = new ByteArrayInputStream(stringBuffer.toString() .getBytes("UTF-8")); InputStreamReader isr = new InputStreamReader(bis, "UTF-8"); SimpleCharStream jSt = new SimpleCharStream(isr); return new EjbQLParserTokenManager(jSt); } // -------------------------------------------------------------------------- }