You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2009/09/30 17:47:46 UTC

svn commit: r820307 - in /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria: CompoundSelections.java CriteriaQueryImpl.java Joins.java SelectionImpl.java

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);
     }