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