You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by ha...@apache.org on 2001/11/09 16:03:20 UTC
cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport CreateIndexRequest.java Request.java
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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</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: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>