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 <stari...@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); }