Hi,

A gentle reminder for your first commit: Adding some text as the commit log will help us understand what the changes are about.

Thanks,
Raymond

----- Original Message ----- From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, October 22, 2007 10:42 PM
Subject: svn commit: r587397 - in /incubator/tuscany/java/das/rdb/src: main/java/org/apache/tuscany/das/rdb/ main/java/org/apache/tuscany/das/rdb/config/wrapper/ test/java/org/apache/tuscany/das/rdb/test/


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]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to