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