You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2001/11/18 21:47:21 UTC

cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/utils RhinoException.java RhinoHelper.java

hammant     01/11/18 12:47:21

  Modified:    apps/db/src/java/org/apache/avalon/db/basic/actions
                        BasicCreateIndex.java BasicCreateTable.java
                        BasicCreateView.java BasicDeleteRows.java
                        BasicSelect.java BasicUpdateRows.java
                        SimpleWhereClause.java
                        SimpleWhereClauseMatchingRowCallback.java
               apps/db/src/java/org/apache/avalon/db/basic/data
                        BasicView.java
               apps/db/src/java/org/apache/avalon/db/data RowListener.java
               apps/db/src/java/org/apache/avalon/db/data/impl
                        AbstractNameable.java AbstractQueryable.java
               apps/db/src/java/org/apache/avalon/db/persistence/store
                        StorePersistence.java
               apps/db/src/java/org/apache/avalon/db/utils RhinoHelper.java
  Added:       apps/db/src/java/org/apache/avalon/db/data
                        DataException.java
               apps/db/src/java/org/apache/avalon/db/utils
                        RhinoException.java
  Log:
  view monitors row changes
  
  Revision  Changes    Path
  1.9       +3 -2      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateIndex.java
  
  Index: BasicCreateIndex.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateIndex.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- BasicCreateIndex.java	2001/11/18 19:22:52	1.8
  +++ BasicCreateIndex.java	2001/11/18 20:47:20	1.9
  @@ -24,7 +24,7 @@
    *
    *
    * @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 BasicCreateIndex extends BasicCreateQueryable implements CreateIndex {
   
  @@ -52,7 +52,8 @@
   
           AbstractQueryable tableOrView = null; //TODO
   
  -        Index index = new BasicIndex(mIndexName, tableOrView);
  +        BasicIndex index = new BasicIndex(mIndexName, tableOrView);
  +        index.enableLogging(this.getLogger());
           mDatabasePersistor.addQueryable(mIndexName, index);
   
   
  
  
  
  1.13      +2 -1      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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- BasicCreateTable.java	2001/11/18 19:22:52	1.12
  +++ BasicCreateTable.java	2001/11/18 20:47:20	1.13
  @@ -56,7 +56,8 @@
               throw new ActionException("Table " + mTableName + " Already Exists");
           }
           */
  -        Table table = new BasicTable(mTableName, mColumns);
  +        BasicTable table = new BasicTable(mTableName, mColumns);
  +        table.enableLogging(this.getLogger());
           mDatabasePersistor.addQueryable(mTableName, table);
       }
   
  
  
  
  1.13      +9 -2      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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- BasicCreateView.java	2001/11/18 19:22:52	1.12
  +++ BasicCreateView.java	2001/11/18 20:47:20	1.13
  @@ -14,6 +14,7 @@
   import org.apache.avalon.db.data.Column;
   import org.apache.avalon.db.data.Table;
   import org.apache.avalon.db.data.View;
  +import org.apache.avalon.db.data.Queryable;
   import org.apache.avalon.db.basic.data.BasicTable;
   import org.apache.avalon.db.basic.data.BasicView;
   import org.apache.avalon.db.services.DatabasePersistor;
  @@ -26,7 +27,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    */
   public class BasicCreateView extends BasicCreateQueryable implements CreateView {
   
  @@ -52,7 +53,13 @@
   
           System.out.println("cv execute");
   
  -        View view = new BasicView(mViewName, mColumns, mSimpleWhereClause);
  +        Queryable queryable = mDatabasePersistor.getQueryable(mOnName);
  +
  +        BasicView view = new BasicView(mViewName, mColumns, queryable ,mSimpleWhereClause);
  +        view.enableLogging(this.getLogger());
  +
  +
  +
           mDatabasePersistor.addQueryable(mViewName, view);
   
       }
  
  
  
  1.3       +7 -5      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicDeleteRows.java
  
  Index: BasicDeleteRows.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicDeleteRows.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BasicDeleteRows.java	2001/11/17 17:04:26	1.2
  +++ BasicDeleteRows.java	2001/11/18 20:47:20	1.3
  @@ -23,7 +23,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public class BasicDeleteRows extends AbstractAction
           implements DeleteRows, LogEnabled, SimpleWhereClauseMatchingRowCallback {
  @@ -57,7 +57,7 @@
       public void execute() throws ActionException {
   
           Iterator it = mQueryable.getRows().iterator();
  -        mWhereClause.testRows(it, this);
  +        mWhereClause.testActionRows(it, this);
   
       }
   
  @@ -66,9 +66,11 @@
        *
        * This is the callback from JavaScript
        */
  -    public void rowMatches(BasicRow row) {
  -        mQueryable.deleteRow(row);
  -        mRecordCount++;
  +    public void rowMatches(BasicRow row, boolean matches) {
  +        if (matches) {
  +            mQueryable.deleteRow(row);
  +            mRecordCount++;
  +        }
       }
   
       public int getRecordCount() {
  
  
  
  1.28      +7 -2      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java
  
  Index: BasicSelect.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- BasicSelect.java	2001/11/18 14:40:29	1.27
  +++ BasicSelect.java	2001/11/18 20:47:20	1.28
  @@ -19,6 +19,7 @@
   import org.apache.avalon.db.basic.results.BasicRowSet;
   import org.apache.avalon.db.utils.RhinoHelper;
   import org.apache.avalon.db.utils.StringUtils;
  +import org.apache.avalon.db.utils.RhinoException;
   import org.apache.avalon.db.data.ValidationException;
   import org.apache.avalon.db.data.Table;
   import org.apache.avalon.db.data.Column;
  @@ -136,7 +137,11 @@
               rh.addBean("rc",rc);
               rh.addBean("table",mTable);
               getLogger().debug("mWhereBuffer.toString()" + mWhereBuffer.toString());
  -            rh.executeAction("if (" + mWhereBuffer.toString() + ") { rc.itDidMatch(true); } ");
  +            try {
  +                rh.executeScript("if (" + mWhereBuffer.toString() + ") { rc.itDidMatch(true); } ");
  +            } catch (RhinoException re) {
  +                throw new ActionException(re.getMessage());
  +            }
               return rc.didItMatch();
           } else {
               return true;
  @@ -154,7 +159,7 @@
       }
   
        public class ColumnCheck {
  -       
  +
          public Column getColumn(BasicTable table, String name) {
               if(table.getColumn(name,false) == null) {
                   return getConstantColumn("constantcolumn",name);
  
  
  
  1.3       +8 -6      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicUpdateRows.java
  
  Index: BasicUpdateRows.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicUpdateRows.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BasicUpdateRows.java	2001/11/17 17:04:26	1.2
  +++ BasicUpdateRows.java	2001/11/18 20:47:20	1.3
  @@ -22,7 +22,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public class BasicUpdateRows extends AbstractAction
           implements UpdateRows, LogEnabled, SimpleWhereClauseMatchingRowCallback {
  @@ -56,7 +56,7 @@
       public void execute() throws ActionException {
   
           Iterator it = mQueryable.getRows().iterator();
  -        mWhereClause.testRows(it, this);
  +        mWhereClause.testActionRows(it, this);
   
       }
   
  @@ -65,10 +65,12 @@
        *
        * This is the callback from JavaScript
        */
  -    public void rowMatches(BasicRow row) {
  -        // TODO all the setting of columns
  -        mQueryable.rowChanged(row);
  -        mRecordCount++;
  +    public void rowMatches(BasicRow row, boolean matches) {
  +        if (matches) {
  +            // TODO all the setting of columns
  +            mQueryable.rowChanged(row);
  +            mRecordCount++;
  +        }
       }
   
       public int getRecordCount() {
  
  
  
  1.3       +51 -10    jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/SimpleWhereClause.java
  
  Index: SimpleWhereClause.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/SimpleWhereClause.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SimpleWhereClause.java	2001/11/18 14:23:26	1.2
  +++ SimpleWhereClause.java	2001/11/18 20:47:20	1.3
  @@ -11,6 +11,8 @@
   import org.apache.avalon.db.basic.data.BasicRow;
   import org.apache.avalon.db.actions.ActionException;
   import org.apache.avalon.db.utils.RhinoHelper;
  +import org.apache.avalon.db.utils.RhinoException;
  +import org.apache.avalon.db.data.DataException;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
   
   import java.util.Iterator;
  @@ -21,7 +23,7 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">g-froehlich@gmx.de</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public class SimpleWhereClause extends AbstractLogEnabled {
       private String mWhereClause;
  @@ -34,7 +36,22 @@
           return mWhereClause;
       }
   
  -    public void testRows(Iterator rowIterator, SimpleWhereClauseMatchingRowCallback callBack) throws ActionException {
  +    public void testDataRows(Iterator rowIterator, SimpleWhereClauseMatchingRowCallback callBack) throws DataException {
  +        try {
  +            testRows(rowIterator, callBack);
  +        } catch (RhinoException re) {
  +            throw new DataException(re.getMessage());
  +        }
  +    }
  +    public void testActionRows(Iterator rowIterator, SimpleWhereClauseMatchingRowCallback callBack) throws ActionException {
  +        try {
  +            testRows(rowIterator, callBack);
  +        } catch (RhinoException re) {
  +            throw new ActionException(re.getMessage());
  +        }
  +    }
  +
  +    private void testRows(Iterator rowIterator, SimpleWhereClauseMatchingRowCallback callBack) throws RhinoException {
           RhinoHelper rh = new RhinoHelper();
           rh.addBean("iterator",rowIterator);
           rh.addBean("callback",callBack);
  @@ -45,13 +62,31 @@
               "while(iterator.hasNext()) {" +
                  "var row = it.next();" +
                  "if ( " + mWhereClause + " ) {" +
  -                  "callBack.rowMatches(row);" +
  +                  "callBack.rowMatches(row, true);" +
  +               "} else {" +
  +                  "callBack.rowMatches(row, false);" +
                  "}" +
               "}";
  -        rh.executeAction(js);
  +        rh.executeScript(js);
  +    }
  +
  +    public boolean testDataRow(BasicRow row) throws DataException {
  +        try {
  +            return testRow(row);
  +        } catch (RhinoException re) {
  +            throw new DataException(re.getMessage());
  +        }
  +    }
  +
  +    public boolean testActionRow(BasicRow row) throws ActionException {
  +        try {
  +            return testRow(row);
  +        } catch (RhinoException re) {
  +            throw new ActionException(re.getMessage());
  +        }
       }
   
  -    public boolean testRow(BasicRow row) throws ActionException {
  +    private boolean testRow(BasicRow row) throws RhinoException {
           if(!mWhereClause.toString().equals("")) {
               RhinoHelper rh = new RhinoHelper();
               MatchingHelper mh = new MatchingHelper();
  @@ -60,16 +95,22 @@
               TestHelper testHelper = new TestHelper();
               rh.addBean("testHelper",testHelper);
               getLogger().debug("mWhereClause" + mWhereClause.toString());
  -            rh.executeAction("if (" + mWhereClause.toString() + ") { callback.rowMatches(row); } ");
  -            return mh.matched;
  +            rh.executeScript(
  +                 "if (" + mWhereClause.toString() + ") { " +
  +                    "callBack.rowMatches(row, true);" +
  +                 "} else {" +
  +                    "callBack.rowMatches(row, false);" +
  +                 "}");
  +            return mh.mMatched;
           } else {
               return true;
           }
       }
  +
       public class MatchingHelper implements SimpleWhereClauseMatchingRowCallback {
  -        public boolean matched = false;
  -        public void rowMatches(BasicRow row) {
  -            matched = true;
  +        public boolean mMatched = false;
  +        public void rowMatches(BasicRow row, boolean matched) {
  +            mMatched = matched;
           }
       }
   }
  
  
  
  1.2       +1 -1      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/SimpleWhereClauseMatchingRowCallback.java
  
  Index: SimpleWhereClauseMatchingRowCallback.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/SimpleWhereClauseMatchingRowCallback.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SimpleWhereClauseMatchingRowCallback.java	2001/11/17 17:04:26	1.1
  +++ SimpleWhereClauseMatchingRowCallback.java	2001/11/18 20:47:20	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 SimpleWhereClauseMatchingRowCallback {
   
  -    void rowMatches(BasicRow row);
  +    void rowMatches(BasicRow row, boolean matches);
   }
  
  
  
  1.4       +108 -6    jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/data/BasicView.java
  
  Index: BasicView.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/data/BasicView.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BasicView.java	2001/11/18 14:18:01	1.3
  +++ BasicView.java	2001/11/18 20:47:20	1.4
  @@ -9,26 +9,39 @@
   
   import org.apache.avalon.db.data.impl.AbstractView;
   import org.apache.avalon.db.data.Column;
  +import org.apache.avalon.db.data.Queryable;
  +import org.apache.avalon.db.data.RowListener;
  +import org.apache.avalon.db.data.Row;
  +import org.apache.avalon.db.data.DataException;
   import org.apache.avalon.db.basic.actions.BasicSelect;
   import org.apache.avalon.db.basic.actions.SimpleWhereClause;
  +import org.apache.avalon.db.basic.actions.SimpleWhereClauseMatchingRowCallback;
   
  +import java.util.Collection;
  +import java.util.Iterator;
  +
   /**
    * Class BasicView
    *
    *
    * @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 BasicView extends AbstractView {
  +public class BasicView extends AbstractView implements RowListener {
   
  -    private SimpleWhereClause mWhereClause;
  +    private SimpleWhereClause mSimpleWhereClause;
  +    private Queryable mQueryable;
   
  -    public BasicView(String name, Column[] columns, SimpleWhereClause whereClause) {
  +    public BasicView(String name, Column[] columns, Queryable queryable, SimpleWhereClause whereClause) {
           super(name, columns);
  -        mWhereClause = whereClause;
  +        mSimpleWhereClause = whereClause;
  +        mQueryable = queryable;
  +
  +        queryable.addRowListener(this);
  +
       }
   
  -    public int getColumnIndex(String columnName) {
  +    public int getcColumnIndex(String columnName) {
           for (int x = 0; x < mColumns.length; x++) {
               if (mColumns[x].getColumnName().equals(columnName)) {
                   return x;
  @@ -37,5 +50,94 @@
           return -1;
       }
   
  +    public void rowAdded(Queryable queryable, Row row) {
  +        try {
  +            if(mSimpleWhereClause.testDataRow((BasicRow) row)) {
  +                addRow(row);
  +            }
  +        } catch (DataException de) {
  +            getLogger().debug("(BasicView) Some exception during rowAdded",de);
  +        }
  +    }
   
  +    public void rowDeleted(Queryable queryable, Row row) {
  +        if(rowExists(row)) {
  +            deleteRow(row);
  +        }
  +    }
  +
  +    public void rowChanged(Queryable queryable, Row row) {
  +        try {
  +            boolean exists = rowExists(row);
  +            if(mSimpleWhereClause.testDataRow((BasicRow) row)) {
  +                if (exists) {
  +                    // do nothing
  +                } else {
  +                    deleteRow(row);
  +                }
  +            } else {
  +                if (exists) {
  +                    addRow(row);
  +                } else {
  +                    // do nothing
  +                }
  +            }
  +        } catch (DataException de) {
  +            getLogger().debug("(BasicView) Some exception during rowChanged",de);
  +        }
  +
  +    }
  +
  +    public void rowsAdded(Queryable queryable, Collection rows) {
  +        SimpleWhereClauseMatchingRowCallback cb = new SimpleWhereClauseMatchingRowCallback() {
  +            public void rowMatches(BasicRow row, boolean matches) {
  +                if (matches) {
  +                    addRow(row);
  +                } else {
  +                    deleteRow(row);
  +                }
  +            }
  +        };
  +        try {
  +            mSimpleWhereClause.testDataRows(rows.iterator(), cb);
  +        } catch (DataException de) {
  +            getLogger().debug("(BasicView) Some exception during rowsAdded",de);
  +        }
  +    }
  +
  +    public void rowsDeleted(Queryable queryable, Collection rows) {
  +        Iterator it = rows.iterator();
  +        while (it.hasNext()) {
  +            Row row = (Row) it.next();
  +            if(rowExists(row)) {
  +                deleteRow(row);
  +            }
  +        }
  +    }
  +
  +    public void rowsChanged(Queryable queryable, Collection rows) {
  +        SimpleWhereClauseMatchingRowCallback cb = new SimpleWhereClauseMatchingRowCallback() {
  +            public void rowMatches(BasicRow row, boolean matches) {
  +                boolean exists = rowExists(row);
  +                if (matches) {
  +                    if (exists) {
  +                        // do nothing
  +                    } else {
  +                        addRow(row);
  +                    }
  +                } else {
  +                    if (exists) {
  +                        deleteRow(row);
  +                    } else {
  +                        // do nothing
  +                    }
  +                }
  +            }
  +        };
  +        try {
  +            mSimpleWhereClause.testDataRows(rows.iterator(), cb);
  +        } catch (DataException de) {
  +            getLogger().debug("(BasicView) Some exception during rowsChanged",de);
  +        }
  +    }
   }
  
  
  
  1.4       +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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RowListener.java	2001/11/18 14:18:02	1.3
  +++ RowListener.java	2001/11/18 20:47:20	1.4
  @@ -15,13 +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 RowListener {
   
  -    void rowsAdded(Queryable queryable, Row row);
  -    void rowsDeleted(Queryable queryable, Row row);
  -    void rowsChanged(Queryable queryable, Row row);
  +    void rowAdded(Queryable queryable, Row row);
  +    void rowDeleted(Queryable queryable, Row row);
  +    void rowChanged(Queryable queryable, Row row);
   
       void rowsAdded(Queryable queryable, Collection rows);
       void rowsDeleted(Queryable queryable, Collection rows);
  
  
  
  1.1                  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/DataException.java
  
  Index: DataException.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;
  
  
  
  /**
   * Class DataException
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $
   */
  public class DataException extends Exception {
      public DataException(String reason) {
          super(reason);
      }
  }
  
  
  
  1.2       +3 -2      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractNameable.java
  
  Index: AbstractNameable.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractNameable.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractNameable.java	2001/11/09 14:45:58	1.1
  +++ AbstractNameable.java	2001/11/18 20:47:20	1.2
  @@ -9,15 +9,16 @@
   package org.apache.avalon.db.data.impl;
   
   import org.apache.avalon.db.data.Nameable;
  +import org.apache.avalon.framework.logger.AbstractLogEnabled;
   
   /**
    * Class AbstractNameable
    *
    *
    * @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 AbstractNameable implements Nameable {
  +public abstract class AbstractNameable extends AbstractLogEnabled implements Nameable {
   
       private String mName;
   
  
  
  
  1.7       +7 -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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractQueryable.java	2001/11/18 14:18:02	1.6
  +++ AbstractQueryable.java	2001/11/18 20:47:20	1.7
  @@ -26,7 +26,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.6 $
  + * @version $Revision: 1.7 $
    */
   public abstract class AbstractQueryable extends AbstractNameable implements Queryable {
   
  @@ -60,7 +60,9 @@
           return mRows;
       }
   
  -
  +    public boolean rowExists(Row row) {
  +        return mRows.contains(row);
  +    }
   
       /**
        * Method getColumns
  @@ -135,7 +137,7 @@
               if (listener == null) {
                   it.remove();
               } else {
  -                listener.rowsAdded(this, row);
  +                listener.rowAdded(this, row);
               }
           }
       }
  @@ -162,7 +164,7 @@
               if (listener == null) {
                   it.remove();
               } else {
  -                listener.rowsChanged(this, row);
  +                listener.rowChanged(this, row);
               }
           }
       }
  @@ -187,7 +189,7 @@
               if (listener == null) {
                   it.remove();
               } else {
  -                listener.rowsDeleted(this, row);
  +                listener.rowDeleted(this, row);
               }
           }
       }
  
  
  
  1.12      +4 -4      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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- StorePersistence.java	2001/11/18 14:18:02	1.11
  +++ StorePersistence.java	2001/11/18 20:47:20	1.12
  @@ -28,7 +28,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.11 $
  + * @version $Revision: 1.12 $
    */
   public class StorePersistence extends NoPersistence implements RowListener {
   
  @@ -91,15 +91,15 @@
           persist(queryable);
       }
   
  -    public void rowsAdded(Queryable queryable, Row row) {
  +    public void rowAdded(Queryable queryable, Row row) {
           persist(queryable);
       }
   
  -    public void rowsDeleted(Queryable queryable, Row row) {
  +    public void rowDeleted(Queryable queryable, Row row) {
           persist(queryable);
       }
   
  -    public void rowsChanged(Queryable queryable, Row row) {
  +    public void rowChanged(Queryable queryable, Row row) {
           persist(queryable);
       }
   
  
  
  
  1.3       +4 -4      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/utils/RhinoHelper.java
  
  Index: RhinoHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/utils/RhinoHelper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RhinoHelper.java	2001/11/08 16:03:07	1.2
  +++ RhinoHelper.java	2001/11/18 20:47:20	1.3
  @@ -10,8 +10,8 @@
   
   import com.ibm.bsf.BSFManager;
   import com.ibm.bsf.BSFException;
  -import org.apache.avalon.db.actions.ActionException;
   
  +
   public class RhinoHelper {
   
       BSFManager mBsfManager;
  @@ -29,13 +29,13 @@
           }
       }
   
  -    public void executeAction(String script) throws ActionException {
  +    public void executeScript(String script) throws RhinoException {
           try {
               mBsfManager.exec("javascript", "<ANT>", 0, 0, script);
           } catch (BSFException bsfe) {
               bsfe.printStackTrace();
               bsfe.getTargetException().printStackTrace();
  -            throw new ActionException("Action Execution Failed because of scripting error : " + bsfe.getMessage());
  +            throw new RhinoException("Script Execution Failed because of error : " + bsfe.getMessage());
           }
       }
   
  @@ -44,6 +44,6 @@
           String bean = new String("Millis are " + System.currentTimeMillis());
           rh.addBean("msg",bean);
           rh.addBean("out",System.out);
  -        rh.executeAction("out.println(msg);");
  +        rh.executeScript("out.println(msg);");
       }
   }
  
  
  
  1.1                  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/utils/RhinoException.java
  
  Index: RhinoException.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.utils;
  
  /**
   * Class RhinoException
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $
   */
  public class RhinoException extends Exception {
      public RhinoException(String reason) {
          super(reason);
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>