Author: amita
Date: Mon Oct 22 22:42:42 2007
New Revision: 587397
URL: http://svn.apache.org/viewvc?rev=587397&view=rev
Log: (empty)
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java?rev=587397&r1=587396&r2=587397&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
(original)
+++
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
Mon Oct 22 22:42:42 2007
@@ -97,7 +97,18 @@
* @return
*/
public Relationship addRelationship(String parentName, String
childName) {
- return configWrapper.addRelationship(parentName, childName);
+ return addRelationship(parentName, childName, null);
+ }
+
+ /**
+ * Add relationship information
+ * @param parentName
+ * @param childName
+ * @param relationshipName
+ * @return
+ */
+ public Relationship addRelationship(String parentName, String
childName, String relationshipName) {
+ return configWrapper.addRelationship(parentName, childName,
relationshipName);
}
/**
@@ -107,9 +118,20 @@
* @return
*/
public Relationship addRelationship(Vector parentNames, Vector
childNames) {
- return configWrapper.addRelationship(parentNames, childNames);
+ return addRelationship(parentNames, childNames, null);
}
+ /**
+ * Add relationship information
+ * @param parentNames
+ * @param childNames
+ * @param relationshipName
+ * @return
+ */
+ public Relationship addRelationship(Vector parentNames, Vector
childNames, String relationshipName) {
+ return configWrapper.addRelationship(parentNames, childNames,
relationshipName);
+ }
+
/**
* Add table information
* @param name
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java?rev=587397&r1=587396&r2=587397&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
(original)
+++
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
Mon Oct 22 22:42:42 2007
@@ -162,6 +162,10 @@
}
public Relationship addRelationship(String parentName, String
childName) {
+ return addRelationship(parentName, childName, null);
+ }
+
+ public Relationship addRelationship(String parentName, String
childName, String relationshipName) {
//JIRA-952
QualifiedColumn parent = null;
@@ -179,14 +183,22 @@
Relationship r = FACTORY.createRelationship();
//JIRA-952
if(this.config.isDatabaseSchemaNameSupported()){
- r.setName(child.getSchemaName()+"."+child.getTableName());
+ if(relationshipName == null)
+ r.setName(child.getSchemaName()+"."+child.getTableName());
+ else
+ r.setName(relationshipName);
+
r.setPrimaryKeyTable(parent.getSchemaName()+"."+parent.getTableName());
r.setForeignKeyTable(child.getSchemaName()+"."+child.getTableName());
}
else{
- r.setName(child.getTableName());
- r.setPrimaryKeyTable(parent.getTableName());
- r.setForeignKeyTable(child.getTableName());
+ if(relationshipName == null)
+ r.setName(child.getTableName());
+ else
+ r.setName(relationshipName);
+
+ r.setPrimaryKeyTable(parent.getTableName());
+ r.setForeignKeyTable(child.getTableName());
}
if (this.logger.isDebugEnabled()) {
@@ -208,6 +220,10 @@
}
public Relationship addRelationship(Vector parentNames, Vector
childNames) {
+ return addRelationship(parentNames, childNames, null);
+ }
+
+ public Relationship addRelationship(Vector parentNames, Vector
childNames, String relationshipName) {
//create vector for each
if(parentNames.size() != childNames.size()){
throw new RuntimeException("Can not for relationship for
multiple keys, different sizes");
@@ -243,18 +259,26 @@
Relationship r = FACTORY.createRelationship();
//JIRA-952
- if(this.config.isDatabaseSchemaNameSupported()){
-
r.setName(((QualifiedColumn)childColumns.get(0)).getSchemaName()+"."
- +((QualifiedColumn)childColumns.get(0)).getTableName());
+ if(this.config.isDatabaseSchemaNameSupported()){
+ if(relationshipName == null)
+
r.setName(((QualifiedColumn)childColumns.get(0)).getSchemaName()+"."
+ +((QualifiedColumn)childColumns.get(0)).getTableName());
+ else
+ r.setName(relationshipName);
+
r.setPrimaryKeyTable(((QualifiedColumn)parentColumns.get(0)).getSchemaName()+"."
+((QualifiedColumn)parentColumns.get(0)).getTableName());
r.setForeignKeyTable(((QualifiedColumn)childColumns.get(0)).getSchemaName()+"."
+((QualifiedColumn)childColumns.get(0)).getTableName());
}
else{
- r.setName(((QualifiedColumn)childColumns.get(0)).getTableName());
-
r.setPrimaryKeyTable(((QualifiedColumn)parentColumns.get(0)).getTableName());
-
r.setForeignKeyTable(((QualifiedColumn)childColumns.get(0)).getTableName());
+ if(relationshipName == null)
+ r.setName(((QualifiedColumn)childColumns.get(0)).getTableName());
+ else
+ r.setName(relationshipName);
+
+
r.setPrimaryKeyTable(((QualifiedColumn)parentColumns.get(0)).getTableName());
+
r.setForeignKeyTable(((QualifiedColumn)childColumns.get(0)).getTableName());
}
if (this.logger.isDebugEnabled()) {
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java?rev=587397&r1=587396&r2=587397&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
Mon Oct 22 22:42:42 2007
@@ -20,16 +20,20 @@
import java.sql.SQLException;
import java.util.List;
+import java.util.Vector;
import org.apache.tuscany.das.rdb.Command;
import org.apache.tuscany.das.rdb.ConfigHelper;
import org.apache.tuscany.das.rdb.DAS;
import org.apache.tuscany.das.rdb.config.Config;
import org.apache.tuscany.das.rdb.config.ConnectionInfo;
+import org.apache.tuscany.das.rdb.config.Relationship;
import org.apache.tuscany.das.rdb.config.Table;
import org.apache.tuscany.das.rdb.test.data.BookData;
import org.apache.tuscany.das.rdb.test.data.CustomerData;
import org.apache.tuscany.das.rdb.test.data.OrderData;
+import org.apache.tuscany.das.rdb.test.data.OrderDetailsData;
+import org.apache.tuscany.das.rdb.test.data.OrderDetailsDescriptionData;
import org.apache.tuscany.das.rdb.test.framework.DasTest;
import org.apache.tuscany.das.rdb.util.ConfigUtil;
@@ -45,6 +49,8 @@
new BookData(getAutoConnection()).refresh();
new CustomerData(getAutoConnection()).refresh();
new OrderData(getAutoConnection()).refresh();
+ new OrderDetailsData(getAutoConnection()).refresh();
+ new OrderDetailsDescriptionData(getAutoConnection()).refresh();
}
protected void tearDown() throws Exception {
@@ -384,4 +390,43 @@
this.assertEquals ("Column PK must be qualified with a table
name and optional schema name", ex.getMessage());
}
}
+
+ public void testAddRelationshipWithName() throws Exception {
+ String statement = "SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON
CUSTOMER.ID = ANORDER.CUSTOMER_ID WHERE CUSTOMER.ID = 1";
+
+ // Read some customers and related orders
+ // Create relationship config programmatically
+ ConfigHelper helper = new ConfigHelper();
+ helper.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID",
"orders");
+ DAS das = DAS.FACTORY.createDAS(helper.getConfig(),
getConnection());
+ Command select = das.createCommand(statement);
+
+ DataObject root = select.executeQuery();
+ DataObject customer = root.getDataObject("CUSTOMER[1]");
+
+ assertEquals(2, customer.getList("orders").size());
+ }
+
+ public void testAddRelationshipMultiKeyWithName() throws Exception {
+ ConfigHelper helper = new ConfigHelper();
+ Vector parentColumnNames = new Vector();
+ Vector childColumnNames = new Vector();
+
+ parentColumnNames.add(0, "ORDERDETAILS.ORDERID");
+ parentColumnNames.add(1, "ORDERDETAILS.PRODUCTID");
+
+ childColumnNames.add(0, "ORDERDETAILSDESC.ORDERID");
+ childColumnNames.add(1, "ORDERDETAILSDESC.PRODUCTID");
+
+ Relationship r = helper.addRelationship(parentColumnNames,
childColumnNames, "ord_dets");
+
+ DAS das = DAS.FACTORY.createDAS(helper.getConfig(),
getConnection());
+ Command select = das.createCommand("SELECT * FROM ORDERDETAILS
LEFT JOIN ORDERDETAILSDESC ON ORDERDETAILS.ORDERID =
ORDERDETAILSDESC.ORDERID " +
+ " AND ORDERDETAILS.PRODUCTID =
ORDERDETAILSDESC.PRODUCTID");
+
+ DataObject root = select.executeQuery();
+ DataObject ordDet1 = root.getDataObject("ORDERDETAILS[1]");
+ assertEquals(2, ordDet1.getList("ord_dets").size());
+
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]