Author: aadamchik
Date: Sat Oct 25 13:49:35 2008
New Revision: 707906

URL: http://svn.apache.org/viewvc?rev=707906&view=rev
Log:
CAY-1128 Switch JOINT prefetches to generate OUTER Joins

support for optional relationships prefetching

Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java?rev=707906&r1=707905&r2=707906&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
 Sat Oct 25 13:49:35 2008
@@ -179,24 +179,8 @@
                     .getDbRelationships()
                     .get(0);
             for (final DbJoin join : r.getJoins()) {
-
-                PrefetchProcessorNode parent = (PrefetchProcessorNode) 
getParent();
-                String source;
-                if (parent instanceof PrefetchProcessorJointNode) {
-                    source = ((PrefetchProcessorJointNode) 
parent).sourceForTarget(join
-                            .getSourceName());
-                }
-                else {
-                    source = join.getSourceName();
-                }
-
-                if (source == null) {
-                    throw new CayenneRuntimeException(
-                            "Propagated column value is not configured for 
parent node. Join: "
-                                    + join);
-                }
-
-                appendColumn(targetSource, join.getTargetName(), prefix + 
source);
+                appendColumn(targetSource, join.getTargetName(), prefix
+                        + join.getTargetName());
             }
         }
 
@@ -210,7 +194,7 @@
         // add relationships
         for (ObjRelationship rel : 
getResolver().getEntity().getRelationships()) {
             DbRelationship dbRel = rel.getDbRelationships().get(0);
-            for (DbAttribute attribute : dbRel.getSourceAttributes() ){
+            for (DbAttribute attribute : dbRel.getSourceAttributes()) {
                 String target = attribute.getName();
 
                 appendColumn(targetSource, target, prefix + target);
@@ -228,7 +212,10 @@
         targetSource.values().toArray(columns);
     }
 
-    private ColumnDescriptor appendColumn(Map<String, ColumnDescriptor> map, 
String name, String label) {
+    private ColumnDescriptor appendColumn(
+            Map<String, ColumnDescriptor> map,
+            String name,
+            String label) {
         ColumnDescriptor column = map.get(name);
 
         if (column == null) {
@@ -273,20 +260,4 @@
             }
         }
     }
-
-    /**
-     * Returns a source label for a given target label.
-     */
-    private String sourceForTarget(String targetColumn) {
-        if (targetColumn != null && columns != null) {
-            for (ColumnDescriptor column : columns) {
-                if (targetColumn.equals(column.getName())) {
-                    return column.getLabel();
-                }
-            }
-        }
-
-        return null;
-    }
-
 }


Reply via email to