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/12 16:09:04 UTC
cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/store StorePersistence.java
hammant 01/11/12 07:09:04
Modified: apps/db/src/java/org/apache/avalon/db/data Queryable.java
RowListener.java
apps/db/src/java/org/apache/avalon/db/data/impl
AbstractDelegatedQueryable.java
AbstractQueryable.java
apps/db/src/java/org/apache/avalon/db/persistence/store
StorePersistence.java
Added: apps/db/src/java/org/apache/avalon/db/data Cataloged.java
Log:
Start of Store persistence
Revision Changes Path
1.2 +2 -2 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Queryable.java
Index: Queryable.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Queryable.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Queryable.java 2001/11/11 13:03:45 1.1
+++ Queryable.java 2001/11/12 15:09:04 1.2
@@ -15,9 +15,9 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.1 $
+ * @version * $Revision: 1.2 $
*/
-public interface Queryable extends Nameable {
+public interface Queryable extends Nameable, Cataloged {
Column[] getColumns();
void addRow(Row row);
1.2 +4 -4 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/RowListener.java
Index: RowListener.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/RowListener.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RowListener.java 2001/11/10 09:15:45 1.1
+++ RowListener.java 2001/11/12 15:09:04 1.2
@@ -13,13 +13,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.1 $
+ * @version * $Revision: 1.2 $
*/
public interface RowListener {
- void rowsAdded(Row[] rows);
- void rowsDeleted(Row[] rows);
- void rowsChanged(Row[] rows);
+ void rowsAdded(Queryable queryable, Row[] rows);
+ void rowsDeleted(Queryable queryable, Row[] rows);
+ void rowsChanged(Queryable queryable, Row[] rows);
}
1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Cataloged.java
Index: Cataloged.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.data;
import java.io.Serializable;
/**
* Interface Cataloged
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version * $Revision: 1.1 $
*/
public interface Cataloged extends Serializable {
/**
* Method getCatalogName
*
*
* @return
*
*/
String getCatalogName();
}
1.2 +9 -0 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractDelegatedQueryable.java
Index: AbstractDelegatedQueryable.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractDelegatedQueryable.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractDelegatedQueryable.java 2001/11/11 13:03:45 1.1
+++ AbstractDelegatedQueryable.java 2001/11/12 15:09:04 1.2
@@ -25,11 +25,12 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public abstract class AbstractDelegatedQueryable extends AbstractNameable implements Queryable {
private AbstractQueryable mAbstractQueryable;
+ protected String mCatalogName;
/**
* Constructor AbstractDelegatedQueryable
@@ -42,6 +43,14 @@
public AbstractDelegatedQueryable(String indexName, AbstractQueryable rowAbstractQueryable) {
super(indexName);
mAbstractQueryable = rowAbstractQueryable;
+ }
+
+ public String getCatalogName() {
+ return mCatalogName;
+ }
+
+ public void setCatalogName(String catalogName) {
+ mCatalogName = catalogName;
}
/**
1.2 +14 -5 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractQueryable.java
Index: AbstractQueryable.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractQueryable.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractQueryable.java 2001/11/11 13:03:45 1.1
+++ AbstractQueryable.java 2001/11/12 15:09:04 1.2
@@ -25,15 +25,15 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public abstract class AbstractQueryable extends AbstractNameable implements Queryable {
protected Column[] mColumns;
protected Vector mRows = new Vector();
protected Vector mListeners = new Vector();
+ protected String mCatalogName = "?";
-
/**
* Constructor AbstractQueryable
*
@@ -47,6 +47,15 @@
mColumns = columns;
}
+ public String getCatalogName() {
+ return mCatalogName;
+ }
+
+ public void setCatalogName(String catalogName) {
+ mCatalogName = catalogName;
+ }
+
+
/**
* Method getColumns
*
@@ -92,7 +101,7 @@
if (listener == null) {
it.remove();
} else {
- listener.rowsAdded(rows);
+ listener.rowsAdded(this, rows);
}
}
}
@@ -105,7 +114,7 @@
if (listener == null) {
it.remove();
} else {
- listener.rowsChanged(rows);
+ listener.rowsChanged(this, rows);
}
}
}
@@ -118,7 +127,7 @@
if (listener == null) {
it.remove();
} else {
- listener.rowsDeleted(rows);
+ listener.rowsDeleted(this, rows);
}
}
}
1.9 +55 -54 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.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- StorePersistence.java 2001/11/11 21:44:47 1.8
+++ StorePersistence.java 2001/11/12 15:09:04 1.9
@@ -8,26 +8,17 @@
*/
package org.apache.avalon.db.persistence.store;
-
-
-import org.apache.avalon.db.services.DatabasePersistor;
-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.db.persistence.inmemory.NoPersistence;
import org.apache.avalon.db.data.Queryable;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.db.data.RowListener;
+import org.apache.avalon.db.data.Row;
+import org.apache.avalon.db.data.Table;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.phoenix.Block;
+import org.apache.avalon.cornerstone.services.store.Store;
+import org.apache.avalon.cornerstone.services.store.ObjectRepository;
/**
@@ -35,25 +26,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.8 $
+ * @version $Revision: 1.9 $
*/
-public class StorePersistence extends AbstractLogEnabled
- implements DatabasePersistor, Block, Contextualizable, Composable, Configurable,
- Initializable {
-
- // depends on CornerStone's Store.
-
- /**
- * Method contextualize
- *
- *
- * @param context
- *
- * @throws ContextException
- *
- */
- public void contextualize(Context context) throws ContextException {}
+public class StorePersistence extends NoPersistence implements RowListener {
+ protected Store mStore;
+ protected Configuration mStoreConfig;
+ protected ObjectRepository mObjectRepository;
/**
* Method compose
*
@@ -63,37 +42,59 @@
* @throws ComponentException
*
*/
- public void compose(ComponentManager componentManager) throws ComponentException {}
+ public void compose(ComponentManager componentManager) throws ComponentException {
+ mStore = (Store) componentManager.lookup(Store.class.getName());
+ super.compose(componentManager);
+ }
- /**
- * Method configure
- *
- *
- * @param configuration
- *
- * @throws ConfigurationException
- *
- */
- public void configure(Configuration configuration) throws ConfigurationException {}
+ public void configure(Configuration configuration)
+ throws ConfigurationException {
+ mStoreConfig = configuration.getChild("repository");
+ super.configure(configuration);
+ }
- /**
- * Method initialize
- *
- *
- * @throws Exception
- *
- */
- public void initialize() throws Exception {}
+ public void initialize()
+ throws Exception {
+ mObjectRepository = (ObjectRepository) mStore.select(mStoreConfig);
+ }
public boolean queryableExists(String queryableName) {
- return false;
+ return super.queryableExists(queryableName);
}
public Queryable getQueryable(String queryableName) {
- return null;
+ Queryable qy = super.getQueryable(queryableName);
+ if (qy instanceof Table) {
+ qy.addRowListener(this);
+ }
+ return qy;
+ }
+
+ public void addQueryable(String queryableName, Queryable queryable) {
+ super.addQueryable(queryableName, queryable);
+ if (queryable instanceof Table) {
+ queryable.addRowListener(this);
+ }
+ }
+
+ public void rowsAdded(Queryable queryable, Row[] rows) {
+ persist(queryable);
+ }
+
+ public void rowsDeleted(Queryable queryable, Row[] rows) {
+ persist(queryable);
+ }
+
+ public void rowsChanged(Queryable queryable, Row[] rows) {
+ persist(queryable);
+ }
+
+ private void persist(Queryable queryable) {
+ String path = queryable.getCatalogName() + "/" + queryable.getName();
+ mObjectRepository.put(path,queryable);
}
- public void addQueryable(String queryableName, Queryable queryable) {}
+ //TODO - de persistence on demand.
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>