Author: ppoddar
Date: Wed Sep 30 15:47:45 2009
New Revision: 820307

URL: http://svn.apache.org/viewvc?rev=820307&view=rev
Log:
OPENJPA-1276: Compound selection, JOIN clause rendering

Modified:
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompoundSelections.java
 Wed Sep 30 15:47:45 2009
@@ -103,6 +103,17 @@
             }
             return buffer;
         }
+        
+        @Override
+        public StringBuilder asProjection(AliasContext q) {
+            StringBuilder buffer = new StringBuilder();
+            for (int i = 0; i < _args.size(); i++) {
+                
buffer.append((((CriteriaExpression)_args.get(i)).asProjection(q)));
+                if (i+1 != _args.size())
+                    buffer.append(", ");
+            }
+            return buffer;
+        }
     }
     
     /**

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
 Wed Sep 30 15:47:45 2009
@@ -681,7 +681,7 @@
     private void renderJoins(StringBuilder buffer, Collection<Join<?,?>> 
joins) {
         if (joins == null) return;
         for (Join j : joins) {
-            buffer.append(((ExpressionImpl<?>)j).asVariable(this)).append(" ");
+            buffer.append(((CriteriaExpression)j).asVariable(this)).append(" 
");
             renderJoins(buffer, j.getJoins());
             renderFetches(buffer, j.getFetches());
         }

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
 Wed Sep 30 15:47:45 2009
@@ -249,14 +249,7 @@
         
         @Override
         public StringBuilder asVariable(AliasContext q) {
-            String varName = "?";
-            Value var = q.getRegisteredVariable(this);
-            if (var == null) {
-                varName = ""+_member.fmd.getName().charAt(0);
-            } else {
-                varName = var.getName();
-            }
-            return new StringBuilder(" " + joinType + " JOIN 
").append(super.asVariable(q)).append(" " + varName);
+            return new StringBuilder(" " + joinType + " JOIN 
").append(super.asVariable(q));
         }
     }
     
@@ -432,6 +425,11 @@
                 return var;
             return getVariableForCorrPath((SubqueryImpl<?>)parent, path);
         }
+        
+        @Override
+        public StringBuilder asVariable(AliasContext q) {
+            return new StringBuilder(" " + joinType + " JOIN 
").append(super.asVariable(q));
+        }
     }
     
     /**
@@ -441,7 +439,7 @@
      * @param <E> the type of the the collection attribute elements
      */
     static class Collection<Z,E> extends 
AbstractCollection<Z,java.util.Collection<E>,E> 
-        implements CollectionJoin<Z,E>{
+        implements CollectionJoin<Z,E> {
         public Collection(FromImpl<?,Z> parent, 
Members.CollectionAttributeImpl<? super Z, E> member, JoinType jt) {
             super(parent, member, jt);
         }

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java?rev=820307&r1=820306&r2=820307&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SelectionImpl.java
 Wed Sep 30 15:47:45 2009
@@ -139,7 +139,7 @@
         throw new IllegalStateException(this.getClass().getSimpleName() + " 
can not be rendered as variable");
     }
     
-    public final StringBuilder asProjection(AliasContext q) {
+    public StringBuilder asProjection(AliasContext q) {
         String as = (isAutoAliased() ? "" : " AS " + getAlias());
         return asValue(q).append(as);
     }


Reply via email to