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>