You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2022/07/01 16:20:03 UTC

[cayenne] 02/06: CAY-2737 Cayenne 4.3: cleanup deprecated code - switch IncrementalSelectQuery to ObjectSelect usage

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 409ed9564e1da0a61d5002891506eae5a3943841
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Fri Jul 1 17:29:36 2022 +0300

    CAY-2737 Cayenne 4.3: cleanup deprecated code
     - switch IncrementalSelectQuery to ObjectSelect usage
---
 .../cayenne/remote/IncrementalSelectQuery.java     | 188 +++++++--------------
 .../cayenne/remote/RemoteIncrementalFaultList.java |  14 +-
 2 files changed, 67 insertions(+), 135 deletions(-)

diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java
index 2c2c5ab38..3f12fece4 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/IncrementalSelectQuery.java
@@ -20,7 +20,6 @@ package org.apache.cayenne.remote;
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ResultBatchIterator;
@@ -29,6 +28,7 @@ import org.apache.cayenne.ResultIteratorCallback;
 import org.apache.cayenne.access.IncrementalFaultList;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.map.EntityResolver;
+import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.Ordering;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.Query;
@@ -37,9 +37,6 @@ import org.apache.cayenne.query.QueryMetadataProxy;
 import org.apache.cayenne.query.QueryRouter;
 import org.apache.cayenne.query.SQLAction;
 import org.apache.cayenne.query.SQLActionVisitor;
-import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.query.SortOrder;
-import org.apache.cayenne.util.XMLEncoder;
 
 /**
  * A SelectQuery decorator that overrides the metadata to ensure that query
@@ -49,13 +46,14 @@ import org.apache.cayenne.util.XMLEncoder;
  * SelectQuery-specific optimizations.
  * 
  * @since 3.0
+ * @since 4.3 this query extends ObjectSelect
  */
-class IncrementalSelectQuery<T> extends SelectQuery<T> {
+class IncrementalSelectQuery<T> extends ObjectSelect<T> {
 
-	private SelectQuery<T> query;
+	private ObjectSelect<T> query;
 	private String cacheKey;
 
-	IncrementalSelectQuery(SelectQuery<T> delegate, String cacheKey) {
+	IncrementalSelectQuery(ObjectSelect<T> delegate, String cacheKey) {
 		this.query = delegate;
 		this.cacheKey = cacheKey;
 	}
@@ -82,48 +80,13 @@ class IncrementalSelectQuery<T> extends SelectQuery<T> {
 	}
 
 	@Override
-	public void addOrdering(Ordering ordering) {
-		query.addOrdering(ordering);
-	}
-
-	@Override
-	public void addOrdering(String sortPathSpec, SortOrder order) {
-		query.addOrdering(sortPathSpec, order);
-	}
-
-	@Override
-	public void addOrderings(Collection<? extends Ordering> orderings) {
-		query.addOrderings(orderings);
-	}
-
-	@Override
-	public PrefetchTreeNode addPrefetch(String prefetchPath) {
-		return query.addPrefetch(prefetchPath);
-	}
-
-	@Override
-	public void andQualifier(Expression e) {
-		query.andQualifier(e);
-	}
-
-	@Override
-	public void clearOrderings() {
-		query.clearOrderings();
-	}
-
-	@Override
-	public void clearPrefetches() {
-		query.clearPrefetches();
-	}
-
-	@Override
-	public SelectQuery<T> createQuery(Map<String, ?> parameters) {
-		return query.createQuery(parameters);
+	public SQLAction createSQLAction(SQLActionVisitor visitor) {
+		return query.createSQLAction(visitor);
 	}
 
 	@Override
-	public SQLAction createSQLAction(SQLActionVisitor visitor) {
-		return query.createSQLAction(visitor);
+	public void route(QueryRouter router, EntityResolver resolver, Query substitutedQuery) {
+		query.route(router, resolver, substitutedQuery);
 	}
 
 	@Override
@@ -139,31 +102,6 @@ class IncrementalSelectQuery<T> extends SelectQuery<T> {
 		return super.getCacheGroup();
 	}
 
-	@Override
-	public int getFetchLimit() {
-		return query.getFetchLimit();
-	}
-
-	@Override
-	public List<Ordering> getOrderings() {
-		return query.getOrderings();
-	}
-
-	@Override
-	public int getPageSize() {
-		return query.getPageSize();
-	}
-
-	@Override
-	public PrefetchTreeNode getPrefetchTree() {
-		return query.getPrefetchTree();
-	}
-
-	@Override
-	public Expression getQualifier() {
-		return query.getQualifier();
-	}
-
 	@Override
 	public Object getRoot() {
 		return query.getRoot();
@@ -174,127 +112,123 @@ class IncrementalSelectQuery<T> extends SelectQuery<T> {
 		return query.hashCode();
 	}
 
+	/**
+	 * @since 4.0
+	 */
 	@Override
-	public void initWithProperties(Map<String, ?> properties) {
-		query.initWithProperties(properties);
-	}
-
-	@Override
-	public boolean isDistinct() {
-		return query.isDistinct();
+	public void setCacheGroup(String cacheGroup) {
+		query.setCacheGroup(cacheGroup);
 	}
 
 	@Override
-	public boolean isFetchingDataRows() {
-		return query.isFetchingDataRows();
+	public void setRoot(Object value) {
+		query.setRoot(value);
 	}
 
 	@Override
-	public void orQualifier(Expression e) {
-		query.orQualifier(e);
+	public String toString() {
+		return query.toString();
 	}
 
 	@Override
-	public SelectQuery<T> queryWithParameters(Map<String, ?> parameters, boolean pruneMissing) {
-		return query.queryWithParameters(parameters, pruneMissing);
+	public List<T> select(ObjectContext context) {
+		return query.select(context);
 	}
 
 	@Override
-	public SelectQuery<T> queryWithParameters(Map<String, ?> parameters) {
-		return query.queryWithParameters(parameters);
+	public T selectOne(ObjectContext context) {
+		return query.selectOne(context);
 	}
 
 	@Override
-	public void removeOrdering(Ordering ordering) {
-		query.removeOrdering(ordering);
+	public T selectFirst(ObjectContext context) {
+		return query.selectFirst(context);
 	}
 
 	@Override
-	public void removePrefetch(String prefetchPath) {
-		query.removePrefetch(prefetchPath);
+	public void iterate(ObjectContext context, ResultIteratorCallback<T> callback) {
+		query.iterate(context, callback);
 	}
 
 	@Override
-	public void route(QueryRouter router, EntityResolver resolver, Query substitutedQuery) {
-		query.route(router, resolver, substitutedQuery);
+	public ResultIterator<T> iterator(ObjectContext context) {
+		return query.iterator(context);
 	}
 
-	/**
-	 * @since 4.0
-	 */
 	@Override
-	public void setCacheGroup(String cacheGroup) {
-		query.setCacheGroup(cacheGroup);
+	public ResultBatchIterator<T> batchIterator(ObjectContext context, int size) {
+		return query.batchIterator(context, size);
 	}
 
 	@Override
-	public void setDistinct(boolean distinct) {
-		query.setDistinct(distinct);
+	public Expression getWhere() {
+		return query.getWhere();
 	}
 
-	@SuppressWarnings("deprecation")
+	/**
+	 * Returns a HAVING clause Expression of this query.
+	 */
 	@Override
-	public void setFetchingDataRows(boolean flag) {
-		query.setFetchingDataRows(flag);
+	public Expression getHaving() {
+		return query.getHaving();
 	}
 
 	@Override
-	public void setFetchLimit(int fetchLimit) {
-		query.setFetchLimit(fetchLimit);
+	public Collection<Ordering> getOrderings() {
+		return query.getOrderings();
 	}
 
-	@Override
-	public void setPageSize(int pageSize) {
-		query.setPageSize(pageSize);
+	public boolean isDistinct() {
+		return query.isDistinct();
 	}
 
 	@Override
-	public void setPrefetchTree(PrefetchTreeNode prefetchTree) {
-		query.setPrefetchTree(prefetchTree);
+	public boolean isFetchingDataRows() {
+		return query.isFetchingDataRows();
 	}
 
 	@Override
-	public void setQualifier(Expression qualifier) {
-		query.setQualifier(qualifier);
+	public int getStatementFetchSize() {
+		return query.getStatementFetchSize();
 	}
 
 	@Override
-	public void setRoot(Object value) {
-		query.setRoot(value);
+	public int getQueryTimeout() {
+		return query.getQueryTimeout();
 	}
 
 	@Override
-	public String toString() {
-		return query.toString();
+	public int getPageSize() {
+		return query.getPageSize();
 	}
 
 	@Override
-	public List<T> select(ObjectContext context) {
-		return query.select(context);
+	public int getLimit() {
+		return query.getLimit();
 	}
 
 	@Override
-	public T selectOne(ObjectContext context) {
-		return query.selectOne(context);
+	public int getOffset() {
+		return query.getOffset();
 	}
 
 	@Override
-	public T selectFirst(ObjectContext context) {
-		return query.selectFirst(context);
+	public Class<?> getEntityType() {
+		return query.getEntityType();
 	}
 
 	@Override
-	public void iterate(ObjectContext context, ResultIteratorCallback<T> callback) {
-		query.iterate(context, callback);
+	public String getEntityName() {
+		return query.getEntityName();
 	}
 
 	@Override
-	public ResultIterator<T> iterator(ObjectContext context) {
-		return query.iterator(context);
+	public String getDbEntityName() {
+		return query.getDbEntityName();
 	}
 
 	@Override
-	public ResultBatchIterator<T> batchIterator(ObjectContext context, int size) {
-		return query.batchIterator(context, size);
+	public PrefetchTreeNode getPrefetches() {
+		return query.getPrefetches();
 	}
 }
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java
index 8c8f09323..da05ab69d 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java
@@ -31,9 +31,9 @@ import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.Persistent;
 import org.apache.cayenne.QueryResponse;
+import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.util.IDUtil;
 import org.apache.cayenne.util.IncrementalListResponse;
 import org.apache.cayenne.util.Util;
@@ -107,13 +107,11 @@ public class RemoteIncrementalFaultList implements List {
         // client-generated (e.g. see CAY-1003 - client and server can be in different
         // timezones, so the key can be messed up)
 
-        // there are some serious pagination optimizations for SelectQuery on the
-        // server-side, so use a special wrapper that is itself a subclass of
-        // SelectQuery
-        if (query instanceof SelectQuery) {
-            query = new IncrementalSelectQuery<Object>((SelectQuery<Object>) paginatedQuery, cacheKey);
-        }
-        else {
+        // there are some serious pagination optimizations for ObjectSelect on the
+        // server-side, so use a special wrapper that is itself a subclass of ObjectSelect
+        if (query instanceof ObjectSelect) {
+            query = new IncrementalSelectQuery<>((ObjectSelect<Object>) paginatedQuery, cacheKey);
+        } else {
             query = new IncrementalQuery(paginatedQuery, cacheKey);
         }