You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2013/03/15 19:29:23 UTC

svn commit: r1457050 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne: access/trans/SelectTranslator.java exp/parser/ASTPath.java

Author: aadamchik
Date: Fri Mar 15 18:29:23 2013
New Revision: 1457050

URL: http://svn.apache.org/r1457050
Log:
CAY-1803  Define toString() in path expressions

and now actually rewriting the select ranslator to avoid toString that can theoretically return anything

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java?rev=1457050&r1=1457049&r2=1457050&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java Fri Mar 15 18:29:23 2013
@@ -33,6 +33,7 @@ import org.apache.cayenne.CayenneRuntime
 import org.apache.cayenne.access.jdbc.ColumnDescriptor;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.exp.Expression;
+import org.apache.cayenne.exp.parser.ASTDbPath;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
@@ -391,7 +392,7 @@ public class SelectTranslator extends Qu
             // for each relationship path add PK of the target entity...
             for (String path : ((PrefetchSelectQuery) query).getResultPaths()) {
 
-                Expression pathExp = oe.translateToDbPath(Expression.fromString(path));
+                ASTDbPath pathExp = (ASTDbPath) oe.translateToDbPath(Expression.fromString(path));
 
                 // add joins and find terminating element
 
@@ -415,7 +416,7 @@ public class SelectTranslator extends Qu
 
                     if (relationship != null) {
 
-                        String labelPrefix = pathExp.toString().substring("db:".length());
+                        String labelPrefix = pathExp.getPath();
                         DbEntity targetEntity = (DbEntity) relationship.getTargetEntity();
 
                         for (DbAttribute pk : targetEntity.getPrimaryKeys()) {
@@ -438,7 +439,7 @@ public class SelectTranslator extends Qu
                 // for each prefetch add all joins plus columns from the target
                 // entity
                 Expression prefetchExp = Expression.fromString(prefetch.getPath());
-                Expression dbPrefetch = oe.translateToDbPath(prefetchExp);
+                ASTDbPath dbPrefetch = (ASTDbPath) oe.translateToDbPath(prefetchExp);
 
                 resetJoinStack();
                 DbRelationship r = null;
@@ -465,7 +466,7 @@ public class SelectTranslator extends Qu
                 Iterator<ObjAttribute> targetObjAttrs = (Iterator<ObjAttribute>) targetRel.getTargetEntity()
                         .getAttributes().iterator();
 
-                String labelPrefix = dbPrefetch.toString().substring("db:".length());
+                String labelPrefix = dbPrefetch.getPath();
                 while (targetObjAttrs.hasNext()) {
                     ObjAttribute oa = targetObjAttrs.next();
                     Iterator<CayenneMapEntry> dbPathIterator = oa.getDbPathIterator();

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java?rev=1457050&r1=1457049&r2=1457050&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java Fri Mar 15 18:29:23 2013
@@ -66,7 +66,7 @@ public abstract class ASTPath extends Si
         this.path = (path != null) ? path.toString() : null;
     }
 
-    protected String getPath() {
+    public String getPath() {
         return path;
     }