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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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:[EMAIL PROTECTED]">[EMAIL PROTECTED]</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: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>