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 2008/12/26 11:30:06 UTC
svn commit: r729476 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src:
main/java/org/apache/cayenne/access/
main/java/org/apache/cayenne/access/jdbc/
main/java/org/apache/cayenne/access/select/
main/java/org/apache/cayenne/cache/ main/j...
Author: aadamchik
Date: Fri Dec 26 02:30:04 2008
New Revision: 729476
URL: http://svn.apache.org/viewvc?rev=729476&view=rev
Log:
CAY-1162 SelectDescriptor concept
refactoring of custom SQL result descriptors to remove some overengineered structures and make descriptors more usable
Added:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultEntityResultSegment.java
- copied, changed from r729459, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultEntityResultSegment.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultScalarResultSegment.java
- copied, changed from r729459, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultScalarResultSegment.java
Removed:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultEntityResultSegment.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultResultSetMetadata.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultScalarResultSegment.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SQLResultSetMetadata.java
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/CompoundSelectDescriptor.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/EntitySegmentBuilder.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/ScalarSegmentBuilder.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/SelectDescriptorBuilder.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/SQLResult.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/EJBQLQueryMetadata.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplateMetadata.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQuery.java Fri Dec 26 02:30:04 2008
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.cayenne.access;
+import java.util.List;
import java.util.Map;
import org.apache.cayenne.map.DataMap;
@@ -32,7 +33,6 @@
import org.apache.cayenne.query.QueryRouter;
import org.apache.cayenne.query.SQLAction;
import org.apache.cayenne.query.SQLActionVisitor;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
@@ -51,7 +51,7 @@
return this;
}
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return null;
}
@@ -73,7 +73,7 @@
public String getCacheKey() {
return null;
}
-
+
public Map<String, String> getPathSplitAliases() {
return null;
}
@@ -104,7 +104,7 @@
public int getFetchOffset() {
return 0;
}
-
+
/**
* @deprecated since 3.0
*/
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java Fri Dec 26 02:30:04 2008
@@ -37,10 +37,10 @@
import org.apache.cayenne.cache.QueryCacheEntryFactory;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.LifecycleEvent;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
+import org.apache.cayenne.query.EntityResultSegment;
import org.apache.cayenne.query.ObjectIdQuery;
import org.apache.cayenne.query.PrefetchSelectQuery;
import org.apache.cayenne.query.PrefetchTreeNode;
@@ -50,7 +50,6 @@
import org.apache.cayenne.query.QueryRouter;
import org.apache.cayenne.query.RefreshQuery;
import org.apache.cayenne.query.RelationshipQuery;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.reflect.ClassDescriptor;
import org.apache.cayenne.reflect.LifecycleCallbackRegistry;
import org.apache.cayenne.util.GenericResponse;
@@ -434,20 +433,19 @@
ObjectConversionStrategy converter;
- SQLResultSetMetadata rsMapping = metadata.getResultSetMapping();
+ List<Object> rsMapping = metadata.getResultSetMapping();
if (rsMapping == null) {
converter = new SingleObjectConversionStrategy();
}
else {
- int entityResultCount = rsMapping.getEntitySegments().length;
- int columnResultCount = rsMapping.getScalarSegments().length;
-
- if (entityResultCount == 1 && columnResultCount == 0) {
- converter = new SingleObjectConversionStrategy();
- }
- else if (entityResultCount == 0 && columnResultCount == 1) {
- converter = new SingleScalarConversionStrategy();
+ if (rsMapping.size() == 1) {
+ if (rsMapping.get(0) instanceof EntityResultSegment) {
+ converter = new SingleObjectConversionStrategy();
+ }
+ else {
+ converter = new SingleScalarConversionStrategy();
+ }
}
else {
converter = new MixedConversionStrategy();
@@ -681,29 +679,25 @@
int rowsLen = mainRows.size();
- SQLResultSetMetadata rsMapping = metadata.getResultSetMapping();
+ List<Object> rsMapping = metadata.getResultSetMapping();
+ int width = rsMapping.size();
// no conversions needed for scalar positions; reuse Object[]'s to fill them
// with resolved objects
+ List<List<?>> resultLists = new ArrayList<List<?>>(width);
+ for (int i = 0; i < width; i++) {
- int[] entityPositions = rsMapping.getEntitySegments();
- EntityResolver resolver = domain.getEntityResolver();
- List[] resultLists = new List[entityPositions.length];
- for (int i = 0; i < entityPositions.length; i++) {
- int pos = entityPositions[i];
-
- List<Persistent> nextResult = toObjects(rsMapping
- .getEntitySegment(pos)
- .getClassDescriptor(), null, mainRows, pos);
-
- resultLists[i] = nextResult;
- }
-
- for (int j = 0; j < rowsLen; j++) {
-
- Object[] row = mainRows.get(j);
- for (int i = 0; i < entityPositions.length; i++) {
- row[entityPositions[i]] = resultLists[i].get(j);
+ if (rsMapping.get(i) instanceof EntityResultSegment) {
+ EntityResultSegment entitySegment = (EntityResultSegment) rsMapping
+ .get(i);
+ List<Persistent> nextResult = toObjects(entitySegment
+ .getClassDescriptor(), null, mainRows, i);
+ resultLists.add(nextResult);
+
+ for (int j = 0; j < rowsLen; j++) {
+ Object[] row = mainRows.get(j);
+ row[i] = nextResult.get(j);
+ }
}
}
@@ -713,10 +707,8 @@
.getCallbackRegistry();
if (!callbackRegistry.isEmpty(LifecycleEvent.POST_LOAD)) {
- for (int i = 0; i < entityPositions.length; i++) {
- callbackRegistry.performCallbacks(
- LifecycleEvent.POST_LOAD,
- resultLists[i]);
+ for (List<?> list : resultLists) {
+ callbackRegistry.performCallbacks(LifecycleEvent.POST_LOAD, list);
}
}
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectStore.java Fri Dec 26 02:30:04 2008
@@ -54,7 +54,6 @@
import org.apache.cayenne.query.QueryCacheStrategy;
import org.apache.cayenne.query.QueryMetadata;
import org.apache.cayenne.query.RefreshQuery;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.reflect.AttributeProperty;
import org.apache.cayenne.reflect.ClassDescriptor;
import org.apache.cayenne.reflect.PropertyVisitor;
@@ -406,8 +405,8 @@
}
/**
- * Updates snapshots in the underlying DataRowStore. If <code>refresh</code> is
- * true, all snapshots in <code>snapshots</code> will be loaded into DataRowStore,
+ * Updates snapshots in the underlying DataRowStore. If <code>refresh</code> is true,
+ * all snapshots in <code>snapshots</code> will be loaded into DataRowStore,
* regardless of the existing cache state. If <code>refresh</code> is false, only
* missing snapshots are loaded. This method is normally called internally by the
* DataContext owning the ObjectStore to update the caches after a select query.
@@ -1161,7 +1160,7 @@
return cacheKey;
}
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return null;
}
@@ -1196,7 +1195,7 @@
public int getFetchOffset() {
return 0;
}
-
+
/**
* @deprecated since 3.0
*/
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLTranslationContext.java Fri Dec 26 02:30:04 2008
@@ -31,8 +31,8 @@
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.query.EJBQLQuery;
import org.apache.cayenne.query.EntityResultSegment;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.query.SQLTemplate;
+import org.apache.cayenne.query.ScalarResultSegment;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
@@ -46,7 +46,7 @@
private Map<Object, Object> parameters;
private EJBQLTranslatorFactory translatorFactory;
private EntityResolver entityResolver;
- private SQLResultSetMetadata resultSetMetadata;
+ private List<Object> resultSetMetadata;
private Map<String, String> tableAliases;
private Map<String, Object> boundParameters;
@@ -387,7 +387,7 @@
"No result set mapping exists for expression, can't map EntityResult");
}
- return resultSetMetadata.getEntitySegment(resultDescriptorPosition++);
+ return (EntityResultSegment) resultSetMetadata.get(resultDescriptorPosition++);
}
/**
@@ -400,7 +400,8 @@
"No result set mapping exists for expression, can't map column aliases");
}
- return resultSetMetadata.getScalarSegment(resultDescriptorPosition++).getColumn();
+ return ((ScalarResultSegment) resultSetMetadata.get(resultDescriptorPosition++))
+ .getColumn();
}
boolean isAppendingResultColumns() {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java Fri Dec 26 02:30:04 2008
@@ -31,7 +31,7 @@
import org.apache.cayenne.access.ResultIterator;
import org.apache.cayenne.query.EntityResultSegment;
import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.query.SQLResultSetMetadata;
+import org.apache.cayenne.query.ScalarResultSegment;
/**
* A ResultIterator over the underlying JDBC ResultSet.
@@ -86,37 +86,42 @@
RowDescriptor descriptor,
QueryMetadata queryMetadata) {
- SQLResultSetMetadata rsMapping = queryMetadata.getResultSetMapping();
+ List<Object> rsMapping = queryMetadata.getResultSetMapping();
if (rsMapping != null) {
- int resultWidth = rsMapping.getSegmentsCount();
- int[] entitySegments = rsMapping.getEntitySegments();
- int[] scalarSegments = rsMapping.getScalarSegments();
-
+ int resultWidth = rsMapping.size();
if (resultWidth == 0) {
throw new CayenneRuntimeException("Empty result descriptor");
}
else if (resultWidth == 1) {
- if (entitySegments.length > 0) {
- return createEntityRowReader(descriptor, rsMapping
- .getEntitySegment(0));
+ Object segment = rsMapping.get(0);
+
+ if (segment instanceof EntityResultSegment) {
+ return createEntityRowReader(
+ descriptor,
+ (EntityResultSegment) segment);
}
else {
- return new ScalarRowReader(descriptor, rsMapping.getScalarSegment(0));
+ return new ScalarRowReader(descriptor, (ScalarResultSegment) segment);
}
}
else {
CompoundRowReader reader = new CompoundRowReader(resultWidth);
- for (int i : entitySegments) {
- reader.addRowReader(i, createEntityRowReader(descriptor, rsMapping
- .getEntitySegment(i)));
- }
+ for (int i = 0; i < resultWidth; i++) {
+ Object segment = rsMapping.get(i);
- for (int i : scalarSegments) {
- reader.addRowReader(i, new ScalarRowReader(descriptor, rsMapping
- .getScalarSegment(i)));
+ if (segment instanceof EntityResultSegment) {
+ reader.addRowReader(i, createEntityRowReader(
+ descriptor,
+ (EntityResultSegment) segment));
+ }
+ else {
+ reader.addRowReader(i, new ScalarRowReader(
+ descriptor,
+ (ScalarResultSegment) segment));
+ }
}
return reader;
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/CompoundSelectDescriptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/CompoundSelectDescriptor.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/CompoundSelectDescriptor.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/CompoundSelectDescriptor.java Fri Dec 26 02:30:04 2008
@@ -33,12 +33,8 @@
private CompoundRowReader rowReader;
private List<SelectColumn> columns;
- CompoundSelectDescriptor(int width) {
- this.segments = new SelectDescriptor[width];
- }
-
- void append(int position, SelectDescriptor<Object> segmentDescriptor) {
- segments[position] = segmentDescriptor;
+ CompoundSelectDescriptor(SelectDescriptor<Object>[] segments) {
+ this.segments = segments;
}
public List<SelectColumn> getColumns() {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/EntitySegmentBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/EntitySegmentBuilder.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/EntitySegmentBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/EntitySegmentBuilder.java Fri Dec 26 02:30:04 2008
@@ -35,7 +35,6 @@
import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.query.EntityResultSegment;
import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
@@ -56,9 +55,9 @@
ClassDescriptor rootDescriptor;
EntityResultSegment segmentMetadata;
- SQLResultSetMetadata resultSetMetadata = metadata.getResultSetMapping();
- if (resultSetMetadata != null) {
- segmentMetadata = resultSetMetadata.getEntitySegment(position);
+ List<Object> segmentDesriptors = metadata.getResultSetMapping();
+ if (segmentDesriptors != null) {
+ segmentMetadata = (EntityResultSegment) segmentDesriptors.get(position);
rootDescriptor = segmentMetadata.getClassDescriptor();
}
else {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/ScalarSegmentBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/ScalarSegmentBuilder.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/ScalarSegmentBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/ScalarSegmentBuilder.java Fri Dec 26 02:30:04 2008
@@ -18,9 +18,10 @@
****************************************************************/
package org.apache.cayenne.access.select;
+import java.util.List;
+
import org.apache.cayenne.access.types.ExtendedType;
import org.apache.cayenne.access.types.ExtendedTypeMap;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.query.ScalarResultSegment;
/**
@@ -28,16 +29,17 @@
*/
class ScalarSegmentBuilder {
- private SQLResultSetMetadata metadata;
+ private List<Object> resultDescriptors;
private ExtendedType converter;
- ScalarSegmentBuilder(ExtendedTypeMap extendedTypes, SQLResultSetMetadata metadata) {
+ ScalarSegmentBuilder(ExtendedTypeMap extendedTypes, List<Object> resultDescriptors) {
this.converter = extendedTypes.getDefaultType();
- this.metadata = metadata;
+ this.resultDescriptors = resultDescriptors;
}
SelectDescriptor<Object> getSegment(int position) {
- ScalarResultSegment segment = metadata.getScalarSegment(position);
+ ScalarResultSegment segment = (ScalarResultSegment) resultDescriptors
+ .get(position);
return new ScalarSegment(segment.getColumn(), converter);
}
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/SelectDescriptorBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/SelectDescriptorBuilder.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/SelectDescriptorBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/select/SelectDescriptorBuilder.java Fri Dec 26 02:30:04 2008
@@ -18,10 +18,12 @@
****************************************************************/
package org.apache.cayenne.access.select;
+import java.util.List;
+
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.types.ExtendedTypeMap;
+import org.apache.cayenne.query.EntityResultSegment;
import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.query.SQLResultSetMetadata;
/**
* A class used as a builder of SelectDescriptors of any complexity.
@@ -41,75 +43,67 @@
public SelectDescriptor<?> fromQueryMetadata(QueryMetadata queryMetadata) {
- int resultWidth;
- int[] entitySegments;
- int[] scalarSegments;
-
- // No metadata mapping means a single entity result...
- SQLResultSetMetadata resultSetMetadata = queryMetadata.getResultSetMapping();
- if (resultSetMetadata != null) {
- resultWidth = resultSetMetadata.getSegmentsCount();
- entitySegments = resultSetMetadata.getEntitySegments();
- scalarSegments = resultSetMetadata.getScalarSegments();
- }
- else {
- resultWidth = 1;
- entitySegments = new int[] {
- 0
- };
- scalarSegments = new int[0];
- }
+ List<Object> segmentDescriptors = queryMetadata.getResultSetMapping();
+ int resultWidth = segmentDescriptors != null ? segmentDescriptors.size() : 1;
if (resultWidth == 0) {
throw new CayenneRuntimeException("Empty result descriptor");
}
+ int entitySegments = 0, scalarSegments = 0;
+ SelectDescriptor<Object>[] segments = new SelectDescriptor[resultWidth];
+
+ if (segmentDescriptors == null) {
+ segments[0] = getEntitySegmentBuilder(queryMetadata).getSegment(0);
+ entitySegments++;
+ }
+ else {
+ for (int i = 0; i < resultWidth; i++) {
+
+ Object segmentDescriptor = segmentDescriptors.get(i);
+
+ if (segmentDescriptor instanceof EntityResultSegment) {
+ segments[i] = getEntitySegmentBuilder(queryMetadata).getSegment(i);
+ entitySegments++;
+ }
+ else {
+ segments[i] = getScalarSegmentBuilder(segmentDescriptors).getSegment(
+ i);
+ scalarSegments++;
+ }
+ }
+ }
+
// sanity check - paginated queries are only possible if there is an "id" of each
// row. for now this means single entity queries...
if (queryMetadata.getPageSize() > 0) {
- if (entitySegments.length != 1 || scalarSegments.length != 0) {
+ if (entitySegments != 1 || scalarSegments != 0) {
throw new CayenneRuntimeException(
"Paginated queries are only supported for a single entity result");
}
}
- if (scalarSegments.length > 0) {
- scalarSegmentBuilder = createScalarSegmentBuilder(resultSetMetadata);
- }
-
- if (entitySegments.length > 0) {
- entitySegmentBuilder = createEntitySegmentBuilder(queryMetadata);
- }
-
// do some small optimizations for the common 1 segment results...
if (resultWidth == 1) {
- if (entitySegments.length > 0) {
- return entitySegmentBuilder.getSegment(0);
- }
- else {
- return scalarSegmentBuilder.getSegment(0);
- }
- }
-
- CompoundSelectDescriptor compoundDescriptor = new CompoundSelectDescriptor(
- resultWidth);
-
- for (int i : entitySegments) {
- compoundDescriptor.append(i, entitySegmentBuilder.getSegment(i));
- }
-
- for (int i : scalarSegments) {
- compoundDescriptor.append(i, scalarSegmentBuilder.getSegment(i));
+ return segments[0];
}
- return compoundDescriptor;
+ return new CompoundSelectDescriptor(segments);
}
- protected EntitySegmentBuilder createEntitySegmentBuilder(QueryMetadata queryMetadata) {
- return new EntitySegmentBuilder(extendedTypes, queryMetadata);
+ protected EntitySegmentBuilder getEntitySegmentBuilder(QueryMetadata queryMetadata) {
+ if (entitySegmentBuilder == null) {
+ entitySegmentBuilder = new EntitySegmentBuilder(extendedTypes, queryMetadata);
+ }
+ return entitySegmentBuilder;
}
- protected ScalarSegmentBuilder createScalarSegmentBuilder(SQLResultSetMetadata md) {
- return new ScalarSegmentBuilder(extendedTypes, md);
+ protected ScalarSegmentBuilder getScalarSegmentBuilder(List<Object> segmentDescriptors) {
+ if (scalarSegmentBuilder == null) {
+ scalarSegmentBuilder = new ScalarSegmentBuilder(
+ extendedTypes,
+ segmentDescriptors);
+ }
+ return scalarSegmentBuilder;
}
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/cache/NestedQueryCache.java Fri Dec 26 02:30:04 2008
@@ -29,7 +29,6 @@
import org.apache.cayenne.query.Query;
import org.apache.cayenne.query.QueryCacheStrategy;
import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
@@ -164,7 +163,7 @@
public int getFetchOffset() {
return mdDelegate.getFetchOffset();
}
-
+
/**
* @deprecated since 3.0
*/
@@ -187,7 +186,7 @@
public PrefetchTreeNode getPrefetchTree() {
return mdDelegate.getPrefetchTree();
}
-
+
public Map<String, String> getPathSplitAliases() {
return mdDelegate.getPathSplitAliases();
}
@@ -196,7 +195,7 @@
return mdDelegate.getProcedure();
}
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return mdDelegate.getResultSetMapping();
}
Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultEntityResultSegment.java (from r729459, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultEntityResultSegment.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultEntityResultSegment.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultEntityResultSegment.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultEntityResultSegment.java&r1=729459&r2=729476&rev=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultEntityResultSegment.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultEntityResultSegment.java Fri Dec 26 02:30:04 2008
@@ -16,10 +16,11 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.query;
+package org.apache.cayenne.map;
import java.util.Map;
+import org.apache.cayenne.query.EntityResultSegment;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultScalarResultSegment.java (from r729459, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultScalarResultSegment.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultScalarResultSegment.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultScalarResultSegment.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultScalarResultSegment.java&r1=729459&r2=729476&rev=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultScalarResultSegment.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DefaultScalarResultSegment.java Fri Dec 26 02:30:04 2008
@@ -16,7 +16,9 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.query;
+package org.apache.cayenne.map;
+
+import org.apache.cayenne.query.ScalarResultSegment;
/**
* @since 3.0
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/SQLResult.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/SQLResult.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/SQLResult.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/SQLResult.java Fri Dec 26 02:30:04 2008
@@ -21,6 +21,9 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
+
+import org.apache.cayenne.reflect.ClassDescriptor;
/**
* A metadata object that defines how a row in a result set can be converted to result
@@ -41,6 +44,49 @@
}
+ public List<Object> getResolvedComponents(EntityResolver resolver) {
+
+ if (resultDescriptors == null) {
+ return Collections.emptyList();
+ }
+
+ List<Object> resolvedComponents = new ArrayList<Object>(resultDescriptors.size());
+
+ int offset = 0;
+ for (Object component : getComponents()) {
+ if (component instanceof String) {
+ resolvedComponents.add(new DefaultScalarResultSegment(
+ (String) component,
+ offset));
+ offset = offset + 1;
+ }
+ else if (component instanceof EntityResult) {
+ EntityResult entityResult = (EntityResult) component;
+ Map<String, String> fields = entityResult.getDbFields(resolver);
+
+ String entityName = entityResult.getEntityName();
+ if (entityName == null) {
+ entityName = resolver
+ .lookupObjEntity(entityResult.getEntityClass())
+ .getName();
+ }
+
+ ClassDescriptor classDescriptor = resolver.getClassDescriptor(entityName);
+ resolvedComponents.add(new DefaultEntityResultSegment(
+ classDescriptor,
+ fields,
+ offset));
+ offset = offset + fields.size();
+ }
+ else {
+ throw new IllegalArgumentException(
+ "Unsupported result descriptor component: " + component);
+ }
+ }
+
+ return resolvedComponents;
+ }
+
/**
* Creates a named SQLResultSet.
*/
@@ -57,8 +103,9 @@
}
/**
- * Returns a list of result descriptors. Column descriptors are returned as Strings,
- * entity descriptors - as {@link EntityResult}.
+ * Returns a list of "uncompiled" result descriptors. Column descriptors are returned
+ * as Strings, entity descriptors - as {@link EntityResult}. To get fully resolved
+ * descriptors, use {@link #getResolvedComponents(EntityResolver)}.
*/
public List<Object> getComponents() {
return resultDescriptors != null ? resultDescriptors : Collections.EMPTY_LIST;
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java Fri Dec 26 02:30:04 2008
@@ -22,6 +22,7 @@
import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
@@ -55,7 +56,7 @@
String cacheKey;
String[] cacheGroups;
- transient SQLResultSetMetadata resultSetMapping;
+ transient List<Object> resultSetMapping;
transient DbEntity dbEntity;
transient DataMap dataMap;
transient Object lastRoot;
@@ -290,7 +291,7 @@
/**
* @since 3.0
*/
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return resultSetMapping;
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DefaultQueryMetadata.java Fri Dec 26 02:30:04 2008
@@ -20,6 +20,7 @@
package org.apache.cayenne.query;
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import org.apache.cayenne.map.DataMap;
@@ -60,7 +61,7 @@
/**
* @since 3.0
*/
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return null;
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/EJBQLQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/EJBQLQueryMetadata.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/EJBQLQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/EJBQLQueryMetadata.java Fri Dec 26 02:30:04 2008
@@ -32,9 +32,9 @@
boolean resolve(EntityResolver resolver, EJBQLQuery query) {
EJBQLCompiledExpression expression = query.getExpression(resolver);
- resultSetMapping = expression.getResult() != null
- ? new DefaultResultSetMetadata(expression.getResult(), resolver)
- : null;
+ resultSetMapping = expression.getResult() != null ? expression
+ .getResult()
+ .getResolvedComponents(resolver) : null;
ObjEntity root = expression.getRootDescriptor().getEntity();
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadata.java Fri Dec 26 02:30:04 2008
@@ -19,6 +19,7 @@
package org.apache.cayenne.query;
+import java.util.List;
import java.util.Map;
import org.apache.cayenne.map.DataMap;
@@ -289,10 +290,11 @@
Map<String, String> getPathSplitAliases();
/**
- * Returns a mapping of the result set data rows. Can be null. If not null overrides
- * prefetching and data row settings.
+ * Returns an optional list of result set mapping hints. Elements in the list can be
+ * either {@link EntityResultSegment} or {@link ScalarResultSegment}. The returned
+ * list can be null.
*
* @since 3.0
*/
- SQLResultSetMetadata getResultSetMapping();
+ List<Object> getResultSetMapping();
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/QueryMetadataWrapper.java Fri Dec 26 02:30:04 2008
@@ -20,6 +20,7 @@
package org.apache.cayenne.query;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.cayenne.map.DataMap;
@@ -64,7 +65,7 @@
/**
* @since 3.0
*/
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return info.getResultSetMapping();
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplateMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplateMetadata.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplateMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SQLTemplateMetadata.java Fri Dec 26 02:30:04 2008
@@ -35,9 +35,9 @@
if (super.resolve(root, resolver, null)) {
- resultSetMapping = query.getResult() != null
- ? new DefaultResultSetMetadata(query.getResult(), resolver)
- : null;
+ resultSetMapping = query.getResult() != null ? query
+ .getResult()
+ .getResolvedComponents(resolver) : null;
// generate unique cache key...
if (QueryCacheStrategy.NO_CACHE == getCacheStrategy()) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalQuery.java Fri Dec 26 02:30:04 2008
@@ -19,6 +19,7 @@
package org.apache.cayenne.remote;
+import java.util.List;
import java.util.Map;
import org.apache.cayenne.map.DataMap;
@@ -33,7 +34,6 @@
import org.apache.cayenne.query.QueryRouter;
import org.apache.cayenne.query.SQLAction;
import org.apache.cayenne.query.SQLActionVisitor;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
@@ -71,7 +71,7 @@
return cacheKey;
}
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return metadata.getResultSetMapping();
}
@@ -108,7 +108,7 @@
public int getFetchOffset() {
return metadata.getFetchOffset();
}
-
+
/**
* @deprecated since 3.0
*/
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java Fri Dec 26 02:30:04 2008
@@ -36,7 +36,6 @@
import org.apache.cayenne.query.QueryRouter;
import org.apache.cayenne.query.SQLAction;
import org.apache.cayenne.query.SQLActionVisitor;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.reflect.ClassDescriptor;
import org.apache.cayenne.util.XMLEncoder;
@@ -79,7 +78,7 @@
return cacheKey;
}
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return metadata.getResultSetMapping();
}
@@ -113,7 +112,7 @@
public int getFetchOffset() {
return metadata.getFetchOffset();
}
-
+
/**
* @deprecated since 3.0
*/
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/RangeQuery.java Fri Dec 26 02:30:04 2008
@@ -19,6 +19,7 @@
package org.apache.cayenne.remote;
+import java.util.List;
import java.util.Map;
import org.apache.cayenne.map.DataMap;
@@ -33,7 +34,6 @@
import org.apache.cayenne.query.QueryRouter;
import org.apache.cayenne.query.SQLAction;
import org.apache.cayenne.query.SQLActionVisitor;
-import org.apache.cayenne.query.SQLResultSetMetadata;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
@@ -76,7 +76,7 @@
return originatingQuery;
}
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return null;
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java?rev=729476&r1=729475&r2=729476&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/MockQueryMetadata.java Fri Dec 26 02:30:04 2008
@@ -19,6 +19,7 @@
package org.apache.cayenne.query;
+import java.util.List;
import java.util.Map;
import org.apache.cayenne.map.DataMap;
@@ -29,7 +30,7 @@
public class MockQueryMetadata implements QueryMetadata {
- public SQLResultSetMetadata getResultSetMapping() {
+ public List<Object> getResultSetMapping() {
return null;
}