You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by fr...@apache.org on 2001/12/17 16:59:43 UTC

cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql BasicSQLSelectSimpleHandler.java BasicSQLParserTokenManager.java BasicSQLParserConstants.java BasicSQLParser.java BasicSQLInsertRowsHandler.java BasicSQLCreateTableHandler.java

froehlich    01/12/17 07:59:43

  Modified:    apps/db/src/java/org/apache/avalon/db/basic/handlers/sql
                        BasicSQLSelectSimpleHandler.java
                        BasicSQLParserTokenManager.java
                        BasicSQLParserConstants.java BasicSQLParser.java
                        BasicSQLInsertRowsHandler.java
                        BasicSQLCreateTableHandler.java
  Log:
  create, insert, select + criteria is working 90%
  
  Revision  Changes    Path
  1.3       +47 -44    jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLSelectSimpleHandler.java
  
  Index: BasicSQLSelectSimpleHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLSelectSimpleHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BasicSQLSelectSimpleHandler.java	2001/12/15 18:49:55	1.2
  +++ BasicSQLSelectSimpleHandler.java	2001/12/17 15:59:42	1.3
  @@ -1,74 +1,71 @@
   /*
  - * Copyright (C) The Apache Software Foundation. All rights reserved.
  + *  Copyright (C) The Apache Software Foundation. All rights reserved.
    *
  - * This software is published under the terms of the Apache Software License
  - * version 1.1, a copy of which has been included with this distribution in
  - * the LICENSE file.
  + *  This software is published under the terms of the Apache Software License
  + *  version 1.1, a copy of which has been included with this distribution in
  + *  the LICENSE file.
    */
   package org.apache.avalon.db.basic.handlers.sql;
   
  -import org.apache.avalon.db.basic.parser.BasicSQLParserManager;
  -import org.apache.avalon.db.basic.actions.BasicSelectSimple;
  +import org.apache.avalon.db.actions.ActionException;
  +import org.apache.avalon.db.actions.Select;
   import org.apache.avalon.db.basic.actions.BasicCriteria;
  +import org.apache.avalon.db.basic.actions.BasicSelectSimple;
  +import org.apache.avalon.db.basic.data.BasicTable;
   import org.apache.avalon.db.basic.handlers.sql.BasicSQLParser;
  +import org.apache.avalon.db.basic.parser.BasicSQLParserManager;
  +import org.apache.avalon.db.data.Column;
  +import org.apache.avalon.db.data.Queryable;
  +import org.apache.avalon.db.data.impl.AbstractQueryable;
  +import org.apache.avalon.db.server.DBRequestContext;
  +import org.apache.avalon.db.server.sql.ParseException;
   import org.apache.avalon.db.services.DatabasePersistor;
   import org.apache.avalon.db.transport.Reply;
   import org.apache.avalon.db.transport.Request;
  -import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.ResultSetReply;
  -import org.apache.avalon.db.actions.ActionException;
  -import org.apache.avalon.db.actions.Select;
  -import org.apache.avalon.db.server.DBRequestContext;
  -import org.apache.avalon.db.server.sql.ParseException;
  -import org.apache.avalon.db.data.Column;
  -import org.apache.avalon.db.data.Queryable;
  -import org.apache.avalon.db.data.impl.AbstractQueryable;
  -
  +import org.apache.avalon.db.transport.SelectRequest;
   
   /**
  - * Class BasicSQLSelectSimpleHandler
  + *  Class BasicSQLSelectSimpleHandler
    *
  - * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
  - * @version $Revision: 1.1 $
  + * @author     Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">
  + *      g-froehlich@gmx.de</a>
  + * @version    $Revision: 1.1 $
    */
   public class BasicSQLSelectSimpleHandler extends BasicSQLHandler {
   
       /**
  -     * Constructor BasicSQLSelectSimpleHandler
  -     *
  -     * @param parser
  -     * @param databasePersistor
  +     *  Constructor BasicSQLSelectSimpleHandler
        *
  +     * @param  parser
  +     * @param  databasePersistor
        */
       public BasicSQLSelectSimpleHandler(BasicSQLParserManager parser,
  -                                       DatabasePersistor databasePersistor) {
  +            DatabasePersistor databasePersistor) {
           super(parser, databasePersistor);
       }
   
  +
       /**
  -     * Method handleRequest
  -     *
  +     *  Method handleRequest
        *
  -     * @param request
  -     *
  +     * @param  request
  +     * @param  context           Description of Parameter
        * @return
  -     *
  -     * @throws ActionException
  -     *
  +     * @throws  ActionException
        */
  -    public Reply handleRequest(DBRequestContext context, Request request) throws ActionException {
  +    public Reply handleRequest(DBRequestContext context, Request request)
  +        throws ActionException {
   
  -        System.out.println("BasicSQLSelectSimpleHandler");
  -        BasicSQLParser parser = initBasicSQLPaser(((SelectRequest)request).getSql());
  +        BasicSQLParser parser = initBasicSQLPaser(((SelectRequest) request).getSql());
           try {
               parser.ParseSelect();
           } catch (ParseException pe) {
  -            getLogger().error("handleRequest(..): ParseException:",pe);
  +            getLogger().error("handleRequest(..): ParseException:", pe);
           }
           // TODO - not perfect.
           String[] tables = parser.getTables();
  -        
  -        AbstractQueryable queryable = (AbstractQueryable) mDatabasePersistor.getQueryable(tables[0]);
  +        Queryable queryable = (Queryable) mDatabasePersistor.getQueryable(tables[0]);
   
           String[] cols = parser.getColumns();
           Column[] columns = null;
  @@ -77,27 +74,33 @@
           if (cols.length != 0 && cols[0].equals("*")) {
               columns = queryable.getColumns();
           } else {
  -            columns = convertColumns(queryable, cols);
  +            columns = convertColumns((BasicTable) queryable, cols);
           }
   
           Select action = new BasicSelectSimple(tables,
  -                            columns,
  -                            new BasicCriteria(parser.getCriteria()));
  -        
  +                columns,
  +                new BasicCriteria(parser.getCriteria()));
           mParserMgr.initializeAction(action);
           action.execute();
   
           return new ResultSetReply(action.getRowSet());
       }
   
  -    protected Column[] convertColumns(AbstractQueryable queryable, String[] columnNames) {
   
  -        //TODO * could be with other contrived columns
  +    /**
  +     *  Description of the Method
  +     *
  +     * @param  table        Description of Parameter
  +     * @param  columnNames  Description of Parameter
  +     * @return              Description of the Returned Value
  +     */
  +    protected Column[] convertColumns(BasicTable table, String[] columnNames) {
   
           Column[] columns = new Column[columnNames.length];
  -        for ( int i = 0; i < columnNames.length; i++ ) {
  -            columns[i] = queryable.getColumn(columnNames[i], false);
  +        for (int i = 0; i < columnNames.length; i++) {
  +            columns[i] = table.getColumn(columnNames[i]);
           }
           return columns;
       }
   }
  +
  
  
  
  1.3       +350 -324  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLParserTokenManager.java
  
  Index: BasicSQLParserTokenManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLParserTokenManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BasicSQLParserTokenManager.java	2001/12/15 18:49:55	1.2
  +++ BasicSQLParserTokenManager.java	2001/12/17 15:59:42	1.3
  @@ -16,7 +16,9 @@
   import org.apache.avalon.db.server.sql.SimpleCharStream;
   import org.apache.avalon.db.server.sql.Token;
   import org.apache.avalon.db.server.sql.TokenMgrError;
  +import org.apache.avalon.db.utils.StringUtils;
   import java.util.Vector;
  +import java.util.Collection;
   
   public class BasicSQLParserTokenManager implements BasicSQLParserConstants
   {
  @@ -44,96 +46,98 @@
         case 32:
            jjmatchedKind = 1;
            return jjMoveNfa_0(5, 0);
  +      case 33:
  +         return jjMoveStringLiteralDfa1_0(0x80000000000000L);
         case 40:
  -         jjmatchedKind = 64;
  +         jjmatchedKind = 67;
            return jjMoveNfa_0(5, 0);
         case 41:
  -         jjmatchedKind = 65;
  +         jjmatchedKind = 68;
            return jjMoveNfa_0(5, 0);
         case 42:
  -         jjmatchedKind = 66;
  +         jjmatchedKind = 69;
            return jjMoveNfa_0(5, 0);
         case 44:
  -         jjmatchedKind = 63;
  +         jjmatchedKind = 66;
            return jjMoveNfa_0(5, 0);
         case 59:
  -         jjmatchedKind = 62;
  +         jjmatchedKind = 65;
            return jjMoveNfa_0(5, 0);
         case 60:
  -         jjmatchedKind = 50;
  -         return jjMoveStringLiteralDfa1_0(0x10000000000000L);
  +         jjmatchedKind = 51;
  +         return jjMoveStringLiteralDfa1_0(0x120000000000000L);
         case 61:
  -         jjmatchedKind = 48;
  +         jjmatchedKind = 49;
            return jjMoveNfa_0(5, 0);
         case 62:
  -         jjmatchedKind = 49;
  -         return jjMoveStringLiteralDfa1_0(0x8000000000000L);
  +         jjmatchedKind = 50;
  +         return jjMoveStringLiteralDfa1_0(0x10000000000000L);
         case 65:
  -         return jjMoveStringLiteralDfa1_0(0x80016000000L);
  +         return jjMoveStringLiteralDfa1_0(0x10002c000000L);
         case 66:
  -         return jjMoveStringLiteralDfa1_0(0x8000008000L);
  +         return jjMoveStringLiteralDfa1_0(0x10000010000L);
         case 67:
  -         return jjMoveStringLiteralDfa1_0(0x201800000L);
  +         return jjMoveStringLiteralDfa1_0(0x403000000L);
         case 68:
  -         return jjMoveStringLiteralDfa1_0(0x40040606000L);
  +         return jjMoveStringLiteralDfa1_0(0x80080c0c000L);
         case 70:
  -         return jjMoveStringLiteralDfa1_0(0x20000000L);
  +         return jjMoveStringLiteralDfa1_0(0x40000000L);
         case 71:
  -         return jjMoveStringLiteralDfa1_0(0x10000100000L);
  +         return jjMoveStringLiteralDfa1_0(0x20000200000L);
         case 72:
  -         return jjMoveStringLiteralDfa1_0(0x4000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x8000000000L);
         case 73:
  -         return jjMoveStringLiteralDfa1_0(0x1080081000L);
  +         return jjMoveStringLiteralDfa1_0(0x2100103000L);
         case 78:
  -         return jjMoveStringLiteralDfa1_0(0xe00000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x1c00000000000L);
         case 79:
  -         return jjMoveStringLiteralDfa1_0(0x120000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x240000000000L);
         case 82:
  -         return jjMoveStringLiteralDfa1_0(0x40800L);
  +         return jjMoveStringLiteralDfa1_0(0x80800L);
         case 83:
  -         return jjMoveStringLiteralDfa1_0(0x8020400L);
  +         return jjMoveStringLiteralDfa1_0(0x10040400L);
         case 84:
  -         return jjMoveStringLiteralDfa1_0(0x800000300L);
  +         return jjMoveStringLiteralDfa1_0(0x1000000300L);
         case 85:
  -         return jjMoveStringLiteralDfa1_0(0x10000L);
  +         return jjMoveStringLiteralDfa1_0(0x20000L);
         case 86:
  -         return jjMoveStringLiteralDfa1_0(0x2100000080L);
  +         return jjMoveStringLiteralDfa1_0(0x4200000080L);
         case 87:
  -         return jjMoveStringLiteralDfa1_0(0x400000000L);
  +         return jjMoveStringLiteralDfa1_0(0x800000000L);
         case 97:
  -         return jjMoveStringLiteralDfa1_0(0x80016000000L);
  +         return jjMoveStringLiteralDfa1_0(0x10002c000000L);
         case 98:
  -         return jjMoveStringLiteralDfa1_0(0x8000008000L);
  +         return jjMoveStringLiteralDfa1_0(0x10000010000L);
         case 99:
  -         return jjMoveStringLiteralDfa1_0(0x201800000L);
  +         return jjMoveStringLiteralDfa1_0(0x403000000L);
         case 100:
  -         return jjMoveStringLiteralDfa1_0(0x40040606000L);
  +         return jjMoveStringLiteralDfa1_0(0x80080c0c000L);
         case 102:
  -         return jjMoveStringLiteralDfa1_0(0x20000000L);
  +         return jjMoveStringLiteralDfa1_0(0x40000000L);
         case 103:
  -         return jjMoveStringLiteralDfa1_0(0x10000100000L);
  +         return jjMoveStringLiteralDfa1_0(0x20000200000L);
         case 104:
  -         return jjMoveStringLiteralDfa1_0(0x4000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x8000000000L);
         case 105:
  -         return jjMoveStringLiteralDfa1_0(0x1080081000L);
  +         return jjMoveStringLiteralDfa1_0(0x2100103000L);
         case 108:
  -         return jjMoveStringLiteralDfa1_0(0x20000000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x40000000000000L);
         case 110:
  -         return jjMoveStringLiteralDfa1_0(0xe00000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x1c00000000000L);
         case 111:
  -         return jjMoveStringLiteralDfa1_0(0x120000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x240000000000L);
         case 114:
  -         return jjMoveStringLiteralDfa1_0(0x40800L);
  +         return jjMoveStringLiteralDfa1_0(0x80800L);
         case 115:
  -         return jjMoveStringLiteralDfa1_0(0x8020400L);
  +         return jjMoveStringLiteralDfa1_0(0x10040400L);
         case 116:
  -         return jjMoveStringLiteralDfa1_0(0x800000300L);
  +         return jjMoveStringLiteralDfa1_0(0x1000000300L);
         case 117:
  -         return jjMoveStringLiteralDfa1_0(0x10000L);
  +         return jjMoveStringLiteralDfa1_0(0x20000L);
         case 118:
  -         return jjMoveStringLiteralDfa1_0(0x2100000080L);
  +         return jjMoveStringLiteralDfa1_0(0x4200000080L);
         case 119:
  -         return jjMoveStringLiteralDfa1_0(0x400000000L);
  +         return jjMoveStringLiteralDfa1_0(0x800000000L);
         default :
            return jjMoveNfa_0(5, 0);
      }
  @@ -147,85 +151,97 @@
      switch(curChar)
      {
         case 61:
  -         if ((active0 & 0x8000000000000L) != 0L)
  +         if ((active0 & 0x10000000000000L) != 0L)
            {
  -            jjmatchedKind = 51;
  +            jjmatchedKind = 52;
               jjmatchedPos = 1;
            }
  -         else if ((active0 & 0x10000000000000L) != 0L)
  +         else if ((active0 & 0x20000000000000L) != 0L)
            {
  -            jjmatchedKind = 52;
  +            jjmatchedKind = 53;
  +            jjmatchedPos = 1;
  +         }
  +         else if ((active0 & 0x80000000000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 1;
  +         }
  +         break;
  +      case 62:
  +         if ((active0 & 0x100000000000000L) != 0L)
  +         {
  +            jjmatchedKind = 56;
               jjmatchedPos = 1;
            }
            break;
         case 65:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x6800004080L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0xd000008080L);
         case 69:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x8048422800L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x10090844800L);
         case 72:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x400000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x800000000L);
         case 73:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x40100008300L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x80200010300L);
         case 76:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x2000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x4000000L);
         case 77:
            return jjMoveStringLiteralDfa2_0(active0, 0x400L);
         case 78:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x81080081000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x102100103000L);
         case 79:
  -         return jjMoveStringLiteralDfa2_0(active0, 0xa00201040000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x1400402080000L);
         case 80:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x10000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x20000L);
         case 82:
  -         if ((active0 & 0x100000000000L) != 0L)
  +         if ((active0 & 0x200000000000L) != 0L)
            {
  -            jjmatchedKind = 44;
  +            jjmatchedKind = 45;
               jjmatchedPos = 1;
            }
  -         return jjMoveStringLiteralDfa2_0(active0, 0x30020b00000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x60041600000L);
         case 83:
  -         if ((active0 & 0x4000000L) != 0L)
  +         if ((active0 & 0x8000000L) != 0L)
            {
  -            jjmatchedKind = 26;
  +            jjmatchedKind = 27;
               jjmatchedPos = 1;
            }
  -         return jjMoveStringLiteralDfa2_0(active0, 0x10000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x20000000L);
         case 85:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x400000000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x800000000000L);
         case 97:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x6800004080L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0xd000008080L);
         case 101:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x8048422800L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x10090844800L);
         case 104:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x400000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x800000000L);
         case 105:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x20040100008300L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x40080200010300L);
         case 108:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x2000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x4000000L);
         case 109:
            return jjMoveStringLiteralDfa2_0(active0, 0x400L);
         case 110:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x81080081000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x102100103000L);
         case 111:
  -         return jjMoveStringLiteralDfa2_0(active0, 0xa00201040000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x1400402080000L);
         case 112:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x10000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x20000L);
         case 114:
  -         if ((active0 & 0x100000000000L) != 0L)
  +         if ((active0 & 0x200000000000L) != 0L)
            {
  -            jjmatchedKind = 44;
  +            jjmatchedKind = 45;
               jjmatchedPos = 1;
            }
  -         return jjMoveStringLiteralDfa2_0(active0, 0x30020b00000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x60041600000L);
         case 115:
  -         if ((active0 & 0x4000000L) != 0L)
  +         if ((active0 & 0x8000000L) != 0L)
            {
  -            jjmatchedKind = 26;
  +            jjmatchedKind = 27;
               jjmatchedPos = 1;
            }
  -         return jjMoveStringLiteralDfa2_0(active0, 0x10000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x20000000L);
         case 117:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x400000000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x800000000000L);
         default :
            break;
      }
  @@ -242,103 +258,113 @@
      switch(curChar)
      {
         case 65:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x100c00L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x200c00L);
         case 66:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x800000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000L);
         case 67:
  -         if ((active0 & 0x10000000L) != 0L)
  +         if ((active0 & 0x20000000L) != 0L)
            {
  -            jjmatchedKind = 28;
  +            jjmatchedKind = 29;
               jjmatchedPos = 2;
            }
  -         return jjMoveStringLiteralDfa3_0(active0, 0x2000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x4000L);
         case 68:
  -         if ((active0 & 0x80000000000L) != 0L)
  +         if ((active0 & 0x100000000000L) != 0L)
            {
  -            jjmatchedKind = 43;
  +            jjmatchedKind = 44;
               jjmatchedPos = 2;
            }
  -         return jjMoveStringLiteralDfa3_0(active0, 0x21000010000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x42000020000L);
         case 69:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x500800000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0xa01000000L);
         case 71:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x8000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x10000L);
         case 76:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x402000460000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x8040008c0000L);
         case 77:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x1000300L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x2000300L);
         case 79:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x10020200000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x20040400000L);
         case 82:
            return jjMoveStringLiteralDfa3_0(active0, 0x80L);
         case 83:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x40040080000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x80080100000L);
         case 84:
  -         if ((active0 & 0x8000000L) != 0L)
  +         if ((active0 & 0x2000L) != 0L)
            {
  -            jjmatchedKind = 27;
  +            jjmatchedKind = 13;
               jjmatchedPos = 2;
            }
  -         else if ((active0 & 0x200000000000L) != 0L)
  +         else if ((active0 & 0x10000000L) != 0L)
            {
  -            jjmatchedKind = 45;
  +            jjmatchedKind = 28;
               jjmatchedPos = 2;
            }
  -         return jjMoveStringLiteralDfa3_0(active0, 0x808082005000L);
  +         else if ((active0 & 0x400000000000L) != 0L)
  +         {
  +            jjmatchedKind = 46;
  +            jjmatchedPos = 2;
  +         }
  +         return jjMoveStringLiteralDfa3_0(active0, 0x1010104009000L);
         case 85:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x200000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x400000000L);
         case 86:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000L);
         case 97:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x100c00L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x200c00L);
         case 98:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x800000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000L);
         case 99:
  -         if ((active0 & 0x10000000L) != 0L)
  +         if ((active0 & 0x20000000L) != 0L)
            {
  -            jjmatchedKind = 28;
  +            jjmatchedKind = 29;
               jjmatchedPos = 2;
            }
  -         return jjMoveStringLiteralDfa3_0(active0, 0x2000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x4000L);
         case 100:
  -         if ((active0 & 0x80000000000L) != 0L)
  +         if ((active0 & 0x100000000000L) != 0L)
            {
  -            jjmatchedKind = 43;
  +            jjmatchedKind = 44;
               jjmatchedPos = 2;
            }
  -         return jjMoveStringLiteralDfa3_0(active0, 0x21000010000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x42000020000L);
         case 101:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x500800000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0xa01000000L);
         case 103:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x8000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x10000L);
         case 107:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L);
         case 108:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x402000460000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x8040008c0000L);
         case 109:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x1000300L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x2000300L);
         case 111:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x10020200000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x20040400000L);
         case 114:
            return jjMoveStringLiteralDfa3_0(active0, 0x80L);
         case 115:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x40040080000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x80080100000L);
         case 116:
  -         if ((active0 & 0x8000000L) != 0L)
  +         if ((active0 & 0x2000L) != 0L)
            {
  -            jjmatchedKind = 27;
  +            jjmatchedKind = 13;
               jjmatchedPos = 2;
            }
  -         else if ((active0 & 0x200000000000L) != 0L)
  +         else if ((active0 & 0x10000000L) != 0L)
            {
  -            jjmatchedKind = 45;
  +            jjmatchedKind = 28;
  +            jjmatchedPos = 2;
  +         }
  +         else if ((active0 & 0x400000000000L) != 0L)
  +         {
  +            jjmatchedKind = 46;
               jjmatchedPos = 2;
            }
  -         return jjMoveStringLiteralDfa3_0(active0, 0x808082005000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x1010104009000L);
         case 117:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x200000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x400000000L);
         case 118:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000L);
         default :
            break;
      }
  @@ -355,13 +381,13 @@
      switch(curChar)
      {
         case 32:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x1000000000000L);
         case 65:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x810000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x1020000L);
         case 67:
  -         if ((active0 & 0x40000000L) != 0L)
  +         if ((active0 & 0x80000000L) != 0L)
            {
  -            jjmatchedKind = 30;
  +            jjmatchedKind = 31;
               jjmatchedPos = 3;
            }
            return jjMoveStringLiteralDfa4_0(active0, 0x80L);
  @@ -371,68 +397,68 @@
               jjmatchedKind = 9;
               jjmatchedPos = 3;
            }
  -         else if ((active0 & 0x4000L) != 0L)
  +         else if ((active0 & 0x8000L) != 0L)
            {
  -            jjmatchedKind = 14;
  +            jjmatchedKind = 15;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x210024a1100L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x42004941100L);
         case 73:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x400000a000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x8000014000L);
         case 76:
            if ((active0 & 0x800L) != 0L)
            {
               jjmatchedKind = 11;
               jjmatchedPos = 3;
            }
  -         else if ((active0 & 0x400000000000L) != 0L)
  +         else if ((active0 & 0x800000000000L) != 0L)
            {
  -            jjmatchedKind = 46;
  +            jjmatchedKind = 47;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x800040400L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x1000080400L);
         case 77:
  -         if ((active0 & 0x20000000L) != 0L)
  +         if ((active0 & 0x40000000L) != 0L)
            {
  -            jjmatchedKind = 29;
  +            jjmatchedKind = 30;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x1000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x2000000L);
         case 78:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x200100000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x400200000L);
         case 79:
  -         if ((active0 & 0x80000000L) != 0L)
  +         if ((active0 & 0x100000000L) != 0L)
            {
  -            jjmatchedKind = 31;
  +            jjmatchedKind = 32;
               jjmatchedPos = 3;
            }
            break;
         case 80:
  -         if ((active0 & 0x200000L) != 0L)
  +         if ((active0 & 0x400000L) != 0L)
            {
  -            jjmatchedKind = 21;
  +            jjmatchedKind = 22;
               jjmatchedPos = 3;
            }
            break;
         case 82:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x400000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x800000000L);
         case 84:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x40000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000L);
         case 85:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x12000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x24000000000L);
         case 87:
  -         if ((active0 & 0x100000000L) != 0L)
  +         if ((active0 & 0x200000000L) != 0L)
            {
  -            jjmatchedKind = 32;
  +            jjmatchedKind = 33;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L);
         case 97:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x810000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x1020000L);
         case 99:
  -         if ((active0 & 0x40000000L) != 0L)
  +         if ((active0 & 0x80000000L) != 0L)
            {
  -            jjmatchedKind = 30;
  +            jjmatchedKind = 31;
               jjmatchedPos = 3;
            }
            return jjMoveStringLiteralDfa4_0(active0, 0x80L);
  @@ -442,67 +468,67 @@
               jjmatchedKind = 9;
               jjmatchedPos = 3;
            }
  -         else if ((active0 & 0x4000L) != 0L)
  +         else if ((active0 & 0x8000L) != 0L)
            {
  -            jjmatchedKind = 14;
  +            jjmatchedKind = 15;
               jjmatchedPos = 3;
            }
  -         else if ((active0 & 0x20000000000000L) != 0L)
  +         else if ((active0 & 0x40000000000000L) != 0L)
            {
  -            jjmatchedKind = 53;
  +            jjmatchedKind = 54;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x210024a1100L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x42004941100L);
         case 105:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x400000a000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x8000014000L);
         case 108:
            if ((active0 & 0x800L) != 0L)
            {
               jjmatchedKind = 11;
               jjmatchedPos = 3;
            }
  -         else if ((active0 & 0x400000000000L) != 0L)
  +         else if ((active0 & 0x800000000000L) != 0L)
            {
  -            jjmatchedKind = 46;
  +            jjmatchedKind = 47;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x800040400L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x1000080400L);
         case 109:
  -         if ((active0 & 0x20000000L) != 0L)
  +         if ((active0 & 0x40000000L) != 0L)
            {
  -            jjmatchedKind = 29;
  +            jjmatchedKind = 30;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x1000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x2000000L);
         case 110:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x200100000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x400200000L);
         case 111:
  -         if ((active0 & 0x80000000L) != 0L)
  +         if ((active0 & 0x100000000L) != 0L)
            {
  -            jjmatchedKind = 31;
  +            jjmatchedKind = 32;
               jjmatchedPos = 3;
            }
            break;
         case 112:
  -         if ((active0 & 0x200000L) != 0L)
  +         if ((active0 & 0x400000L) != 0L)
            {
  -            jjmatchedKind = 21;
  +            jjmatchedKind = 22;
               jjmatchedPos = 3;
            }
            break;
         case 114:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x400000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x800000000L);
         case 116:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x40000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000L);
         case 117:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x12000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x24000000000L);
         case 119:
  -         if ((active0 & 0x100000000L) != 0L)
  +         if ((active0 & 0x200000000L) != 0L)
            {
  -            jjmatchedKind = 32;
  +            jjmatchedKind = 33;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L);
         default :
            break;
      }
  @@ -519,118 +545,118 @@
      switch(curChar)
      {
         case 66:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x40000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x80000L);
         case 67:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x20000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x40000L);
         case 69:
  -         if ((active0 & 0x400000000L) != 0L)
  +         if ((active0 & 0x800000000L) != 0L)
            {
  -            jjmatchedKind = 34;
  +            jjmatchedKind = 35;
               jjmatchedPos = 4;
            }
  -         else if ((active0 & 0x800000000L) != 0L)
  +         else if ((active0 & 0x1000000000L) != 0L)
            {
  -            jjmatchedKind = 35;
  +            jjmatchedKind = 36;
               jjmatchedPos = 4;
            }
  -         return jjMoveStringLiteralDfa5_0(active0, 0xa000000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x14000000000L);
         case 71:
            return jjMoveStringLiteralDfa5_0(active0, 0x1000L);
         case 72:
            return jjMoveStringLiteralDfa5_0(active0, 0x80L);
         case 73:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x40001000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x80002000000L);
         case 76:
            return jjMoveStringLiteralDfa5_0(active0, 0x400L);
         case 77:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x2000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x4000L);
         case 78:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x804000008000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x1008000010000L);
         case 80:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x10000000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x20000000000L);
         case 82:
  -         if ((active0 & 0x2000000L) != 0L)
  +         if ((active0 & 0x4000000L) != 0L)
            {
  -            jjmatchedKind = 25;
  +            jjmatchedKind = 26;
               jjmatchedPos = 4;
            }
  -         return jjMoveStringLiteralDfa5_0(active0, 0x20000080000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x40000100000L);
         case 83:
            return jjMoveStringLiteralDfa5_0(active0, 0x100L);
         case 84:
  -         if ((active0 & 0x100000L) != 0L)
  +         if ((active0 & 0x200000L) != 0L)
            {
  -            jjmatchedKind = 20;
  +            jjmatchedKind = 21;
               jjmatchedPos = 4;
            }
  -         else if ((active0 & 0x200000000L) != 0L)
  +         else if ((active0 & 0x400000000L) != 0L)
            {
  -            jjmatchedKind = 33;
  +            jjmatchedKind = 34;
               jjmatchedPos = 4;
            }
  -         return jjMoveStringLiteralDfa5_0(active0, 0xc10000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x1820000L);
         case 88:
  -         if ((active0 & 0x1000000000L) != 0L)
  +         if ((active0 & 0x2000000000L) != 0L)
            {
  -            jjmatchedKind = 36;
  +            jjmatchedKind = 37;
               jjmatchedPos = 4;
            }
            break;
         case 98:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x40000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x80000L);
         case 99:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x20000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x40000L);
         case 101:
  -         if ((active0 & 0x400000000L) != 0L)
  +         if ((active0 & 0x800000000L) != 0L)
            {
  -            jjmatchedKind = 34;
  +            jjmatchedKind = 35;
               jjmatchedPos = 4;
            }
  -         else if ((active0 & 0x800000000L) != 0L)
  +         else if ((active0 & 0x1000000000L) != 0L)
            {
  -            jjmatchedKind = 35;
  +            jjmatchedKind = 36;
               jjmatchedPos = 4;
            }
  -         return jjMoveStringLiteralDfa5_0(active0, 0xa000000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x14000000000L);
         case 103:
            return jjMoveStringLiteralDfa5_0(active0, 0x1000L);
         case 104:
            return jjMoveStringLiteralDfa5_0(active0, 0x80L);
         case 105:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x40001000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x80002000000L);
         case 108:
            return jjMoveStringLiteralDfa5_0(active0, 0x400L);
         case 109:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x2000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x4000L);
         case 110:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x804000008000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x1008000010000L);
         case 112:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x10000000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x20000000000L);
         case 114:
  -         if ((active0 & 0x2000000L) != 0L)
  +         if ((active0 & 0x4000000L) != 0L)
            {
  -            jjmatchedKind = 25;
  +            jjmatchedKind = 26;
               jjmatchedPos = 4;
            }
  -         return jjMoveStringLiteralDfa5_0(active0, 0x20000080000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x40000100000L);
         case 115:
            return jjMoveStringLiteralDfa5_0(active0, 0x100L);
         case 116:
  -         if ((active0 & 0x100000L) != 0L)
  +         if ((active0 & 0x200000L) != 0L)
            {
  -            jjmatchedKind = 20;
  +            jjmatchedKind = 21;
               jjmatchedPos = 4;
            }
  -         else if ((active0 & 0x200000000L) != 0L)
  +         else if ((active0 & 0x400000000L) != 0L)
            {
  -            jjmatchedKind = 33;
  +            jjmatchedKind = 34;
               jjmatchedPos = 4;
            }
  -         return jjMoveStringLiteralDfa5_0(active0, 0xc10000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x1820000L);
         case 120:
  -         if ((active0 & 0x1000000000L) != 0L)
  +         if ((active0 & 0x2000000000L) != 0L)
            {
  -            jjmatchedKind = 36;
  +            jjmatchedKind = 37;
               jjmatchedPos = 4;
            }
            break;
  @@ -650,129 +676,129 @@
      switch(curChar)
      {
         case 32:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x30000000000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x60000000000L);
         case 65:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x42080L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x84080L);
         case 69:
  -         if ((active0 & 0x10000L) != 0L)
  +         if ((active0 & 0x20000L) != 0L)
            {
  -            jjmatchedKind = 16;
  +            jjmatchedKind = 17;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x400000L) != 0L)
  +         else if ((active0 & 0x800000L) != 0L)
            {
  -            jjmatchedKind = 22;
  +            jjmatchedKind = 23;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x800000L) != 0L)
  +         else if ((active0 & 0x1000000L) != 0L)
            {
  -            jjmatchedKind = 23;
  +            jjmatchedKind = 24;
               jjmatchedPos = 5;
            }
  -         return jjMoveStringLiteralDfa6_0(active0, 0x8000001000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x10000001000L);
         case 71:
  -         if ((active0 & 0x4000000000L) != 0L)
  +         if ((active0 & 0x8000000000L) != 0L)
            {
  -            jjmatchedKind = 38;
  +            jjmatchedKind = 39;
               jjmatchedPos = 5;
            }
            break;
         case 73:
            return jjMoveStringLiteralDfa6_0(active0, 0x400L);
         case 78:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x40000000000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000L);
         case 83:
  -         if ((active0 & 0x2000000000L) != 0L)
  +         if ((active0 & 0x4000000000L) != 0L)
            {
  -            jjmatchedKind = 37;
  +            jjmatchedKind = 38;
               jjmatchedPos = 5;
            }
            break;
         case 84:
  -         if ((active0 & 0x8000L) != 0L)
  +         if ((active0 & 0x10000L) != 0L)
            {
  -            jjmatchedKind = 15;
  +            jjmatchedKind = 16;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x20000L) != 0L)
  +         else if ((active0 & 0x40000L) != 0L)
            {
  -            jjmatchedKind = 17;
  +            jjmatchedKind = 18;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x80000L) != 0L)
  +         else if ((active0 & 0x100000L) != 0L)
            {
  -            jjmatchedKind = 19;
  +            jjmatchedKind = 20;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x1000000L) != 0L)
  +         else if ((active0 & 0x2000000L) != 0L)
            {
  -            jjmatchedKind = 24;
  +            jjmatchedKind = 25;
               jjmatchedPos = 5;
            }
            return jjMoveStringLiteralDfa6_0(active0, 0x100L);
         case 85:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x800000000000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x1000000000000L);
         case 97:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x42080L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x84080L);
         case 101:
  -         if ((active0 & 0x10000L) != 0L)
  +         if ((active0 & 0x20000L) != 0L)
            {
  -            jjmatchedKind = 16;
  +            jjmatchedKind = 17;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x400000L) != 0L)
  +         else if ((active0 & 0x800000L) != 0L)
            {
  -            jjmatchedKind = 22;
  +            jjmatchedKind = 23;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x800000L) != 0L)
  +         else if ((active0 & 0x1000000L) != 0L)
            {
  -            jjmatchedKind = 23;
  +            jjmatchedKind = 24;
               jjmatchedPos = 5;
            }
  -         return jjMoveStringLiteralDfa6_0(active0, 0x8000001000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x10000001000L);
         case 103:
  -         if ((active0 & 0x4000000000L) != 0L)
  +         if ((active0 & 0x8000000000L) != 0L)
            {
  -            jjmatchedKind = 38;
  +            jjmatchedKind = 39;
               jjmatchedPos = 5;
            }
            break;
         case 105:
            return jjMoveStringLiteralDfa6_0(active0, 0x400L);
         case 110:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x40000000000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000L);
         case 115:
  -         if ((active0 & 0x2000000000L) != 0L)
  +         if ((active0 & 0x4000000000L) != 0L)
            {
  -            jjmatchedKind = 37;
  +            jjmatchedKind = 38;
               jjmatchedPos = 5;
            }
            break;
         case 116:
  -         if ((active0 & 0x8000L) != 0L)
  +         if ((active0 & 0x10000L) != 0L)
            {
  -            jjmatchedKind = 15;
  +            jjmatchedKind = 16;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x20000L) != 0L)
  +         else if ((active0 & 0x40000L) != 0L)
            {
  -            jjmatchedKind = 17;
  +            jjmatchedKind = 18;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x80000L) != 0L)
  +         else if ((active0 & 0x100000L) != 0L)
            {
  -            jjmatchedKind = 19;
  +            jjmatchedKind = 20;
               jjmatchedPos = 5;
            }
  -         else if ((active0 & 0x1000000L) != 0L)
  +         else if ((active0 & 0x2000000L) != 0L)
            {
  -            jjmatchedKind = 24;
  +            jjmatchedKind = 25;
               jjmatchedPos = 5;
            }
            return jjMoveStringLiteralDfa6_0(active0, 0x100L);
         case 117:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x800000000000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x1000000000000L);
         default :
            break;
      }
  @@ -791,20 +817,20 @@
         case 65:
            return jjMoveStringLiteralDfa7_0(active0, 0x100L);
         case 66:
  -         return jjMoveStringLiteralDfa7_0(active0, 0x30000000000L);
  +         return jjMoveStringLiteralDfa7_0(active0, 0x60000000000L);
         case 67:
  -         return jjMoveStringLiteralDfa7_0(active0, 0x40000040000L);
  +         return jjMoveStringLiteralDfa7_0(active0, 0x80000080000L);
         case 76:
  -         if ((active0 & 0x2000L) != 0L)
  +         if ((active0 & 0x4000L) != 0L)
            {
  -            jjmatchedKind = 13;
  +            jjmatchedKind = 14;
               jjmatchedPos = 6;
            }
  -         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000L);
  +         return jjMoveStringLiteralDfa7_0(active0, 0x1000000000000L);
         case 78:
  -         if ((active0 & 0x8000000000L) != 0L)
  +         if ((active0 & 0x10000000000L) != 0L)
            {
  -            jjmatchedKind = 39;
  +            jjmatchedKind = 40;
               jjmatchedPos = 6;
            }
            return jjMoveStringLiteralDfa7_0(active0, 0x400L);
  @@ -823,20 +849,20 @@
         case 97:
            return jjMoveStringLiteralDfa7_0(active0, 0x100L);
         case 98:
  -         return jjMoveStringLiteralDfa7_0(active0, 0x30000000000L);
  +         return jjMoveStringLiteralDfa7_0(active0, 0x60000000000L);
         case 99:
  -         return jjMoveStringLiteralDfa7_0(active0, 0x40000040000L);
  +         return jjMoveStringLiteralDfa7_0(active0, 0x80000080000L);
         case 108:
  -         if ((active0 & 0x2000L) != 0L)
  +         if ((active0 & 0x4000L) != 0L)
            {
  -            jjmatchedKind = 13;
  +            jjmatchedKind = 14;
               jjmatchedPos = 6;
            }
  -         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000L);
  +         return jjMoveStringLiteralDfa7_0(active0, 0x1000000000000L);
         case 110:
  -         if ((active0 & 0x8000000000L) != 0L)
  +         if ((active0 & 0x10000000000L) != 0L)
            {
  -            jjmatchedKind = 39;
  +            jjmatchedKind = 40;
               jjmatchedPos = 6;
            }
            return jjMoveStringLiteralDfa7_0(active0, 0x400L);
  @@ -868,16 +894,16 @@
      switch(curChar)
      {
         case 75:
  -         if ((active0 & 0x40000L) != 0L)
  +         if ((active0 & 0x80000L) != 0L)
            {
  -            jjmatchedKind = 18;
  +            jjmatchedKind = 19;
               jjmatchedPos = 7;
            }
            break;
         case 76:
  -         if ((active0 & 0x800000000000L) != 0L)
  +         if ((active0 & 0x1000000000000L) != 0L)
            {
  -            jjmatchedKind = 47;
  +            jjmatchedKind = 48;
               jjmatchedPos = 7;
            }
            break;
  @@ -889,35 +915,35 @@
               jjmatchedKind = 10;
               jjmatchedPos = 7;
            }
  -         else if ((active0 & 0x40000000000L) != 0L)
  +         else if ((active0 & 0x80000000000L) != 0L)
            {
  -            jjmatchedKind = 42;
  +            jjmatchedKind = 43;
               jjmatchedPos = 7;
            }
            break;
         case 89:
  -         if ((active0 & 0x10000000000L) != 0L)
  +         if ((active0 & 0x20000000000L) != 0L)
            {
  -            jjmatchedKind = 40;
  +            jjmatchedKind = 41;
               jjmatchedPos = 7;
            }
  -         else if ((active0 & 0x20000000000L) != 0L)
  +         else if ((active0 & 0x40000000000L) != 0L)
            {
  -            jjmatchedKind = 41;
  +            jjmatchedKind = 42;
               jjmatchedPos = 7;
            }
            break;
         case 107:
  -         if ((active0 & 0x40000L) != 0L)
  +         if ((active0 & 0x80000L) != 0L)
            {
  -            jjmatchedKind = 18;
  +            jjmatchedKind = 19;
               jjmatchedPos = 7;
            }
            break;
         case 108:
  -         if ((active0 & 0x800000000000L) != 0L)
  +         if ((active0 & 0x1000000000000L) != 0L)
            {
  -            jjmatchedKind = 47;
  +            jjmatchedKind = 48;
               jjmatchedPos = 7;
            }
            break;
  @@ -929,21 +955,21 @@
               jjmatchedKind = 10;
               jjmatchedPos = 7;
            }
  -         else if ((active0 & 0x40000000000L) != 0L)
  +         else if ((active0 & 0x80000000000L) != 0L)
            {
  -            jjmatchedKind = 42;
  +            jjmatchedKind = 43;
               jjmatchedPos = 7;
            }
            break;
         case 121:
  -         if ((active0 & 0x10000000000L) != 0L)
  +         if ((active0 & 0x20000000000L) != 0L)
            {
  -            jjmatchedKind = 40;
  +            jjmatchedKind = 41;
               jjmatchedPos = 7;
            }
  -         else if ((active0 & 0x20000000000L) != 0L)
  +         else if ((active0 & 0x40000000000L) != 0L)
            {
  -            jjmatchedKind = 41;
  +            jjmatchedKind = 42;
               jjmatchedPos = 7;
            }
            break;
  @@ -1043,8 +1069,8 @@
                  case 5:
                     if ((0x3ff000000000000L & l) != 0L)
                     {
  -                     if (kind > 58)
  -                        kind = 58;
  +                     if (kind > 61)
  +                        kind = 61;
                        jjCheckNAddStates(0, 6);
                     }
                     else if (curChar == 39)
  @@ -1109,8 +1135,8 @@
                  case 14:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  +                  if (kind > 57)
  +                     kind = 57;
                     jjstateSet[jjnewStateCnt++] = 14;
                     break;
                  case 15:
  @@ -1122,8 +1148,8 @@
                        jjCheckNAddTwoStates(16, 17);
                     break;
                  case 17:
  -                  if (curChar == 41 && kind > 57)
  -                     kind = 57;
  +                  if (curChar == 41 && kind > 60)
  +                     kind = 60;
                     break;
                  case 18:
                     if (curChar == 46)
  @@ -1132,8 +1158,8 @@
                  case 19:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 59)
  -                     kind = 59;
  +                  if (kind > 62)
  +                     kind = 62;
                     jjCheckNAddTwoStates(19, 20);
                     break;
                  case 21:
  @@ -1143,8 +1169,8 @@
                  case 22:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 59)
  -                     kind = 59;
  +                  if (kind > 62)
  +                     kind = 62;
                     jjCheckNAdd(22);
                     break;
                  case 23:
  @@ -1168,21 +1194,21 @@
                        jjCheckNAddStates(16, 18);
                     break;
                  case 28:
  -                  if (curChar == 39 && kind > 61)
  -                     kind = 61;
  +                  if (curChar == 39 && kind > 64)
  +                     kind = 64;
                     break;
                  case 29:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 58)
  -                     kind = 58;
  +                  if (kind > 61)
  +                     kind = 61;
                     jjCheckNAddStates(0, 6);
                     break;
                  case 30:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 58)
  -                     kind = 58;
  +                  if (kind > 61)
  +                     kind = 61;
                     jjCheckNAdd(30);
                     break;
                  case 31:
  @@ -1196,8 +1222,8 @@
                  case 33:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 59)
  -                     kind = 59;
  +                  if (kind > 62)
  +                     kind = 62;
                     jjCheckNAddTwoStates(33, 34);
                     break;
                  case 35:
  @@ -1207,8 +1233,8 @@
                  case 36:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 59)
  -                     kind = 59;
  +                  if (kind > 62)
  +                     kind = 62;
                     jjCheckNAdd(36);
                     break;
                  case 37:
  @@ -1222,15 +1248,15 @@
                  case 40:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 59)
  -                     kind = 59;
  +                  if (kind > 62)
  +                     kind = 62;
                     jjCheckNAdd(40);
                     break;
                  case 41:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 59)
  -                     kind = 59;
  +                  if (kind > 62)
  +                     kind = 62;
                     jjCheckNAddTwoStates(41, 42);
                     break;
                  case 43:
  @@ -1240,8 +1266,8 @@
                  case 44:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 59)
  -                     kind = 59;
  +                  if (kind > 62)
  +                     kind = 62;
                     jjCheckNAdd(44);
                     break;
                  default : break;
  @@ -1259,8 +1285,8 @@
                  case 14:
                     if ((0x7fffffe87fffffeL & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  +                  if (kind > 57)
  +                     kind = 57;
                     jjCheckNAdd(14);
                     break;
                  case 1:
  @@ -1372,14 +1398,14 @@
   "", null, null, null, null, null, null, null, null, null, null, null, null, 
   null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
   null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
  -null, null, null, null, null, null, null, "\75", "\76", "\74", "\76\75", "\74\75", 
  -"\154\151\153\145", null, null, null, null, null, null, null, null, "\73", "\54", "\50", "\51", 
  -"\52", };
  +null, null, null, null, null, null, null, null, "\75", "\76", "\74", "\76\75", 
  +"\74\75", "\154\151\153\145", "\41\75", "\74\76", null, null, null, null, null, null, 
  +null, null, "\73", "\54", "\50", "\51", "\52", };
   public static final String[] lexStateNames = {
      "DEFAULT", 
   };
   static final long[] jjtoToken = {
  -   0xee7fffffffffff81L, 0x7L, 
  +   0x73ffffffffffff81L, 0x3fL, 
   };
   static final long[] jjtoSkip = {
      0x7eL, 0x0L, 
  
  
  
  1.3       +55 -49    jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLParserConstants.java
  
  Index: BasicSQLParserConstants.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLParserConstants.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BasicSQLParserConstants.java	2001/12/15 18:49:55	1.2
  +++ BasicSQLParserConstants.java	2001/12/17 15:59:43	1.3
  @@ -12,55 +12,58 @@
     int SMALLINT = 10;
     int REAL = 11;
     int INTEGER = 12;
  -  int DECIMAL = 13;
  -  int DATE = 14;
  -  int BIGINT = 15;
  -  int UPDATE = 16;
  -  int SELECT = 17;
  -  int ROLLBACK = 18;
  -  int INSERT = 19;
  -  int GRANT = 20;
  -  int DROP = 21;
  -  int DELETE = 22;
  -  int CREATE = 23;
  -  int COMMIT = 24;
  -  int ALTER = 25;
  -  int AS = 26;
  -  int SET = 27;
  -  int ASC = 28;
  -  int FROM = 29;
  -  int DESC = 30;
  -  int INTO = 31;
  -  int VIEW = 32;
  -  int COUNT = 33;
  -  int WHERE = 34;
  -  int TABLE = 35;
  -  int INDEX = 36;
  -  int VALUES = 37;
  -  int HAVING = 38;
  -  int BETWEEN = 39;
  -  int GROUPBY = 40;
  -  int ORDERBY = 41;
  -  int DISTINCT = 42;
  -  int AND = 43;
  -  int OR = 44;
  -  int NOT = 45;
  -  int NULL = 46;
  -  int NOTNULL = 47;
  -  int EQUAL = 48;
  -  int GREATERTHAN = 49;
  -  int SMALLERTHAN = 50;
  -  int GREATERTHANOREQUAL = 51;
  -  int SMALLERTHANOREQUAL = 52;
  -  int LIKE = 53;
  -  int IDENTIFIER = 54;
  -  int LETTER = 55;
  -  int DIGIT = 56;
  -  int MAXVARCHAR = 57;
  -  int INTEGER_LITERAL = 58;
  -  int FLOATING_POINT_LITERAL = 59;
  -  int EXPONENT = 60;
  -  int STRING_LITERAL = 61;
  +  int INT = 13;
  +  int DECIMAL = 14;
  +  int DATE = 15;
  +  int BIGINT = 16;
  +  int UPDATE = 17;
  +  int SELECT = 18;
  +  int ROLLBACK = 19;
  +  int INSERT = 20;
  +  int GRANT = 21;
  +  int DROP = 22;
  +  int DELETE = 23;
  +  int CREATE = 24;
  +  int COMMIT = 25;
  +  int ALTER = 26;
  +  int AS = 27;
  +  int SET = 28;
  +  int ASC = 29;
  +  int FROM = 30;
  +  int DESC = 31;
  +  int INTO = 32;
  +  int VIEW = 33;
  +  int COUNT = 34;
  +  int WHERE = 35;
  +  int TABLE = 36;
  +  int INDEX = 37;
  +  int VALUES = 38;
  +  int HAVING = 39;
  +  int BETWEEN = 40;
  +  int GROUPBY = 41;
  +  int ORDERBY = 42;
  +  int DISTINCT = 43;
  +  int AND = 44;
  +  int OR = 45;
  +  int NOT = 46;
  +  int NULL = 47;
  +  int NOTNULL = 48;
  +  int EQUAL = 49;
  +  int GREATERTHAN = 50;
  +  int SMALLERTHAN = 51;
  +  int GREATERTHANOREQUAL = 52;
  +  int SMALLERTHANOREQUAL = 53;
  +  int LIKE = 54;
  +  int NOTEQUAL1 = 55;
  +  int NOTEQUAL2 = 56;
  +  int IDENTIFIER = 57;
  +  int LETTER = 58;
  +  int DIGIT = 59;
  +  int MAXVARCHAR = 60;
  +  int INTEGER_LITERAL = 61;
  +  int FLOATING_POINT_LITERAL = 62;
  +  int EXPONENT = 63;
  +  int STRING_LITERAL = 64;
   
     int DEFAULT = 0;
   
  @@ -78,6 +81,7 @@
       "\"smallint\"",
       "\"real\"",
       "\"integer\"",
  +    "\"int\"",
       "\"decimal\"",
       "\"date\"",
       "\"bigint\"",
  @@ -119,6 +123,8 @@
       "\">=\"",
       "\"<=\"",
       "\"like\"",
  +    "\"!=\"",
  +    "\"<>\"",
       "<IDENTIFIER>",
       "<LETTER>",
       "<DIGIT>",
  
  
  
  1.3       +155 -112  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLParser.java
  
  Index: BasicSQLParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLParser.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BasicSQLParser.java	2001/12/15 18:49:55	1.2
  +++ BasicSQLParser.java	2001/12/17 15:59:43	1.3
  @@ -17,6 +17,7 @@
   import org.apache.avalon.db.server.sql.SimpleCharStream;
   import org.apache.avalon.db.server.sql.Token;
   import org.apache.avalon.db.server.sql.TokenMgrError;
  +import org.apache.avalon.db.utils.StringUtils;
   
   import java.util.Vector;
   import java.util.Collection;
  @@ -37,6 +38,7 @@
       private StringBuffer mCriteriaBuffer;
       private Column[] mCols;
       private String mTableName;
  +    private int mIdx;
   
       public static void main(String args[]) {
           BasicSQLParser parser = new BasicSQLParser(System.in);
  @@ -56,7 +58,11 @@
       }
   
       public String getCriteria() {
  -        return mCriteriaBuffer.toString();
  +        if(mCriteriaBuffer == null) {
  +            return "";
  +        } else {
  +            return mCriteriaBuffer.toString();
  +        }
       }
   
       public Column[] getCols() {
  @@ -71,33 +77,39 @@
           return mInsertValues;
       }
   
  -    private Column createColumn(Token name, Token type, Token length, Token notnull, Token index) throws ActionException {
  +    private Column createColumn(Token name,
  +                                Token type,
  +                                Token length,
  +                                Token notnull,
  +                                int idx) throws ActionException {
   
   
           Column column = null;
  -        if (type.image.equals("varchar")) {
  +        String sType = StringUtils.normalize(type.image);
  +
  +        if (sType.equals("varchar")) {
               column= new DefaultVarCharColumn(name.image,
  -                                    new Integer(length.image).intValue());
  -        } else if (type.image.equals("integer")) {
  +                                    new Integer(length.image.substring(1,length.image.length()-1)).intValue());
  +        } else if (sType.equals("integer")) {
               column= new DefaultIntegerColumn(name.image);
  -        } else if (type.image.equals("date")) {
  +        } else if (sType.equals("date")) {
               column= new DefaultDateColumn(name.image);
  -        } else if (type.image.equals("time")) {
  +        } else if (sType.equals("time")) {
               column= new DefaultTimeColumn(name.image);
  -        } else if (type.image.equals("timestamp")) {
  +        } else if (sType.equals("timestamp")) {
               column= new DefaultTimestampColumn(name.image);
  -        } else if (type.image.equals("smallint")) {
  +        } else if (sType.equals("smallint")) {
               column= new DefaultSmallIntColumn(name.image);
  -        } else if (type.image.equals("real")) {
  +        } else if (sType.equals("real")) {
               column= new DefaultRealColumn(name.image);
  -        } else if (type.image.equals("bigint")) {
  +        } else if (sType.equals("bigint")) {
               column= new DefaultBigIntColumn(name.image);
  -        } else if (type.image.equals("decimal")) {
  +        } else if (sType.equals("decimal")) {
               column= new DefaultDecimalColumn(name.image);
           } else {
  -            throw new ActionException("Column type " + type.image + " not recognised");
  +            throw new ActionException("Column type " + sType + " not recognised");
           }
  -        //column.setIndex(ix);
  +        column.setIndex(idx);
           return column;
       }
   
  @@ -123,20 +135,20 @@
       case DROP:
         stm = ParseDrop();
         break;
  -    case DELETE:
  -      stm = ParseDelete();
  -      break;
       case CREATE:
         stm = ParseCreateTable();
         break;
  +    case DELETE:
  +      stm = ParseDelete();
  +      break;
       default:
         jj_la1[0] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -    case 62:
  -      jj_consume_token(62);
  +    case 65:
  +      jj_consume_token(65);
         break;
       case 0:
         jj_consume_token(0);
  @@ -152,19 +164,17 @@
   
     final public String ParseSelect() throws ParseException {
       String stm;
  -    Vector columns;
  -    Vector tables;
  +    Vector columns = new Vector();
  +    Vector tables = new Vector();
       jj_consume_token(SELECT);
             stm = "SELECT";
       columns = ParseColumns();
                   mColumns = new String[columns.size()];
                   columns.toArray(mColumns);
  -                System.out.println("mColumns.length=" + mColumns.length);
       jj_consume_token(FROM);
       tables = ParseTables();
                   mTables = new String[tables.size()];
  -                columns.toArray(mTables);
  -                System.out.println("mTables.length=" + mTables.length);
  +                tables.toArray(mTables);
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case WHERE:
         ParseWhere();
  @@ -189,9 +199,8 @@
         jj_consume_token(EQUAL);
         ParseExprValue();
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -      case 63:
  -        jj_consume_token(63);
  -                  System.out.println(",");
  +      case 66:
  +        jj_consume_token(66);
           break;
         default:
           jj_la1[3] = jj_gen;
  @@ -214,7 +223,6 @@
         jj_la1[5] = jj_gen;
         ;
       }
  -      System.out.println("Row(s) updated ;-)");
         {if (true) return stm;}
       throw new Error("Missing return statement in function");
     }
  @@ -234,17 +242,16 @@
       name = jj_consume_token(IDENTIFIER);
           mTableName = name.image;
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -    case 64:
  +    case 67:
         label_2:
         while (true) {
  -        jj_consume_token(64);
  +        jj_consume_token(67);
           columns = ParseColumns();
              mColumns = new String[columns.size()];
              columns.toArray(mColumns);
  -           System.out.println("mColumns.length=" + mColumns.length);
  -        jj_consume_token(65);
  +        jj_consume_token(68);
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -        case 64:
  +        case 67:
             ;
             break;
           default:
  @@ -260,12 +267,11 @@
       label_3:
       while (true) {
         jj_consume_token(VALUES);
  -      jj_consume_token(64);
  +      jj_consume_token(67);
         values = ParseValues();
                  mInsertValues = new String[values.size()];
                  values.toArray(mInsertValues);
  -               System.out.println("mInsertValues.length=" + mColumns.length);
  -      jj_consume_token(65);
  +      jj_consume_token(68);
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case VALUES:
           ;
  @@ -288,7 +294,6 @@
       jj_consume_token(DROP);
             stm = "DROP";
       jj_consume_token(IDENTIFIER);
  -      System.out.println("Table droped ;-)");
         {if (true) return stm;}
       throw new Error("Missing return statement in function");
     }
  @@ -307,7 +312,6 @@
         jj_la1[9] = jj_gen;
         ;
       }
  -      System.out.println("Row(s) deleted ;-)");
         {if (true) return stm;}
       throw new Error("Missing return statement in function");
     }
  @@ -322,30 +326,26 @@
   
     final public String ParseCreateTable() throws ParseException {
       String stm;
  -    Vector columns;
  +    Vector columns = new Vector();
       Token name;
       jj_consume_token(CREATE);
       jj_consume_token(TABLE);
           stm="CREATETABLE";
       name = jj_consume_token(IDENTIFIER);
                           mTableName = name.image;
  -    jj_consume_token(64);
  +    jj_consume_token(67);
       columns = ParseCreateTblValues();
               mCols = new Column[columns.size()];
               columns.toArray(mCols);
  -    jj_consume_token(65);
  +    jj_consume_token(68);
         {if (true) return stm;}
       throw new Error("Missing return statement in function");
     }
   
     final public void ParseWhere() throws ParseException {
       jj_consume_token(WHERE);
  -            System.out.println("Parse where");
               mCriteriaBuffer = new StringBuffer();
  -            mCriteriaBuffer.append("if ( ");
               ParseOrExpr();
  -            mCriteriaBuffer.append(" )");
  -            System.out.println("mCriteriaBuffer=" + mCriteriaBuffer);
     }
   
     final public void ParseOrExpr() throws ParseException {
  @@ -388,7 +388,6 @@
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case NOT:
         jj_consume_token(NOT);
  -              System.out.println("in not");
         break;
       default:
         jj_la1[12] = jj_gen;
  @@ -411,7 +410,7 @@
         rs_right = ParseRightExprValue();
           mCriteriaBuffer.append(rs_comp + rs_left + "," +  rs_right + " )");
         break;
  -    case 64:
  +    case 67:
         ParseTerm();
         break;
       default:
  @@ -427,20 +426,23 @@
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case IDENTIFIER:
         token = jj_consume_token(IDENTIFIER);
  -                               rs = " columnCheckLeft.getColumn(row,\""
  -                                    + token.image + "\") ";
  +            rs = " columnCheckLeft.getColumn(row,\""
  +                   + token.image + "\") ";
         break;
       case STRING_LITERAL:
         token = jj_consume_token(STRING_LITERAL);
  -                                      System.out.println("expr is <STRING_LITERAL>"); rs="bla";
  +               rs = " columnCheckLeft.getColumn(row,\""
  +                   + token.image + "\") ";
         break;
       case INTEGER_LITERAL:
         token = jj_consume_token(INTEGER_LITERAL);
  -                                       System.out.println("expr is <INTEGER_LITERAL>"); rs="bla";
  +           rs = " columnCheckLeft.getColumn(row,\""
  +                  + token.image + "\") ";
         break;
       case FLOATING_POINT_LITERAL:
         token = jj_consume_token(FLOATING_POINT_LITERAL);
  -                System.out.println("expr is <FLOATING_POINT_LITERAL>"); rs="bla";
  +               rs = " columnCheckLeft.getColumn(row,\""
  +                      + token.image + "\") ";
         break;
       default:
         jj_la1[14] = jj_gen;
  @@ -457,20 +459,23 @@
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case IDENTIFIER:
         token = jj_consume_token(IDENTIFIER);
  -                               System.out.println("expr is <INDENTIFIER>");
  +            rs = " columnCheckRight.getColumn(\""
  +                 + token.image + "\"),row ";
         break;
       case STRING_LITERAL:
         token = jj_consume_token(STRING_LITERAL);
  -                                      rs = " columnCheckRight.getColumn(row,\""
  -                                           + token.image + "\") ";
  +               rs = " columnCheckRight.getColumn(\""
  +                    + token.image + "\"),row ";
         break;
       case INTEGER_LITERAL:
         token = jj_consume_token(INTEGER_LITERAL);
  -                                       System.out.println("expr is <INTEGER_LITERAL>");
  +               rs = " columnCheckRight.getColumn(\""
  +                    + token.image + "\"),row ";
         break;
       case FLOATING_POINT_LITERAL:
         token = jj_consume_token(FLOATING_POINT_LITERAL);
  -                                              System.out.println("expr is <FLOATING_POINT_LITERAL>");
  +               rs = " columnCheckRight.getColumn(\""
  +                    + token.image + "\"),row ";
         break;
       default:
         jj_la1[15] = jj_gen;
  @@ -511,24 +516,32 @@
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case EQUAL:
         jj_consume_token(EQUAL);
  -                  rs = " testHelper.equal( ";
  +                  rs = " testHelper.testEqual( ";
         break;
       case GREATERTHAN:
         jj_consume_token(GREATERTHAN);
  -                           System.out.println("GREATERTHAN");
  +                            rs = " testHelper.testGreaterThan( ";
         break;
       case SMALLERTHAN:
         jj_consume_token(SMALLERTHAN);
  -                           System.out.println("SMALLERTHAN");
  +                            rs = " testHelper.testSmallerThan( ";
         break;
       case GREATERTHANOREQUAL:
         jj_consume_token(GREATERTHANOREQUAL);
  -                                  System.out.println("GREATERTHANOREQUAL");
  +                                   rs = " testHelper.testGreaterThanOrEqual( ";
         break;
       case SMALLERTHANOREQUAL:
         jj_consume_token(SMALLERTHANOREQUAL);
  -                                  System.out.println("SMALLERTHANOREQUAL");
  +                                   rs = " testHelper.testSmallerThanOrEqual( ";
         break;
  +    case NOTEQUAL1:
  +      jj_consume_token(NOTEQUAL1);
  +                           rs = " testHelper.testNotEqual( ";
  +      break;
  +    case NOTEQUAL2:
  +      jj_consume_token(NOTEQUAL2);
  +                           rs = " testHelper.testNotEqual( ";
  +      break;
       case LIKE:
         jj_consume_token(LIKE);
                       System.out.println("LIKE");
  @@ -543,10 +556,10 @@
     }
   
     final public void ParseTerm() throws ParseException {
  -    jj_consume_token(64);
  +    jj_consume_token(67);
                mCriteriaBuffer.append("(");
       ParseOrExpr();
  -    jj_consume_token(65);
  +    jj_consume_token(68);
                mCriteriaBuffer.append(")");
     }
   
  @@ -555,9 +568,9 @@
       Vector vector = new Vector();
       Token column;
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -    case 66:
  -      jj_consume_token(66);
  -            System.out.println("all columns");
  +    case 69:
  +      jj_consume_token(69);
  +            vector.add(new String("*"));;
         break;
       case IDENTIFIER:
         column = jj_consume_token(IDENTIFIER);
  @@ -565,15 +578,14 @@
         label_6:
         while (true) {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -        case 63:
  +        case 66:
             ;
             break;
           default:
             jj_la1[18] = jj_gen;
             break label_6;
           }
  -        jj_consume_token(63);
  -            System.out.println(",");
  +        jj_consume_token(66);
           column = jj_consume_token(IDENTIFIER);
                                   vector.add(column.image);
         }
  @@ -592,20 +604,20 @@
       Vector tables = new Vector();
       Token table;
       table = jj_consume_token(IDENTIFIER);
  -                           tables.add(table.image);
  +                           tables.add(new String(table.image));
       label_7:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -      case 63:
  +      case 66:
           ;
           break;
         default:
           jj_la1[20] = jj_gen;
           break label_7;
         }
  -      jj_consume_token(63);
  +      jj_consume_token(66);
         table = jj_consume_token(IDENTIFIER);
  -                             tables.add(table.image);
  +                             tables.add(new String(table.image));
       }
         {if (true) return tables;}
       throw new Error("Missing return statement in function");
  @@ -618,12 +630,11 @@
                                    values.add(value);
       label_8:
       while (true) {
  -      jj_consume_token(63);
  -            System.out.println(",");
  +      jj_consume_token(66);
         value = ParseUpdateValue();
                                        values.add(value);
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -      case 63:
  +      case 66:
           ;
           break;
         default:
  @@ -638,15 +649,16 @@
     final public Vector ParseCreateTblValues() throws ParseException {
       Vector columns = new Vector();
       Column column;
  +      mIdx = 0;
       column = ParseCreateColumn();
           columns.add(column);
       label_9:
       while (true) {
  -      jj_consume_token(63);
  +      jj_consume_token(66);
         column = ParseCreateColumn();
               columns.add(column);
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -      case 63:
  +      case 66:
           ;
           break;
         default:
  @@ -654,6 +666,7 @@
           break label_9;
         }
       }
  +      mIdx = 0;
        {if (true) return columns;}
       throw new Error("Missing return statement in function");
     }
  @@ -679,7 +692,7 @@
           ;
         }
               try {
  -                column = createColumn(ident,type,length,notnull,null);
  +                column = createColumn(ident,type,length,notnull,mIdx++);
               } catch (ActionException ae) {}
       } else if (jj_2_2(2)) {
         ident = jj_consume_token(IDENTIFIER);
  @@ -693,7 +706,7 @@
           ;
         }
               try {
  -                column = createColumn(ident,type,null,notnull,null);
  +                column = createColumn(ident,type,null,notnull,mIdx++);
               } catch (ActionException ae) {}
       } else if (jj_2_3(2)) {
         ident = jj_consume_token(IDENTIFIER);
  @@ -707,7 +720,7 @@
           ;
         }
               try {
  -                column = createColumn(ident,type,null,notnull,null);
  +                column = createColumn(ident,type,null,notnull,mIdx++);
               } catch (ActionException ae) {}
       } else if (jj_2_4(2)) {
         ident = jj_consume_token(IDENTIFIER);
  @@ -721,7 +734,7 @@
           ;
         }
               try {
  -                column = createColumn(ident,type,null,notnull,null);
  +                column = createColumn(ident,type,null,notnull,mIdx++);
               } catch (ActionException ae) {}
       } else if (jj_2_5(2)) {
         ident = jj_consume_token(IDENTIFIER);
  @@ -735,11 +748,11 @@
           ;
         }
               try {
  -                column = createColumn(ident,type,null,notnull,null);
  +                column = createColumn(ident,type,null,notnull,mIdx++);
               } catch (ActionException ae) {}
       } else if (jj_2_6(2)) {
         ident = jj_consume_token(IDENTIFIER);
  -      type = jj_consume_token(DECIMAL);
  +      type = jj_consume_token(INT);
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case NOTNULL:
           notnull = jj_consume_token(NOTNULL);
  @@ -749,8 +762,22 @@
           ;
         }
               try {
  -                column = createColumn(ident,type,null,notnull,null);
  +                column = createColumn(ident,type,null,notnull,mIdx++);
               } catch (ActionException ae) {}
  +    } else if (jj_2_7(2)) {
  +      ident = jj_consume_token(IDENTIFIER);
  +      type = jj_consume_token(DECIMAL);
  +      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +      case NOTNULL:
  +        notnull = jj_consume_token(NOTNULL);
  +        break;
  +      default:
  +        jj_la1[29] = jj_gen;
  +        ;
  +      }
  +            try {
  +                column = createColumn(ident,type,null,notnull,mIdx++);
  +            } catch (ActionException ae) {}
       } else {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case IDENTIFIER:
  @@ -761,15 +788,15 @@
             notnull = jj_consume_token(NOTNULL);
             break;
           default:
  -          jj_la1[29] = jj_gen;
  +          jj_la1[30] = jj_gen;
             ;
           }
               try {
  -                column = createColumn(ident,type,null,notnull,null);
  +                column = createColumn(ident,type,null,notnull,mIdx++);
               } catch (ActionException ae) {}
           break;
         default:
  -        jj_la1[30] = jj_gen;
  +        jj_la1[31] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -820,12 +847,11 @@
       return retval;
     }
   
  -  final private boolean jj_3_3() {
  -    if (jj_scan_token(IDENTIFIER)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(SMALLINT)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  +  final private boolean jj_2_7(int xla) {
  +    jj_la = xla; jj_lastpos = jj_scanpos = token;
  +    boolean retval = !jj_3_7();
  +    jj_save(6, xla);
  +    return retval;
     }
   
     final private boolean jj_3_1() {
  @@ -839,7 +865,7 @@
     final private boolean jj_3_6() {
       if (jj_scan_token(IDENTIFIER)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(DECIMAL)) return true;
  +    if (jj_scan_token(INT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -860,6 +886,14 @@
       return false;
     }
   
  +  final private boolean jj_3_7() {
  +    if (jj_scan_token(IDENTIFIER)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(DECIMAL)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3_5() {
       if (jj_scan_token(IDENTIFIER)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -868,6 +902,14 @@
       return false;
     }
   
  +  final private boolean jj_3_3() {
  +    if (jj_scan_token(IDENTIFIER)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(SMALLINT)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     public BasicSQLParserTokenManager token_source;
     SimpleCharStream jj_input_stream;
     public Token token, jj_nt;
  @@ -877,11 +919,11 @@
     public boolean lookingAhead = false;
     private boolean jj_semLA;
     private int jj_gen;
  -  final private int[] jj_la1 = new int[31];
  -  final private int[] jj_la1_0 = {0xeb0000,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
  -  final private int[] jj_la1_1 = {0x0,0x40000000,0x4,0x80000000,0x400000,0x4,0x0,0x0,0x20,0x4,0x1000,0x800,0x2000,0x2c400000,0x2c400000,0x2c400000,0x2c000000,0x3f0000,0x80000000,0x400000,0x80000000,0x80000000,0x80000000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x400000,};
  -  final private int[] jj_la1_2 = {0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
  -  final private JJCalls[] jj_2_rtns = new JJCalls[6];
  +  final private int[] jj_la1 = new int[32];
  +  final private int[] jj_la1_0 = {0x1d60000,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
  +  final private int[] jj_la1_1 = {0x0,0x0,0x8,0x0,0x2000000,0x8,0x0,0x0,0x40,0x8,0x2000,0x1000,0x4000,0x62000000,0x62000000,0x62000000,0x60000000,0x1fe0000,0x0,0x2000000,0x0,0x0,0x0,0x10000,0x10000,0x10000,0x10000,0x10000,0x10000,0x10000,0x10000,0x2000000,};
  +  final private int[] jj_la1_2 = {0x0,0x2,0x0,0x4,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x0,0x9,0x1,0x1,0x1,0x0,0x4,0x20,0x4,0x4,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
  +  final private JJCalls[] jj_2_rtns = new JJCalls[7];
     private boolean jj_rescan = false;
     private int jj_gc = 0;
   
  @@ -891,7 +933,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 31; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 32; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -901,7 +943,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 31; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 32; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -911,7 +953,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 31; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 32; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -921,7 +963,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 31; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 32; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -930,7 +972,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 31; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 32; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -939,7 +981,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 31; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 32; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -1046,15 +1088,15 @@
   
     final public ParseException generateParseException() {
       jj_expentries.removeAllElements();
  -    boolean[] la1tokens = new boolean[67];
  -    for (int i = 0; i < 67; i++) {
  +    boolean[] la1tokens = new boolean[70];
  +    for (int i = 0; i < 70; i++) {
         la1tokens[i] = false;
       }
       if (jj_kind >= 0) {
         la1tokens[jj_kind] = true;
         jj_kind = -1;
       }
  -    for (int i = 0; i < 31; i++) {
  +    for (int i = 0; i < 32; i++) {
         if (jj_la1[i] == jj_gen) {
           for (int j = 0; j < 32; j++) {
             if ((jj_la1_0[i] & (1<<j)) != 0) {
  @@ -1069,7 +1111,7 @@
           }
         }
       }
  -    for (int i = 0; i < 67; i++) {
  +    for (int i = 0; i < 70; i++) {
         if (la1tokens[i]) {
           jj_expentry = new int[1];
           jj_expentry[0] = i;
  @@ -1094,7 +1136,7 @@
   
     final private void jj_rescan_token() {
       jj_rescan = true;
  -    for (int i = 0; i < 6; i++) {
  +    for (int i = 0; i < 7; i++) {
         JJCalls p = jj_2_rtns[i];
         do {
           if (p.gen > jj_gen) {
  @@ -1106,6 +1148,7 @@
               case 3: jj_3_4(); break;
               case 4: jj_3_5(); break;
               case 5: jj_3_6(); break;
  +            case 6: jj_3_7(); break;
             }
           }
           p = p.next;
  
  
  
  1.2       +73 -39    jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLInsertRowsHandler.java
  
  Index: BasicSQLInsertRowsHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLInsertRowsHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BasicSQLInsertRowsHandler.java	2001/12/15 18:49:55	1.1
  +++ BasicSQLInsertRowsHandler.java	2001/12/17 15:59:43	1.2
  @@ -1,67 +1,82 @@
   /*
  - * Copyright (C) The Apache Software Foundation. All rights reserved.
  + *  Copyright (C) The Apache Software Foundation. All rights reserved.
    *
  - * This software is published under the terms of the Apache Software License
  - * version 1.1, a copy of which has been included with this distribution in
  - * the LICENSE file.
  + *  This software is published under the terms of the Apache Software License
  + *  version 1.1, a copy of which has been included with this distribution in
  + *  the LICENSE file.
    */
   package org.apache.avalon.db.basic.handlers.sql;
   
  -import org.apache.avalon.db.basic.parser.BasicSQLParserManager;
  -import org.apache.avalon.db.basic.data.BasicTable;
  -import org.apache.avalon.db.basic.data.BasicRow;
  -import org.apache.avalon.db.basic.actions.BasicInsertRows;
  -import org.apache.avalon.db.services.DatabasePersistor;
  -import org.apache.avalon.db.transport.Reply;
  -import org.apache.avalon.db.transport.Request;
  -import org.apache.avalon.db.transport.InsertRowsRequest;
  -import org.apache.avalon.db.transport.WriteReply;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.actions.InsertRows;
  +import org.apache.avalon.db.basic.actions.BasicInsertRows;
  +import org.apache.avalon.db.basic.data.BasicRow;
  +import org.apache.avalon.db.basic.data.BasicTable;
  +import org.apache.avalon.db.basic.parser.BasicSQLParserManager;
  +import org.apache.avalon.db.data.Column;
   import org.apache.avalon.db.data.Queryable;
   import org.apache.avalon.db.data.ValidationException;
  -import org.apache.avalon.db.data.Column;
   import org.apache.avalon.db.data.WritableColumn;
   import org.apache.avalon.db.server.DBRequestContext;
   import org.apache.avalon.db.server.sql.ParseException;
  +import org.apache.avalon.db.services.DatabasePersistor;
  +import org.apache.avalon.db.transport.InsertRowsRequest;
  +import org.apache.avalon.db.transport.Reply;
  +import org.apache.avalon.db.transport.Request;
  +import org.apache.avalon.db.transport.WriteReply;
   
  -import java.util.Vector;
   import java.util.Collection;
  -
  +import java.util.Vector;
   
   /**
  - * Class BasicSQLInsertRowsHandler
  + *  Class BasicSQLInsertRowsHandler
    *
  - *
  - * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
  - * @version $Revision: 1.1 $
  + * @author     Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">
  + *      g-froehlich@gmx.de</a>
  + * @version    $Revision: 1.1 $
    */
   public class BasicSQLInsertRowsHandler extends BasicSQLHandler {
   
  +    /**
  +     *  Constructor for the BasicSQLInsertRowsHandler object
  +     *
  +     * @param  parser             Description of Parameter
  +     * @param  databasePersistor  Description of Parameter
  +     */
       public BasicSQLInsertRowsHandler(BasicSQLParserManager parser,
  -                                     DatabasePersistor databasePersistor) {
  +            DatabasePersistor databasePersistor) {
           super(parser, databasePersistor);
       }
  +
   
  -    
  -    public Reply handleRequest(DBRequestContext context, Request request) throws ActionException {
  +    /**
  +     *  Description of the Method
  +     *
  +     * @param  context              Description of Parameter
  +     * @param  request              Description of Parameter
  +     * @return                      Description of the Returned Value
  +     * @exception  ActionException  Description of Exception
  +     */
  +    public Reply handleRequest(DBRequestContext context, Request request)
  +        throws ActionException {
           Collection rows = null;
   
  -        BasicSQLParser parser = initBasicSQLPaser(((InsertRowsRequest)request).getSql());
  +        BasicSQLParser parser = initBasicSQLPaser(((InsertRowsRequest) request).getSql());
           try {
               parser.ParseInsert();
           } catch (ParseException pe) {
  -            getLogger().error("handleRequest(..): ParseException:",pe);
  +            getLogger().error("handleRequest(..): ParseException:", pe);
           }
           Queryable queryable = (Queryable) mDatabasePersistor.getQueryable(parser.getTableName());
           String[] columns = parser.getColumns();
           String[] values = parser.getInsertValues();
   
           try {
  -            rows = processRow((BasicTable)queryable, values, columns);
  -        } catch (ValidationException e) { }
  -    
  -         //TOTO should be able to work with views and indexes.
  +            rows = processRow((BasicTable) queryable, values, columns);
  +        } catch (ValidationException e) {
  +        }
  +
  +        //TOTO should be able to work with views and indexes.
           InsertRows action = new BasicInsertRows((BasicTable) queryable, rows);
   
           mParserMgr.initializeAction(action);
  @@ -70,17 +85,29 @@
           return new WriteReply(action.getRecordCount());
       }
   
  -    private Collection processRow(BasicTable table, String[] values, String[] columns) throws ValidationException {
  +
  +    /**
  +     *  Description of the Method
  +     *
  +     * @param  table                    Description of Parameter
  +     * @param  values                   Description of Parameter
  +     * @param  columns                  Description of Parameter
  +     * @return                          Description of the Returned Value
  +     * @exception  ValidationException  Description of Exception
  +     */
  +    private Collection processRow(BasicTable table, String[] values, String[] columns)
  +        throws ValidationException {
           Vector rows = new Vector();
           Object[] convValues = new Object[values.length];
   
  -        /** test column, value cnt */
  -        if(columns.length > 0) {
  -            if(values.length != columns.length) {
  -                throw new ValidationException("Column count does not macht value count");
  +        if (columns.length > 0) {
  +            if (values.length != columns.length) {
  +                throw new ValidationException(
  +                        "Column count does not macht value count"
  +                        );
               }
   
  -            for (int i=0;i < columns.length; i++) {
  +            for (int i = 0; i < columns.length; i++) {
                   Column col = table.getColumn(columns[i]);
                   if (col instanceof WritableColumn) {
                       WritableColumn wCol = (WritableColumn) col;
  @@ -88,8 +115,14 @@
                   }
               }
           } else {
  -            //TODO: Implementation without columns
  -            throw new ValidationException("Not yet implemented");
  +            Column[] cols = table.getColumns();
  +            for (int k = 0; k < cols.length; k++) {
  +                Column col = table.getColumn(columns[k]);
  +                if (col instanceof WritableColumn) {
  +                    WritableColumn wCol = (WritableColumn) col;
  +                    convValues[k] = wCol.convertFromObject(values[k]);
  +                }
  +            }
           }
   
           Vector pendingRow = new Vector();
  @@ -100,7 +133,8 @@
                   pendingRow.add(convValues[j]);
               }
           }
  -        rows.add(new BasicRow(table,pendingRow));
  +        rows.add(new BasicRow(table, pendingRow));
           return rows;
       }
  -}
  \ No newline at end of file
  +}
  +
  
  
  
  1.2       +33 -33    jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLCreateTableHandler.java
  
  Index: BasicSQLCreateTableHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/sql/BasicSQLCreateTableHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BasicSQLCreateTableHandler.java	2001/12/15 18:49:55	1.1
  +++ BasicSQLCreateTableHandler.java	2001/12/17 15:59:43	1.2
  @@ -1,68 +1,67 @@
  -
   /*
  - * Copyright (C) The Apache Software Foundation. All rights reserved.
  + *  Copyright (C) The Apache Software Foundation. All rights reserved.
    *
  - * This software is published under the terms of the Apache Software License
  - * version 1.1, a copy of which has been included with this distribution in
  - * the LICENSE file.
  + *  This software is published under the terms of the Apache Software License
  + *  version 1.1, a copy of which has been included with this distribution in
  + *  the LICENSE file.
    */
   package org.apache.avalon.db.basic.handlers.sql;
   
  -import org.apache.avalon.db.basic.parser.BasicSQLParserManager;
  -import org.apache.avalon.db.basic.actions.BasicCreateTable;
  -import org.apache.avalon.db.services.DatabasePersistor;
  -import org.apache.avalon.db.transport.Reply;
  -import org.apache.avalon.db.transport.Request;
  -import org.apache.avalon.db.transport.CreateTableRequest;
  -import org.apache.avalon.db.transport.WriteReply;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.actions.CreateTable;
  +import org.apache.avalon.db.basic.actions.BasicCreateTable;
  +import org.apache.avalon.db.basic.parser.BasicSQLParserManager;
   import org.apache.avalon.db.data.Column;
   import org.apache.avalon.db.server.DBRequestContext;
   import org.apache.avalon.db.server.sql.ParseException;
  -
  +import org.apache.avalon.db.services.DatabasePersistor;
  +import org.apache.avalon.db.transport.CreateTableRequest;
  +import org.apache.avalon.db.transport.Reply;
  +import org.apache.avalon.db.transport.Request;
  +import org.apache.avalon.db.transport.WriteReply;
   
   /**
  - * Class BasicSQLCreateTableHandler
  + *  Class BasicSQLCreateTableHandler
    *
  - * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
  - * @version $Revision: 1.1 $
  + * @author     Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">
  + *      g-froehlich@gmx.de</a>
  + * @version    $Revision: 1.1 $
    */
   public class BasicSQLCreateTableHandler extends BasicSQLHandler {
   
       /**
  -     * Constructor BasicLXSQLCreateTableHandler
  -     *
  +     *  Constructor BasicLXSQLCreateTableHandler
        *
  -     * @param parser
  -     * @param databasePersistor
  -     *
  +     * @param  parser
  +     * @param  databasePersistor
        */
       public BasicSQLCreateTableHandler(BasicSQLParserManager parser,
  -                                        DatabasePersistor databasePersistor) {
  +            DatabasePersistor databasePersistor) {
           super(parser, databasePersistor);
       }
   
  +
       /**
  -     * Method handleRequest
  -     *
  +     *  Method handleRequest
        *
  -     * @param request
  -     *
  +     * @param  request
  +     * @param  context           Description of Parameter
        * @return
  -     *
  -     * @throws ActionException
  -     *
  +     * @throws  ActionException
        */
  -    public Reply handleRequest(DBRequestContext context, Request request) throws ActionException {
  -        BasicSQLParser parser = initBasicSQLPaser(((CreateTableRequest)request).getSql());
  +    public Reply handleRequest(DBRequestContext context, Request request)
  +        throws ActionException {
  +        BasicSQLParser parser = initBasicSQLPaser(((CreateTableRequest) request).getSql());
  +
           try {
               parser.ParseCreateTable();
           } catch (ParseException pe) {
  -            getLogger().error("handleRequest(..): ParseException:",pe);
  +            getLogger().error("handleRequest(..): ParseException:", pe);
           }
  +
           if (mDatabasePersistor.queryableExists(parser.getTableName())) {
  -            throw new ActionException("Table " + parser.getTableName() + " already exists as a Table/View/Index");
  +            throw new ActionException("Table " + parser.getTableName()
  +                     + " already exists as a Table/View/Index");
           } else {
               Column[] columns = null;
               columns = parser.getCols();
  @@ -75,3 +74,4 @@
           }
       }
   }
  +
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>