hammant 01/11/09 07:03:20 Modified: apps/db/src/java/org/apache/avalon/db/basic/actions BasicCreateTable.java BasicCreateView.java apps/db/src/java/org/apache/avalon/db/basic/data BasicIndex.java apps/db/src/java/org/apache/avalon/db/basic/parser BasicLXSQLParser.java apps/db/src/java/org/apache/avalon/db/driver/lxsql LXSQLParserHelper.java apps/db/src/java/org/apache/avalon/db/persistence/inmemory NoPersistence.java apps/db/src/java/org/apache/avalon/db/persistence/store StorePersistence.java apps/db/src/java/org/apache/avalon/db/services DatabasePersistor.java apps/db/src/java/org/apache/avalon/db/transport Request.java Added: apps/db/src/java/org/apache/avalon/db/actions CreateIndex.java apps/db/src/java/org/apache/avalon/db/basic/actions BasicCreateIndex.java apps/db/src/java/org/apache/avalon/db/transport CreateIndexRequest.java Log: start of Index Revision Changes Path 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/actions/CreateIndex.java Index: CreateIndex.java =================================================================== /* * 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. */ package org.apache.avalon.db.actions; /** * Interface CreateView * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @version * $Revision: 1.1 $ */ public interface CreateIndex extends Create { } 1.4 +0 -8 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java Index: BasicCreateTable.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BasicCreateTable.java 2001/11/09 11:41:53 1.3 +++ BasicCreateTable.java 2001/11/09 15:03:19 1.4 @@ -37,14 +37,6 @@ private int mRecordCount; private Element mLxsql; - /** - * Constructor BCELCreateTable - * - * - * @param pendingClass - * @param tableName - * - */ public BasicCreateTable(String tableName, Element lxsql) { mTableName = tableName; mLxsql = lxsql; 1.6 +1 -9 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateView.java Index: BasicCreateView.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateView.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- BasicCreateView.java 2001/11/09 13:55:33 1.5 +++ BasicCreateView.java 2001/11/09 15:03:19 1.6 @@ -29,7 +29,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.5 $ + * @version $Revision: 1.6 $ */ public class BasicCreateView extends BasicCreateRowHolder implements CreateView { @@ -37,14 +37,6 @@ private BasicSelect mBasicSelect; private Document mLxsql; - /** - * Constructor BCELCreateTable - * - * - * @param pendingClass - * @param tableName - * - */ public BasicCreateView(String viewName, Document lxsql) { mViewName = viewName; mLxsql = lxsql; 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateIndex.java Index: BasicCreateIndex.java =================================================================== /* * 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. */ package org.apache.avalon.db.basic.actions; import org.apache.avalon.db.actions.CreateIndex; import org.apache.avalon.db.actions.ActionException; import org.apache.avalon.db.data.impl.AbstractRowHolder; import org.apache.avalon.db.data.Index; import org.apache.avalon.db.basic.data.BasicIndex; import org.apache.avalon.db.services.DatabasePersistor; import org.w3c.dom.Document; import org.w3c.dom.NodeList; /** * Class BasicCreateIndex * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @version $Revision: 1.1 $ */ public class BasicCreateIndex extends BasicCreateRowHolder implements CreateIndex { private String mIndexName; private BasicSelect mBasicSelect; private Document mLxsql; public BasicCreateIndex(String IndexName, Document lxsql) { mIndexName = IndexName; mLxsql = lxsql; NodeList subRootNodes = mLxsql.getChildNodes(); for (int i = 0; i < subRootNodes.getLength(); i++) { if (subRootNodes.item(i).getNodeName().equals("???")) { //TODO } } } /** * Method execute * * */ public void execute() throws ActionException { System.out.println("ci execute"); NodeList subRootNodes = mLxsql.getChildNodes(); AbstractRowHolder tableOrView = null; //TODO Index index = new BasicIndex(mIndexName, tableOrView); mDatabasePersistor.addIndex(mIndexName, index); if (mBasicSelect != null) { mBasicSelect.execute(); } } public void setDatabasePersistor(DatabasePersistor databasePersistor) { super.setDatabasePersistor(databasePersistor); if (mBasicSelect != null) { mBasicSelect.setDatabasePersistor(databasePersistor); } } public int getRecordCount() { //return basicSelect.get.. return 0; //TODO } } 1.2 +3 -2 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/data/BasicIndex.java Index: BasicIndex.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/data/BasicIndex.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BasicIndex.java 2001/11/09 14:45:57 1.1 +++ BasicIndex.java 2001/11/09 15:03:20 1.2 @@ -9,15 +9,16 @@ import org.apache.avalon.db.data.impl.AbstractNameable; import org.apache.avalon.db.data.impl.AbstractRowHolder; +import org.apache.avalon.db.data.Index; /** * Class BasicIndex * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ -public class BasicIndex extends AbstractNameable { +public class BasicIndex extends AbstractNameable implements Index { private AbstractRowHolder mAbstractRowHolder; 1.7 +26 -0 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java Index: BasicLXSQLParser.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- BasicLXSQLParser.java 2001/11/09 13:55:33 1.6 +++ BasicLXSQLParser.java 2001/11/09 15:03:20 1.7 @@ -14,10 +14,12 @@ import org.apache.avalon.db.actions.CreateTable; import org.apache.avalon.db.actions.Insert; import org.apache.avalon.db.actions.CreateView; +import org.apache.avalon.db.actions.CreateIndex; import org.apache.avalon.db.transport.SelectRequest; import org.apache.avalon.db.transport.CreateTableRequest; import org.apache.avalon.db.transport.InsertRequest; import org.apache.avalon.db.transport.CreateViewRequest; +import org.apache.avalon.db.transport.CreateIndexRequest; import org.apache.avalon.db.data.Column; import org.apache.avalon.db.data.impl.DefaultColumn; import org.apache.avalon.db.bcel.actions.AbstractBCELAction; @@ -25,6 +27,7 @@ import org.apache.avalon.db.basic.actions.BasicInsert; import org.apache.avalon.db.basic.actions.BasicSelect; import org.apache.avalon.db.basic.actions.BasicCreateView; +import org.apache.avalon.db.basic.actions.BasicCreateIndex; import org.apache.avalon.db.basic.data.BasicTable; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.ComponentException; @@ -132,6 +135,29 @@ String viewName = rootElement.getAttribute("name"); CreateView action = new BasicCreateView(viewName, doc); + action.setDatabasePersistor(mDatabasePersistor); + return action; + + } + + + /** + * Method createCreateTableAction + * + * + * @param request + * + * @return + * + */ + public CreateIndex createCreateIndexAction(CreateIndexRequest request) throws ActionException { + + Document doc = parseLXSQLString(request.getSql()); + + Element rootElement = doc.getDocumentElement(); + String indexName = rootElement.getAttribute("name"); + + CreateIndex action = new BasicCreateIndex(indexName, doc); action.setDatabasePersistor(mDatabasePersistor); return action; 1.4 +3 -0 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/lxsql/LXSQLParserHelper.java Index: LXSQLParserHelper.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/lxsql/LXSQLParserHelper.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LXSQLParserHelper.java 2001/11/09 13:55:33 1.3 +++ LXSQLParserHelper.java 2001/11/09 15:03:20 1.4 @@ -16,6 +16,7 @@ import org.apache.avalon.db.transport.SelectRequest; import org.apache.avalon.db.transport.CreateTableRequest; import org.apache.avalon.db.transport.CreateViewRequest; +import org.apache.avalon.db.transport.CreateIndexRequest; import java.sql.SQLException; @@ -34,6 +35,8 @@ request = new CreateTableRequest(sql); } else if (sql.startsWith("<create-view")) { request = new CreateViewRequest(sql); + } else if (sql.startsWith("<create-index")) { + request = new CreateIndexRequest(sql); //TODO } else { throw new SQLException("Unknown SQL instruction (first term)"); 1.5 +5 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/inmemory/NoPersistence.java Index: NoPersistence.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/inmemory/NoPersistence.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- NoPersistence.java 2001/11/09 11:41:53 1.4 +++ NoPersistence.java 2001/11/09 15:03:20 1.5 @@ -14,6 +14,7 @@ import org.apache.avalon.db.services.ActionCache; import org.apache.avalon.db.data.Table; import org.apache.avalon.db.data.View; +import org.apache.avalon.db.data.Index; import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.context.Context; @@ -35,7 +36,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ */ public class NoPersistence extends AbstractLoggable implements DatabasePersistor, Block, Contextualizable, Composable, Configurable, @@ -126,4 +127,7 @@ mAddressableObjects.put(viewName, view); } + public void addIndex(String indexName, Index index) { + mAddressableObjects.put(indexName, index); + } } 1.4 +3 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/store/StorePersistence.java Index: StorePersistence.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/store/StorePersistence.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- StorePersistence.java 2001/11/09 11:41:53 1.3 +++ StorePersistence.java 2001/11/09 15:03:20 1.4 @@ -14,6 +14,7 @@ import org.apache.avalon.db.services.ActionCache; import org.apache.avalon.db.data.Table; import org.apache.avalon.db.data.View; +import org.apache.avalon.db.data.Index; import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.context.Context; @@ -33,7 +34,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ */ public class StorePersistence extends AbstractLoggable implements DatabasePersistor, Block, Contextualizable, Composable, Configurable, @@ -119,5 +120,6 @@ */ public void addTable(String tableName, Table table) {} public void addView(String viewName, View view) {} + public void addIndex(String indexName, Index index) {} } 1.4 +4 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/DatabasePersistor.java Index: DatabasePersistor.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/DatabasePersistor.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DatabasePersistor.java 2001/11/09 11:41:53 1.3 +++ DatabasePersistor.java 2001/11/09 15:03:20 1.4 @@ -12,6 +12,7 @@ import org.apache.avalon.db.data.Table; import org.apache.avalon.db.data.View; +import org.apache.avalon.db.data.Index; /** @@ -19,7 +20,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version * $Revision: 1.3 $ + * @version * $Revision: 1.4 $ */ public interface DatabasePersistor { @@ -56,5 +57,7 @@ void addTable(String tableName, Table table); void addView(String viewName, View table); + + void addIndex(String indexName, Index index); } 1.8 +2 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Request.java Index: Request.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Request.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Request.java 2001/11/09 13:55:34 1.7 +++ Request.java 2001/11/09 15:03:20 1.8 @@ -18,7 +18,7 @@ * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Revision: 1.7 $ + * @version $Revision: 1.8 $ */ public abstract class Request implements Serializable { @@ -43,6 +43,7 @@ public static final int ALTER = 128; public static final int GRANT = 129; public static final int CREATEVIEW = 130; + public static final int CREATEINDEX = 131; private int mRequestCode; 1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/CreateIndexRequest.java Index: CreateIndexRequest.java =================================================================== /* * 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. */ package org.apache.avalon.db.transport; /** * Class CreateIndexRequest * * * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> * @version $Revision: 1.1 $ */ public class CreateIndexRequest extends WriteRequest { /** * Constructor CreateIndexRequest * * * @param sql * */ public CreateIndexRequest(String sql) { super(CREATEINDEX, sql); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>