Author: bdaniel
Date: Tue Nov 7 12:43:53 2006
New Revision: 472243
URL: http://svn.apache.org/viewvc?view=rev&rev=472243
Log:
TUSCANY-905 Fix code generation when foreign key property name mapping is used
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/TableWrapper.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/TableWrapper.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/TableWrapper.java?view=diff&rev=472243&r1=472242&r2=472243
==============================================================================
---
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/TableWrapper.java
(original)
+++
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/TableWrapper.java
Tue Nov 7 12:43:53 2006
@@ -37,6 +37,10 @@
public String getTypeName() {
return table.getTypeName() == null ? table.getTableName() :
table.getTypeName();
}
+
+ public String getTableName() {
+ return table.getTableName();
+ }
public Collection getPrimaryKeyNames() {
List pkNames = new ArrayList();
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java?view=diff&rev=472243&r1=472242&r2=472243
==============================================================================
---
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
(original)
+++
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
Tue Nov 7 12:43:53 2006
@@ -52,7 +52,7 @@
StringBuffer statement = new StringBuffer("insert into ");
statement.append(t.getTableName());
- Iterator i = getAttributeProperties(changedObject, config).iterator();
+ Iterator i = getAttributeProperties(changedObject, config,
table).iterator();
List attributes = new ArrayList();
List generatedKeys = new ArrayList();
@@ -110,7 +110,7 @@
}
- private List getAttributeProperties(DataObject obj, MappingWrapper config)
{
+ private List getAttributeProperties(DataObject obj, MappingWrapper config,
TableWrapper tw) {
List fields = new ArrayList();
Iterator i = obj.getType().getProperties().iterator();
while (i.hasNext()) {
@@ -123,12 +123,13 @@
if (obj.isSet(p)) {
Relationship relationship =
config.getRelationshipByReference(p);
if ((p.getOpposite() != null && p.getOpposite().isMany())
- || (hasState(config, relationship, obj))) {
+ || (hasState(tw, relationship, obj))) {
RelationshipWrapper r = new
RelationshipWrapper(relationship);
Iterator keys = r.getForeignKeys().iterator();
while (keys.hasNext()) {
String key = (String) keys.next();
- Property keyProp = obj.getType().getProperty(key);
+ String keyProperty =
config.getColumnPropertyName(tw.getTableName(), key);
+ Property keyProp =
obj.getType().getProperty(keyProperty);
fields.add(keyProp);
}
}
@@ -141,13 +142,12 @@
}
- private boolean hasState(MappingWrapper config, Relationship rel,
DataObject changedObject) {
+ private boolean hasState(TableWrapper tw, Relationship rel, DataObject
changedObject) {
if (!rel.isMany()) {
- Table t =
config.getTableByTypeName(changedObject.getType().getName());
- TableWrapper tw = new TableWrapper(t);
+
RelationshipWrapper rw = new RelationshipWrapper(rel);
- if ((rel.getForeignKeyTable().equals(t.getTableName()))
+ if ((rel.getForeignKeyTable().equals(tw.getTableName()))
&& (Collections.disjoint(tw.getPrimaryKeyProperties(),
rw.getForeignKeys()))) {
return true;
}
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java?view=diff&rev=472243&r1=472242&r2=472243
==============================================================================
---
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
Tue Nov 7 12:43:53 2006
@@ -60,7 +60,7 @@
statement.append(" set ");
ChangeSummary summary =
changedObject.getDataGraph().getChangeSummary();
- List changedFields = getChangedFields(mapping, summary, changedObject);
+ List changedFields = getChangedFields(mapping, summary, changedObject,
tableWrapper);
Iterator i = changedFields.iterator();
int idx = 1;
@@ -161,7 +161,7 @@
- private List getChangedFields(MappingWrapper mapping, ChangeSummary
summary, DataObject obj) {
+ private List getChangedFields(MappingWrapper config, ChangeSummary
summary, DataObject obj, TableWrapper tw) {
List changes = new ArrayList();
Iterator i = summary.getOldValues(obj).iterator();
while (i.hasNext()) {
@@ -172,13 +172,14 @@
} else {
Property ref = setting.getProperty();
if (!ref.isMany()) {
- RelationshipWrapper r = new
RelationshipWrapper(mapping.getRelationshipByReference(ref));
+ RelationshipWrapper r = new
RelationshipWrapper(config.getRelationshipByReference(ref));
Iterator keys = r.getForeignKeys().iterator();
while (keys.hasNext()) {
String key = (String) keys.next();
- Property p = obj.getType().getProperty(key);
- changes.add(p);
+ String keyProperty =
config.getColumnPropertyName(tw.getTableName(), key);
+ Property keyProp =
obj.getType().getProperty(keyProperty);
+ changes.add(keyProp);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]