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/10 10:15:45 UTC
cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl AbstractRowHolder.java
hammant 01/11/10 01:15:45
Modified: apps/db/src/java/org/apache/avalon/db/data RowHolder.java
apps/db/src/java/org/apache/avalon/db/data/impl
AbstractRowHolder.java
Added: apps/db/src/java/org/apache/avalon/db/data RowListener.java
Log:
views have selects that need to listen to tables etc
Revision Changes Path
1.4 +3 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/RowHolder.java
Index: RowHolder.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/RowHolder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- RowHolder.java 2001/10/30 17:45:14 1.3
+++ RowHolder.java 2001/11/10 09:15:45 1.4
@@ -15,11 +15,13 @@
*
*
* @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 RowHolder extends Nameable {
Column[] getColumns();
void addRow(Row row);
+ void addRowListener(RowListener rowListener);
+ void removeRowListener(RowListener rowListener);
}
1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/RowListener.java
Index: RowListener.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;
/**
* Interface RowListener
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version * $Revision: 1.1 $
*/
public interface RowListener {
void rowsAdded(Row[] rows);
void rowsDeleted(Row[] rows);
void rowsChanged(Row[] rows);
}
1.4 +20 -1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractRowHolder.java
Index: AbstractRowHolder.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractRowHolder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractRowHolder.java 2001/11/09 14:45:58 1.3
+++ AbstractRowHolder.java 2001/11/10 09:15:45 1.4
@@ -13,8 +13,11 @@
import org.apache.avalon.db.data.RowHolder;
import org.apache.avalon.db.data.Column;
import org.apache.avalon.db.data.Row;
+import org.apache.avalon.db.data.RowListener;
import java.util.Vector;
+import java.util.Iterator;
+import java.lang.ref.WeakReference;
/**
@@ -22,12 +25,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public abstract class AbstractRowHolder extends AbstractNameable implements RowHolder {
protected Column[] mColumns;
protected Vector mRows = new Vector();
+ protected Vector mListeners = new Vector();
/**
@@ -63,5 +67,20 @@
*/
public void addRow(Row row) {
mRows.add(row);
+ }
+
+ public void addRowListener(RowListener rowListener) {
+ mListeners.add(new WeakReference(rowListener));
+ }
+
+ public void removeRowListener(RowListener rowListener) {
+ Iterator it = mListeners.iterator();
+ while (it.hasNext()) {
+ WeakReference ref = (WeakReference) it.next();
+ if (ref.get() == rowListener) {
+ it.remove();
+ return;
+ }
+ }
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>