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();
}