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