Author: kwilliams
Date: Wed Apr 12 13:34:33 2006
New Revision: 393597

URL: http://svn.apache.org/viewcvs?rev=393597&view=rev
Log:
Applying Brent's patch to clean up TODOs

Added:
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/BaseCommandImpl.java
   (with props)
Modified:
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeOperation.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeSummarizer.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Changes.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CreateOperation.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteOperation.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertList.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/OptimisticWriteCommandImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateOperation.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java
 Wed Apr 12 13:34:33 2006
@@ -80,11 +80,6 @@
        public void execute(DataObject root);
 
        /**
-        * TODO - Need to remove this. COnfig now set via factory method
-        */
-       public void setMapping(InputStream mappingModel) throws IOException;
-
-       /**
         * Provides the java.sql.Connection to be used for this executing this
         * command.
         * 

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java
 Wed Apr 12 13:34:33 2006
@@ -57,8 +57,7 @@
         * Creates an [EMAIL PROTECTED] instance with the provided configuration
         * @param mappingModel The provided configuration as a stream over an 
xml file
         * @return Returns an ApplyChangesCOmmand in stance
-        * @throws IOException
-        * TODO - Either remove this throws clause or add it to createCommand
+        * @throws IOException  
         */
        public ApplyChangesCommand createApplyChangesCommand(
                        InputStream mappingModel) throws IOException;

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java
 Wed Apr 12 13:34:33 2006
@@ -17,7 +17,7 @@
 package org.apache.tuscany.das.rdb;
 
 /**
- * A lightweight Tabele-column <--> DataObject-property converter framework.
+ * A lightweight Table-column <--> DataObject-property converter framework.
  * Converters allow a user to insert a transformation between a column value 
and
  * is destination DataObject property value. For example, by default, a VARCHAR
  * column will be represented as a String in its corresponding DataObject

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java
 Wed Apr 12 13:34:33 2006
@@ -19,7 +19,6 @@
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 
-import org.apache.tuscany.das.rdb.graphbuilder.impl.DefaultConverter;
 import org.apache.tuscany.das.rdb.graphbuilder.schema.ResultSetTypeMap;
 
 import commonj.sdo.Type;
@@ -32,33 +31,24 @@
  * <p>
  * There may also be a performance boost when using this interface.
  * 
- * TODO - This is very preliminary.  We need to go over this again and 
consider making is as close as possible to
- * to the infromation returned from ResultSetMetadata.  For example, we may 
want to use JDBC types
- * here rather than SDODataTypes.  Also, ResultSetMetadata doe not provide 
converters, so, maybe this
- * interface should also not.
- * 
  * 
  */
 public class ResultSetShape {
 
        private final String[] columns;
        private final String[] tables;
-       private final Type[] types;
-       //TODO - Are converters really needed here?
-       private Converter[] converters;
+       private final Type[] types;     
        
        public ResultSetShape(String[] t, String[] c, Type[] dataTypes) {
                this.columns = c;
                this.tables = t;
-               this.types = dataTypes;
-               this.converters = new DefaultConverter[c.length];
+               this.types = dataTypes; 
        }
 
        public ResultSetShape(ResultSetMetaData metadata) throws SQLException {
                columns = new String[metadata.getColumnCount()];
                tables = new String[metadata.getColumnCount()];
-               types = new Type[metadata.getColumnCount()];
-               converters = new DefaultConverter[metadata.getColumnCount()];
+               types = new Type[metadata.getColumnCount()];    
                
                ResultSetTypeMap typeMap = ResultSetTypeMap.instance;
                for (int i = 1; i <= metadata.getColumnCount(); i++) {
@@ -84,20 +74,6 @@
                return types[i-1];
        }
        
-       public void setConverter(int i, Converter converter) {
-               this.converters[i] = converter;
-       }
-       
-       public Converter getConverter(int i) {
-               return this.converters[i-1];
-       }
-
-       public void setConverterFactory(Converter converter) {
-               for ( int i=0; i < getColumnCount(); i++ ) {
-                       this.converters[i] = converter;
-               }
-               
-       }
        
        public String toString() {
                StringBuffer result = new StringBuffer();
@@ -110,9 +86,7 @@
                        if ( types[i] == null ) 
                                result.append("null");
                        else 
-                               result.append(types[i].getName());
-                       result.append('\t');
-                       result.append(converters[i]);
+                               result.append(types[i].getName());              
        
                        result.append('\n');
                }
                

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java
 Wed Apr 12 13:34:33 2006
@@ -22,10 +22,6 @@
 /**
  * Defines SDO data types. This is used primalirly to type stored procedure 
OUT parameters.
  * 
- * TODO - This maybe be obviated by the move to SDO2.  We also need to settle 
the question
- * of whether config information is in terms of database or data object types
- * 
- * 
  */public class SDODataTypes {
 
      static TypeHelper helper = TypeHelper.INSTANCE;

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java
 Wed Apr 12 13:34:33 2006
@@ -22,7 +22,7 @@
 import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
 import org.apache.tuscany.das.rdb.impl.DeleteCommandImpl;
 import org.apache.tuscany.das.rdb.impl.InsertCommandImpl;
-import org.apache.tuscany.das.rdb.impl.WriteCommandImpl;
+import org.apache.tuscany.das.rdb.impl.UpdateCommandImpl;
 
 import commonj.sdo.DataObject;
 
@@ -51,7 +51,7 @@
                return insertGenerator.getInsertCommand(mapping, changedObject, 
table);
        }
 
-       public WriteCommandImpl getUpdateCommand(MappingWrapper mapping,
+       public UpdateCommandImpl getUpdateCommand(MappingWrapper mapping,
                        DataObject changedObject, Table table) {
                return updateGenerator.getUpdateCommand(mapping, changedObject, 
table);
        }

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
 Wed Apr 12 13:34:33 2006
@@ -31,7 +31,6 @@
 import org.apache.tuscany.das.rdb.impl.OptimisticWriteCommandImpl;
 import org.apache.tuscany.das.rdb.impl.ParameterImpl;
 import org.apache.tuscany.das.rdb.impl.UpdateCommandImpl;
-import org.apache.tuscany.das.rdb.impl.WriteCommandImpl;
 import org.apache.tuscany.das.rdb.util.DebugUtil;
 
 import commonj.sdo.ChangeSummary;
@@ -49,7 +48,7 @@
                super();
        }
 
-       public WriteCommandImpl getUpdateCommand(MappingWrapper mapping, 
DataObject changedObject, Table table) {
+       public UpdateCommandImpl getUpdateCommand(MappingWrapper mapping, 
DataObject changedObject, Table table) {
                ArrayList parameters = new ArrayList();
                Type type = changedObject.getType();
                TableWrapper t = new TableWrapper(table);
@@ -101,7 +100,7 @@
                }
 
                
-               WriteCommandImpl updateCommand;
+               UpdateCommandImpl updateCommand;
                if ( t.getCollisionColumn() != null )
                        updateCommand = new 
OptimisticWriteCommandImpl(statement.toString());
                else

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
 Wed Apr 12 13:34:33 2006
@@ -23,11 +23,12 @@
 
 import org.apache.tuscany.das.rdb.ApplyChangesCommand;
 import org.apache.tuscany.das.rdb.Command;
-import org.apache.tuscany.das.rdb.Key;
 import org.apache.tuscany.das.rdb.config.Config;
+import org.apache.tuscany.das.rdb.config.ConfigFactory;
 import org.apache.tuscany.das.rdb.config.ConnectionProperties;
-import org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl;
+import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
 import org.apache.tuscany.das.rdb.util.DebugUtil;
+import org.apache.tuscany.sdo.util.SDOUtil;
 
 import commonj.sdo.DataObject;
 import commonj.sdo.Type;
@@ -37,9 +38,7 @@
 /**
  * 
  */
-public class ApplyChangesCommandImpl implements ApplyChangesCommand {
-
-    private ConnectionImpl dasConnection;
+public class ApplyChangesCommandImpl extends BaseCommandImpl implements 
ApplyChangesCommand {
 
     private static final boolean debug = false;
 
@@ -50,32 +49,26 @@
     }
 
     // IOException is recoverable, needs to be thrown
-    public ApplyChangesCommandImpl(InputStream mappingModel) throws 
IOException {
-        setMapping(mappingModel);
-    }
-
-    public ApplyChangesCommandImpl(Config mappingModel){
-        summarizer.setMapping(mappingModel);
-//TODO - Really need to refactor the Command framework.  ReadCommand and 
ApplychangesCommand should
-// be using the same approach to set connection and should probably share the 
same initialization.
-//        if (mappingModel.getConnectionProperties() != null)
-//            setConnection(mappingModel.getConnectionProperties());
-    }
+    public ApplyChangesCommandImpl(InputStream stream) throws IOException {
+       SDOUtil.registerStaticTypes(ConfigFactory.class);
+       XMLHelper helper = XMLHelper.INSTANCE;   
+       XMLDocument doc = helper.load(stream);
+       Config mapping = (Config) doc.getRootObject();
 
-    public void setConnection(Connection connection) {
-        setConnection(new ConnectionImpl(connection));
+       this.configWrapper = new MappingWrapper(mapping);
+     
+        if (mapping.getConnectionProperties() != null)
+            setConnection(mapping.getConnectionProperties());
+       
     }
 
-    public void setConnection(Connection connection, boolean 
manageTransaction) {
-        ConnectionImpl c = new ConnectionImpl(connection);
-        c.setManageTransactions(manageTransaction);
-        setConnection(c);
+    public ApplyChangesCommandImpl(Config mappingModel){
+       this.configWrapper = new MappingWrapper(mappingModel);      
     }
 
-    public void setConnection(ConnectionImpl connection) {
-        dasConnection = connection;
-        summarizer.setConnection(connection);
-    }
+       public void setConnection(ConnectionImpl connection) {
+               summarizer.setConnection(connection);
+       }
 
     public void setConnection(ConnectionProperties c) {
         try {
@@ -93,31 +86,28 @@
     }
 
     public void addCreateCommand(Type type, Command cmd) {
-        summarizer.addCreateCommand(type, cmd);
-        ((CommandImpl) cmd).setConnection(dasConnection);
+        summarizer.addCreateCommand(type, cmd);        
     }
 
-    public void addUpdateCommand(Type type, Command cmd) {
-        // DebugUtil.debugln(getClass(), debug, "Adding update command for type
-        // " + type.getName());
-        summarizer.addUpdateCommand(type, cmd);
-        ((CommandImpl) cmd).setConnection(dasConnection);
+    public void addUpdateCommand(Type type, Command cmd) {      
+        summarizer.addUpdateCommand(type, cmd);        
     }
 
     public void addDeleteCommand(Type type, Command cmd) {
-        summarizer.addDeleteCommand(type, cmd);
-        ((CommandImpl) cmd).setConnection(dasConnection);
+        summarizer.addDeleteCommand(type, cmd);       
     }
 
     public void execute(DataObject root) {
         DebugUtil.debugln(getClass(), debug, "Executing ApplyChangesCmd");
 
-        if (dasConnection == null)
+        if (summarizer.getConnection() == null)
             throw new RuntimeException("A connection must be provided");
 
         if (!root.equals(root.getDataGraph().getRootObject()))
             throw new RuntimeException("'root' argument must be the root of 
the datagraph");
         
+        summarizer.setMapping(configWrapper);
+        
         Changes changes = summarizer.loadChanges(root);
 
         boolean success = false;
@@ -126,51 +116,10 @@
             success = true;
         } finally {
             if (success)
-                dasConnection.cleanUp();
+                summarizer.getConnection().cleanUp();
             else
-                dasConnection.errorCleanUp();
+                summarizer.getConnection().errorCleanUp();
         }
-    }
-
-    public void setMapping(InputStream stream) throws IOException {
-       XMLHelper helper = XMLHelper.INSTANCE;
-   
-        ConfigPackageImpl impl = ConfigPackageImpl.eINSTANCE;
-       XMLDocument doc = helper.load(stream);
-       Config mapping = (Config) doc.getRootObject();
-
-        summarizer.setMapping(mapping);
-        if (mapping.getConnectionProperties() != null)
-            setConnection(mapping.getConnectionProperties());
-
-    }
-
-    public void addRelationship(String parent, String child) {
-        summarizer.addRelationship(parent, child);
-    }
-
-    public void addPrimaryKey(String columnName) {
-        summarizer.addPrimaryKey(columnName);
-    }
-
-    public void addCollisionColumn(String columnName) {
-        summarizer.addCollisionColumn(columnName);
-    }
-
-    public void addRelationship(Key parentKey, Key childKey) {
-        throw new RuntimeException("Not Implemented");
-    }
-
-    public void addPrimaryKey(Key key) {
-        summarizer.addPrimarykey(key);
-    }
-
-    public void addGeneratedPrimaryKey(String columnName) {
-        summarizer.addGeneratedPrimaryKey(columnName);
-    }
-
-    public void addConverter(String name, String converterName) {
-        summarizer.addConverter(name, converterName);
     }
 
 }

Added: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/BaseCommandImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/BaseCommandImpl.java?rev=393597&view=auto
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/BaseCommandImpl.java
 (added)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/BaseCommandImpl.java
 Wed Apr 12 13:34:33 2006
@@ -0,0 +1,53 @@
+
+package org.apache.tuscany.das.rdb.impl;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.Key;
+import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
+
+public abstract class BaseCommandImpl {
+
+   protected MappingWrapper configWrapper = new MappingWrapper();
+
+   public void setConnection(Connection connection) {
+       setConnection(new ConnectionImpl(connection));
+   }
+
+   public void setConnection(Connection connection, boolean manageTransaction) 
{
+       ConnectionImpl c = new ConnectionImpl(connection);
+       c.setManageTransactions(manageTransaction);
+       setConnection(c);
+   }
+
+   public abstract void setConnection(ConnectionImpl c);
+
+   public void addRelationship(String parentName, String childName) {
+       configWrapper.addRelationship(parentName, childName);
+   }
+
+   public void addRelationship(Key parentKey, Key childKey) {
+       configWrapper.addRelationship(parentKey, childKey);
+   }
+
+   public void addPrimaryKey(String pk) {
+       configWrapper.addPrimaryKey(pk);
+   }
+
+   public void addPrimaryKey(Key pk) {
+       configWrapper.addPrimaryKey(pk);
+   }
+
+   public void addConverter(String name, String converter) {
+       configWrapper.addConverter(name, converter);
+   }
+
+   public void addCollisionColumn(String columnName) {
+       configWrapper.addCollisionColumn(columnName);
+   }
+
+   public void addGeneratedPrimaryKey(String columnName) {
+       configWrapper.addGeneratedPrimaryKey(columnName);
+   }
+
+}
\ No newline at end of file

Propchange: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/BaseCommandImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/BaseCommandImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
 Wed Apr 12 13:34:33 2006
@@ -35,9 +35,9 @@
        
        private InsertCommandImpl createCommand;
 
-       private WriteCommandImpl updateCommand;
+       private UpdateCommandImpl updateCommand;
 
-       private WriteCommandImpl deleteCommand;
+       private DeleteCommandImpl deleteCommand;
 
        private static final boolean debug = false;
 
@@ -61,12 +61,12 @@
                createCommand = cmd;
        }
 
-       public void setUpdateCommand(WriteCommandImpl cmd) {
+       public void setUpdateCommand(UpdateCommandImpl cmd) {
                DebugUtil.debugln(getClass(), debug, "Setting Update Command to 
" + cmd);
                updateCommand = cmd;
        }
 
-       public void setDeleteCommand(WriteCommandImpl cmd) {
+       public void setDeleteCommand(DeleteCommandImpl cmd) {
                deleteCommand = cmd;
        }
 
@@ -115,12 +115,12 @@
                                }
                        }
                        createCommand.setConnection(connection);
-                       createCommand.mappingModel = mapping;
+                       createCommand.configWrapper = mapping;
                }
                return createCommand;
        }
 
-       private WriteCommandImpl getDeleteCommand(DataObject changedObject) {
+       private DeleteCommandImpl getDeleteCommand(DataObject changedObject) {
                
                if ( deleteCommand == null ) {
                        Table table = 
mapping.getTable(changedObject.getType().getName());
@@ -141,7 +141,7 @@
                return deleteCommand;
        }
 
-       private WriteCommandImpl getUpdateCommand(DataObject changedObject) {
+       private UpdateCommandImpl getUpdateCommand(DataObject changedObject) {
        
                if ( updateCommand == null ) {
                        Table table = 
mapping.getTableByPropertyName(changedObject.getType().getName());
@@ -162,7 +162,7 @@
                                
                        }
                        updateCommand.setConnection(connection);
-                       updateCommand.mappingModel = mapping;
+                       updateCommand.configWrapper = mapping;
                }
                DebugUtil.debugln(getClass(), debug, "Returning updateCommand: 
" + updateCommand);
                return updateCommand;

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeOperation.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeOperation.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeOperation.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeOperation.java
 Wed Apr 12 13:34:33 2006
@@ -34,12 +34,20 @@
        private static final boolean debug = false;
        
        protected String propagatedID = null;
+       
+       private boolean isInsert = false;
 
-       public ChangeOperation(WriteCommandImpl command) {
+       public ChangeOperation(DeleteCommandImpl command) {
                writeCommand = command;
        }
 
-       public ChangeOperation(WriteCommandImpl command, DataObject 
changedObject) {
+       public ChangeOperation(InsertCommandImpl command, DataObject 
changedObject) {
+               writeCommand = command;
+               dObject = new DatabaseObject(command.getMappingModel(), 
changedObject);
+               this.isInsert = true;
+       }
+       
+       public ChangeOperation(UpdateCommandImpl command, DataObject 
changedObject) {
                writeCommand = command;
                dObject = new DatabaseObject(command.getMappingModel(), 
changedObject);
        }
@@ -55,8 +63,8 @@
                }
 
                writeCommand.execute();
-        //TODO -                     Added this instanceof hack.  Brent to 
verify       
-               if (( propagatedID != null ) && (writeCommand instanceof 
InsertCommandImpl)){
+               
+               if ( isInsert && ( propagatedID != null )) { 
                        DebugUtil.debugln(getClass(), debug, "Propagating key " 
+ propagatedID);
                        int id = writeCommand.getGeneratedKey();
                        dObject.setPropagatedID(propagatedID, id);

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeSummarizer.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeSummarizer.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeSummarizer.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeSummarizer.java
 Wed Apr 12 13:34:33 2006
@@ -24,7 +24,6 @@
 import org.apache.tuscany.das.rdb.Command;
 import org.apache.tuscany.das.rdb.Key;
 import org.apache.tuscany.das.rdb.config.Column;
-import org.apache.tuscany.das.rdb.config.Config;
 import org.apache.tuscany.das.rdb.config.Relationship;
 import org.apache.tuscany.das.rdb.config.Table;
 import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
@@ -186,16 +185,19 @@
        public void addCreateCommand(Type type, Command cmd) {
                ChangeFactory cf = getRegistry().getFactory(type);
                cf.setCreateCommand((InsertCommandImpl) cmd);
+               ((CommandImpl) cmd).setConnection(connection);
        }
 
        public void addUpdateCommand(Type type, Command cmd) {
                ChangeFactory cf = getRegistry().getFactory(type);
-               cf.setUpdateCommand((WriteCommandImpl) cmd);
+               cf.setUpdateCommand((UpdateCommandImpl) cmd);
+               ((CommandImpl) cmd).setConnection(connection);
        }
 
        public void addDeleteCommand(Type type, Command cmd) {
                ChangeFactory cf = getRegistry().getFactory(type);
-               cf.setDeleteCommand((WriteCommandImpl) cmd);
+               cf.setDeleteCommand((DeleteCommandImpl) cmd);
+                ((CommandImpl) cmd).setConnection(connection);
 
        }
 
@@ -210,8 +212,12 @@
                this.connection = connection;
        }
 
-       public void setMapping(Config map) {
-               this.mapping = new MappingWrapper(map);
+       public void setMapping(MappingWrapper map) {
+               this.mapping = map;
+               
+               if ( mapping.getConfig() == null ) 
+                       return;
+       
                Iterator i = mapping.getConfig().getTable().iterator();
                while (i.hasNext()) {
                        Table t = (Table) i.next();
@@ -252,6 +258,10 @@
 
        public void addConverter(String name, String converterName) {
                mapping.addConverter(name, converterName);
+       }
+
+       public ConnectionImpl getConnection() {
+               return this.connection; 
        }
 
     

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Changes.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Changes.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Changes.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Changes.java
 Wed Apr 12 13:34:33 2006
@@ -30,8 +30,7 @@
        private UpdateList updates = new UpdateList();
        private DeleteList deletes = new DeleteList();
        
-//     private static final boolean debug = false;
-       
+
        public void addInsert(ChangeOperation c) {
                inserts.add(c);
        }

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
 Wed Apr 12 13:34:33 2006
@@ -43,11 +43,6 @@
  * ApplyChangesCommand. This factory is initialized with a configuration that
  * defines the commands it produces.
  * 
- * <p>
- * TODO - This is still underdevelopment and is likely to replace 
CommandFactory
- * as the preferred mechanism to set commands at runtime.
- * 
- * 
  */
 public class CommandGroupImpl implements CommandGroup {
 

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
 Wed Apr 12 13:34:33 2006
@@ -19,27 +19,22 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
-import java.sql.Connection;
 import java.util.List;
 
 import org.apache.tuscany.das.rdb.Command;
-import org.apache.tuscany.das.rdb.Key;
 import org.apache.tuscany.das.rdb.Parameter;
 import org.apache.tuscany.das.rdb.ResultSetShape;
-import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
 
 import commonj.sdo.DataObject;
 import commonj.sdo.Type;
 import commonj.sdo.helper.XSDHelper;
 
-public abstract class CommandImpl implements Command {
+public abstract class CommandImpl extends BaseCommandImpl implements Command {
 
        protected Statement statement;
 
        protected Parameters parameters = new Parameters();
 
-       protected MappingWrapper mappingModel = new MappingWrapper();
-
        protected static final boolean debug = false;
 
        protected ResultSetShape resultSetShape;
@@ -128,16 +123,6 @@
                return parameters.parameterWithIndex(index).getValue();
        }
 
-       public void setConnection(Connection connection) {
-               setConnection(new ConnectionImpl(connection));
-       }
-
-       public void setConnection(Connection connection, boolean 
manageTransaction) {
-               ConnectionImpl c = new ConnectionImpl(connection);
-               c.setManageTransactions(manageTransaction);
-               setConnection(c);
-       }
-
        public void setConnection(ConnectionImpl connection) {
                statement.setConnection(connection);
        }
@@ -146,29 +131,12 @@
                return statement.getConnection();
        }
 
-       public void addRelationship(String parentName, String childName) {
-               mappingModel.addRelationship(parentName, childName);
-       }
-
-       public void addRelationship(Key parentKey, Key childKey) {
-               mappingModel.addRelationship(parentKey, childKey);
-       }
-
-       public void addPrimaryKey(String pk) {
-               mappingModel.addPrimaryKey(pk);
-       }
 
-       public void addPrimaryKey(Key pk) {
-               mappingModel.addPrimaryKey(pk);
-       }
 
        public void setResultSetShape(ResultSetShape shape) {
                this.resultSetShape = shape;
        }
 
-       public void addConverter(String name, String converter) {
-               mappingModel.addConverter(name, converter);
-       }
 
        public void close() {
                statement.close();

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CreateOperation.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CreateOperation.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CreateOperation.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CreateOperation.java
 Wed Apr 12 13:34:33 2006
@@ -21,7 +21,7 @@
 
 public class CreateOperation extends ChangeOperation {
 
-       public CreateOperation(WriteCommandImpl command, DataObject 
changedObject, String ID) {
+       public CreateOperation(InsertCommandImpl command, DataObject 
changedObject, String ID) {
                super(command, changedObject);
                this.propagatedID = ID;
        }

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteOperation.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteOperation.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteOperation.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteOperation.java
 Wed Apr 12 13:34:33 2006
@@ -29,7 +29,7 @@
         * Objects deleted from the graph have lost their "settings" and must
         * be restored
         */
-       public DeleteOperation(WriteCommandImpl command, DataObject 
changedObject) {
+       public DeleteOperation(DeleteCommandImpl command, DataObject 
changedObject) {
                super(command);
                this.dObject = new 
DatabaseObject(command.getMappingModel(),DataObjectUtil.getRestoredCopy(changedObject));
 

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertList.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertList.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertList.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertList.java
 Wed Apr 12 13:34:33 2006
@@ -41,6 +41,8 @@
 
     public void add(ChangeOperation op) {
         DebugUtil.debugln(getClass(), debug, "Adding insert operation ");
+        // If nothing has been added yet, or this is no ordering, simply 
+        // add the operation to the list
         if ((order.size() == 0) || (op.getTableName() == null)) {
             insertOperations.add(op);
         } else {
@@ -62,7 +64,7 @@
                 String name = (String) i.next();
                 DebugUtil.debugln(getClass(), debug,
                         "Adding operations for table " + name);
-                // TODO - KJW added null check ... Brent to verify.
+                // A null here means a table is in the config but hasn't been 
changed here
                 if (opsByTableName.get(name) != null)
                     insertOperations.addAll((Collection) opsByTableName
                             .get(name));

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/OptimisticWriteCommandImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/OptimisticWriteCommandImpl.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/OptimisticWriteCommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/OptimisticWriteCommandImpl.java
 Wed Apr 12 13:34:33 2006
@@ -18,7 +18,7 @@
 
 import java.sql.SQLException;
 
-public class OptimisticWriteCommandImpl extends WriteCommandImpl {
+public class OptimisticWriteCommandImpl extends UpdateCommandImpl {
 
        public OptimisticWriteCommandImpl(String sqlString) {
                super(sqlString);

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
 Wed Apr 12 13:34:33 2006
@@ -102,7 +102,7 @@
 
 
                GraphBuilderMetadata gbmd = new GraphBuilderMetadata(results,
-                               getSchema(), mappingModel.getConfig(), 
resultSetShape);
+                               getSchema(), configWrapper.getConfig(), 
resultSetShape);
 
                DataGraph g = createEDataGraph(gbmd.getSchema());
                ChangeSummary summary = g.getChangeSummary();
@@ -154,7 +154,7 @@
        }
 
        private void setMappingModel(Config mapping) {
-               mappingModel = new MappingWrapper(mapping);
+               configWrapper = new MappingWrapper(mapping);
        }
 
        public void setMappingModel(InputStream stream) {
@@ -166,14 +166,14 @@
 
                 try {
                         Config config = (Config) 
helper.load(stream).getRootObject();     
-                        mappingModel = new MappingWrapper(config);
+                        configWrapper = new MappingWrapper(config);
             } catch (IOException e) {
                 throw new RuntimeException(e);
             }
         
        
-            if (mappingModel.getConfig().getConnectionProperties() != null)
-                       
setConnection(mappingModel.getConfig().getConnectionProperties());
+            if (configWrapper.getConfig().getConnectionProperties() != null)
+                       
setConnection(configWrapper.getConfig().getConnectionProperties());
 
        }
 

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateOperation.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateOperation.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateOperation.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateOperation.java
 Wed Apr 12 13:34:33 2006
@@ -22,7 +22,7 @@
 
 public class UpdateOperation extends ChangeOperation {
 
-       public UpdateOperation(WriteCommandImpl command, DataObject 
changedObject, String id) {
+       public UpdateOperation(UpdateCommandImpl command, DataObject 
changedObject, String id) {
                super(command, changedObject);
                this.propagatedID = id;
        }

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java?rev=393597&r1=393596&r2=393597&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
 Wed Apr 12 13:34:33 2006
@@ -56,7 +56,7 @@
        }
 
        public Config getMappingModel() {
-               return this.mappingModel.getConfig();
+               return configWrapper.getConfig();
        }
 
        


Reply via email to