diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/BaseFuture.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/BaseFuture.java
index 93c86fe7b..e71334ea6 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/BaseFuture.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/BaseFuture.java
@@ -26,22 +26,22 @@ abstract class BaseFuture implements Future {
}
@Override
- public T get() throws InterruptedException, ExecutionException {
+ public final T get() throws InterruptedException, ExecutionException {
return futureTask.get();
}
@Override
- public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
+ public final T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
return futureTask.get(timeout, unit);
}
@Override
- public boolean isCancelled() {
+ public final boolean isCancelled() {
return futureTask.isCancelled();
}
@Override
- public boolean isDone() {
+ public final boolean isDone() {
return futureTask.isDone();
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java
index 7fc636af0..e9d2281d0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java
@@ -37,7 +37,7 @@ import java.util.concurrent.locks.ReentrantLock;
* The tree structure is flattened into a SqlSelectChain. The SqlSelectChain is
* the key object used in reading the flat resultSet back into Objects.
*/
-public class CQuery implements DbReadContext, CancelableQuery, SpiProfileTransactionEvent {
+public final class CQuery implements DbReadContext, CancelableQuery, SpiProfileTransactionEvent {
private static final Logger logger = LoggerFactory.getLogger(CQuery.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java
index e3a1a5e54..559dfa0da 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.server.type.bindcapture.BindCapture;
import java.util.concurrent.locks.ReentrantLock;
-class CQueryBindCapture implements SpiQueryBindCapture {
+final class CQueryBindCapture implements SpiQueryBindCapture {
private static final double multiplier = 1.5d;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java
index 9a4b1d32e..09b465893 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java
@@ -40,7 +40,7 @@ import java.util.List;
* Generates the SQL SELECT statements taking into account the physical
* deployment properties.
*/
-class CQueryBuilder {
+final class CQueryBuilder {
private final String columnAliasPrefix;
private final SqlLimiter sqlLimiter;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java
index 2bc60d208..d3b4e7ca6 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java
@@ -11,7 +11,7 @@ import io.ebeaninternal.server.querydefn.OrmQueryLimitRequest;
import io.ebeaninternal.server.rawsql.SpiRawSql;
import io.ebeaninternal.server.util.BindParamsParser;
-class CQueryBuilderRawSql {
+final class CQueryBuilderRawSql {
private final SqlLimiter sqlLimiter;
private final DatabasePlatform dbPlatform;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryCollectionAddNoop.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryCollectionAddNoop.java
index ac4230999..cf8adf097 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryCollectionAddNoop.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryCollectionAddNoop.java
@@ -7,7 +7,7 @@ import io.ebean.bean.EntityBean;
* A NOOP based CQueryCollectionAdd for use with lazy loading many queries where the
* beans loaded into the collection are added to the collection(s) of the parent(s).
*/
-class CQueryCollectionAddNoop implements CQueryCollectionAdd {
+final class CQueryCollectionAddNoop implements CQueryCollectionAdd {
/**
* Return null as we are not collecting the beans.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java
index da1e01cac..771ff8145 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java
@@ -5,7 +5,7 @@ import java.util.Map;
/**
* Support 'asDraft' queries.
*/
-class CQueryDraftSupport {
+final class CQueryDraftSupport {
/**
* The mapping of base tables to their matching 'draft' table.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java
index 03074b43f..b76d0b4e9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java
@@ -33,7 +33,7 @@ import java.util.Map;
/**
* Handles the Object Relational fetching.
*/
-public class CQueryEngine {
+public final class CQueryEngine {
private static final Logger logger = LoggerFactory.getLogger(CQueryEngine.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java
index a89cd28fa..41f9e7f4d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java
@@ -24,7 +24,7 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* Base compiled query request for single attribute queries.
*/
-class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, CancelableQuery {
+final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, CancelableQuery {
private static final Logger logger = LoggerFactory.getLogger(CQueryFetchSingleAttribute.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java
index 5f810c6da..e082c97eb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java
@@ -7,7 +7,7 @@ import java.util.Map;
/**
* Helper to support history functions.
*/
-class CQueryHistorySupport {
+final class CQueryHistorySupport {
/**
* The DB specific support.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java
index 17cec9d15..d438ec747 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java
@@ -9,7 +9,7 @@ import java.sql.SQLException;
/**
* QueryIterator that does not require a buffer for secondary queries.
*/
-class CQueryIteratorSimple implements QueryIterator {
+final class CQueryIteratorSimple implements QueryIterator {
private final CQuery cquery;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java
index e2a9bdad2..ad1a924b5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorWithBuffer.java
@@ -11,7 +11,7 @@ import java.util.NoSuchElementException;
/**
* A QueryIterator that uses a buffer to execute secondary queries periodically.
*/
-class CQueryIteratorWithBuffer implements QueryIterator {
+final class CQueryIteratorWithBuffer implements QueryIterator {
private final CQuery cquery;
private final int bufferSize;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java
index c325255ef..ffb65a039 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java
@@ -13,7 +13,7 @@ import java.util.List;
/**
* Creates the order by expression clause.
*/
-class CQueryOrderBy {
+final class CQueryOrderBy {
private final BeanDescriptor> desc;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java
index de365f253..aef2c1164 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java
@@ -164,49 +164,49 @@ public class CQueryPlan implements SpiQueryPlan {
}
@Override
- public Class> getBeanType() {
+ public final Class> getBeanType() {
return beanType;
}
@Override
- public String getName() {
+ public final String getName() {
return name;
}
@Override
- public String getHash() {
+ public final String getHash() {
return hash;
}
@Override
- public String getSql() {
+ public final String getSql() {
return sql;
}
@Override
- public ProfileLocation getProfileLocation() {
+ public final ProfileLocation getProfileLocation() {
return profileLocation;
}
- public String getLabel() {
+ public final String getLabel() {
return label;
}
- public Set getDependentTables() {
+ public final Set getDependentTables() {
return dependentTables;
}
- public String getLocation() {
+ public final String getLocation() {
return location;
}
@Override
- public void queryPlanInit(long thresholdMicros) {
+ public final void queryPlanInit(long thresholdMicros) {
bindCapture.queryPlanInit(thresholdMicros);
}
@Override
- public DQueryPlanOutput createMeta(String bind, String planString) {
+ public final DQueryPlanOutput createMeta(String bind, String planString) {
return new DQueryPlanOutput(getBeanType(), name, hash, sql, profileLocation, bind, planString);
}
@@ -217,7 +217,7 @@ public class CQueryPlan implements SpiQueryPlan {
/**
* Bind keys for encrypted properties if necessary returning the DataBind.
*/
- DataBind bindEncryptedProperties(PreparedStatement stmt, Connection conn) throws SQLException {
+ final DataBind bindEncryptedProperties(PreparedStatement stmt, Connection conn) throws SQLException {
DataBind dataBind = new DataBind(dataTimeZone, stmt, conn);
if (encryptedProps != null) {
for (STreeProperty encryptedProp : encryptedProps) {
@@ -237,14 +237,14 @@ public class CQueryPlan implements SpiQueryPlan {
return dataBind;
}
- int getAsOfTableCount() {
+ final int getAsOfTableCount() {
return asOfTableCount;
}
/**
* Return a key used in audit logging to identify the query.
*/
- String getAuditQueryKey() {
+ final String getAuditQueryKey() {
if (auditQueryHash == null) {
// volatile object assignment (so happy for multithreaded access)
auditQueryHash = calcAuditQueryKey();
@@ -257,29 +257,29 @@ public class CQueryPlan implements SpiQueryPlan {
return rawSql ? planKey.getPartialKey() + "_" + hash : planKey.getPartialKey();
}
- SqlTree getSqlTree() {
+ final SqlTree getSqlTree() {
return sqlTree;
}
- public boolean isRawSql() {
+ public final boolean isRawSql() {
return rawSql;
}
- String getLogWhereSql() {
+ final String getLogWhereSql() {
return logWhereSql;
}
/**
* Reset the query statistics.
*/
- public void resetStatistics() {
+ public final void resetStatistics() {
stats.reset();
}
/**
* Register an execution time against this query plan;
*/
- boolean executionTime(long timeMicros) {
+ final boolean executionTime(long timeMicros) {
stats.add(timeMicros);
return bindCapture != null && bindCapture.collectFor(timeMicros);
}
@@ -287,33 +287,33 @@ public class CQueryPlan implements SpiQueryPlan {
/**
* Return a copy of the current query statistics.
*/
- public Snapshot getSnapshot(boolean reset) {
+ public final Snapshot getSnapshot(boolean reset) {
return stats.getSnapshot(reset);
}
/**
* Return the time this query plan was last used.
*/
- public long getLastQueryTime() {
+ public final long getLastQueryTime() {
return stats.getLastQueryTime();
}
- ScalarDataReader> getSingleAttributeScalarType() {
+ final ScalarDataReader> getSingleAttributeScalarType() {
return sqlTree.getRootNode().getSingleAttributeReader();
}
/**
* Return true if there are no statistics collected since the last reset.
*/
- public boolean isEmptyStats() {
+ public final boolean isEmptyStats() {
return stats.isEmpty();
}
- TimedMetric createTimedMetric() {
+ final TimedMetric createTimedMetric() {
return MetricFactory.get().createTimedMetric(label);
}
- void captureBindForQueryPlan(CQueryPredicates predicates, long executionTimeMicros) {
+ final void captureBindForQueryPlan(CQueryPredicates predicates, long executionTimeMicros) {
final long startNanos = System.nanoTime();
try {
DataBindCapture capture = bindCapture();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java
index 4ff62f44d..499e801d3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java
@@ -20,7 +20,7 @@ import java.util.concurrent.ConcurrentHashMap;
import static java.util.Collections.emptyList;
-public class CQueryPlanManager implements QueryPlanManager {
+public final class CQueryPlanManager implements QueryPlanManager {
private static final Logger log = LoggerFactory.getLogger(CQueryPlanManager.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java
index bab955d84..a23114bf2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java
@@ -12,7 +12,7 @@ import java.util.List;
/**
* RawSql based query plan.
*/
-class CQueryPlanRawSql extends CQueryPlan {
+final class CQueryPlanRawSql extends CQueryPlan {
private final int[] rsetIndexPositions;
@@ -27,7 +27,6 @@ class CQueryPlanRawSql extends CQueryPlan {
}
private int[] createIndexPositions(OrmQueryRequest> request, SqlTree sqlTree) {
-
List chain = sqlTree.buildRawSqlSelectChain();
ColumnMapping columnMapping = request.getQuery().getRawSql().getColumnMapping();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java
index 315e7a07d..00b202d57 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* Captures database query plans.
*/
-class CQueryPlanRequest {
+final class CQueryPlanRequest {
private final List plans = new ArrayList<>();
@@ -19,7 +19,7 @@ class CQueryPlanRequest {
private final long since;
private final int maxCount;
private final long maxTime;
- private Iterator iterator;
+ private final Iterator iterator;
CQueryPlanRequest(Connection connection, QueryPlanRequest req, Iterator iterator) {
this.connection = connection;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java
index ffc749eb9..05ad13173 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java
@@ -10,11 +10,8 @@ import io.ebean.metric.TimedMetricStats;
public final class CQueryPlanStats {
private final CQueryPlan queryPlan;
-
private final TimedMetric timedMetric;
-
private boolean collected;
-
private long lastQueryTime;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java
index c41f830c6..426b1ed4e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java
@@ -37,74 +37,51 @@ import java.util.Set;
* named parameters and expression values into the prepared statement.
*
*/
-public class CQueryPredicates {
+public final class CQueryPredicates {
private static final Logger logger = LoggerFactory.getLogger(CQueryPredicates.class);
private final Binder binder;
-
private final OrmQueryRequest> request;
-
private final SpiQuery> query;
-
private final Object idValue;
-
- /**
- * Named bind parameters.
- */
private final BindParams bindParams;
-
- /**
- * Bind values from the where expressions.
- */
private DefaultExpressionRequest filterMany;
-
/**
* SQL generated from the where expressions.
*/
private String filterManyExprSql;
-
/**
* Bind values from the where expressions.
*/
private DefaultExpressionRequest where;
-
/**
* SQL generated from the where expressions.
*/
private String whereExprSql;
-
/**
* Bind values for having expression.
*/
private DefaultExpressionRequest having;
-
/**
* SQL generated from the having expression.
*/
private String havingExprSql;
-
private String dbHaving;
-
/**
* logicalWhere with property names converted to db columns.
*/
private String dbWhere;
-
/**
* Filter than can apply to a many fetch join.
*/
private String dbFilterMany;
-
private String dbOrderBy;
-
private String dbUpdateClause;
-
/**
* Includes from where and order by clauses.
*/
private Set predicateIncludes;
-
private Set orderByIncludes;
CQueryPredicates(Binder binder, OrmQueryRequest> request) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java
index 0c1df9483..ccfbb3ce6 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java
@@ -19,7 +19,7 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* Executes the select row count query.
*/
-class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuery {
+final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuery {
private final CQueryPlan queryPlan;
private final OrmQueryRequest> request;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java
index 302b1bcf0..e35615a0c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java
@@ -16,7 +16,7 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* Executes the update query.
*/
-class CQueryUpdate implements SpiProfileTransactionEvent, CancelableQuery {
+final class CQueryUpdate implements SpiProfileTransactionEvent, CancelableQuery {
private final CQueryPlan queryPlan;
private final OrmQueryRequest> request;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQuery.java
index 2a432b732..528984d17 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQuery.java
@@ -10,9 +10,7 @@ import io.ebeaninternal.api.SpiQuery;
abstract class CallableQuery {
final SpiQuery query;
-
final SpiEbeanServer server;
-
final Transaction transaction;
CallableQuery(SpiEbeanServer server, SpiQuery query, Transaction t) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryCount.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryCount.java
index a2076b363..959ce2abd 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryCount.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryCount.java
@@ -8,10 +8,8 @@ import java.util.concurrent.Callable;
/**
* Represent the findCount query as a Callable.
- *
- * @param the entity bean type
*/
-public class CallableQueryCount extends CallableQuery implements Callable {
+public final class CallableQueryCount extends CallableQuery implements Callable {
/**
* Note that the transaction passed in is always a new transaction solely to
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryIds.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryIds.java
index c8ae160f6..c236ccb6d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryIds.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryIds.java
@@ -9,10 +9,8 @@ import java.util.concurrent.Callable;
/**
* Represent the fetch Id's query as a Callable.
- *
- * @param the entity bean type
*/
-public class CallableQueryIds extends CallableQuery implements Callable> {
+public final class CallableQueryIds extends CallableQuery implements Callable> {
public CallableQueryIds(SpiEbeanServer server, SpiQuery query, Transaction t) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryList.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryList.java
index b20e75a86..350cd67f0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CallableQueryList.java
@@ -12,8 +12,7 @@ import java.util.concurrent.Callable;
*
* @param the entity bean type
*/
-public class CallableQueryList extends CallableQuery implements Callable> {
-
+public final class CallableQueryList extends CallableQuery implements Callable> {
public CallableQueryList(SpiEbeanServer server, SpiQuery query, Transaction t) {
super(server, query, t);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroup.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroup.java
index 4b17e3461..bc2449d63 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroup.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroup.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.querydefn.SpiFetchGroup;
/**
* Default FetchGroup implementation.
*/
-class DFetchGroup implements SpiFetchGroup {
+final class DFetchGroup implements SpiFetchGroup {
private final OrmQueryDetail detail;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroupBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroupBuilder.java
index 6553b7ea4..50966a45f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroupBuilder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DFetchGroupBuilder.java
@@ -9,7 +9,7 @@ import io.ebeaninternal.server.querydefn.SpiFetchGroup;
/**
* Default implementation of the FetchGroupBuilder.
*/
-class DFetchGroupBuilder implements FetchGroupBuilder {
+final class DFetchGroupBuilder implements FetchGroupBuilder {
private static final FetchConfig DEFAULT_FETCH = FetchConfig.ofDefault();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java
index 1c1a41d07..642e163e2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.api.SpiDbQueryPlan;
/**
* Captured query plan details.
*/
-class DQueryPlanOutput implements MetaQueryPlan, SpiDbQueryPlan {
+final class DQueryPlanOutput implements MetaQueryPlan, SpiDbQueryPlan {
private final Class> beanType;
private final String label;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DbOrderByTrim.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DbOrderByTrim.java
index 766be909b..72eb81db4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DbOrderByTrim.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DbOrderByTrim.java
@@ -2,7 +2,7 @@ package io.ebeaninternal.server.query;
import java.util.regex.Pattern;
-class DbOrderByTrim {
+final class DbOrderByTrim {
private static final Pattern orderByTrim = Pattern.compile("(?i) asc\\b| desc\\b|\\b nulls first\\b|\\b nulls last\\b");
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java
index 378647818..dbd9b263e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java
@@ -8,7 +8,7 @@ import io.ebeaninternal.server.util.ArrayStack;
import java.util.ArrayList;
import java.util.HashSet;
-class DefaultDbSqlContext implements DbSqlContext {
+final class DefaultDbSqlContext implements DbSqlContext {
private static final String COMMA = ", ";
private static final String PERIOD = ".";
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java
index 9f7cb9b7e..459bba998 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java
@@ -44,7 +44,7 @@ import java.util.stream.Stream;
/**
* Implementation of FetchGroup query for use to create FetchGroup via query beans.
*/
-class DefaultFetchGroupQuery implements SpiFetchGroupQuery, SpiQueryFetch {
+final class DefaultFetchGroupQuery implements SpiFetchGroupQuery, SpiQueryFetch {
private static final FetchConfig FETCH_CACHE = FetchConfig.ofCache();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java
index b112c7986..abab7cdf9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java
@@ -21,7 +21,7 @@ import java.util.List;
/**
* Main Finder implementation.
*/
-public class DefaultOrmQueryEngine implements OrmQueryEngine {
+public final class DefaultOrmQueryEngine implements OrmQueryEngine {
/**
* Find using predicates
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java
index 78b9717d9..44b84a6a5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java
@@ -23,7 +23,7 @@ import java.util.function.Predicate;
/**
* Perform native sql fetches.
*/
-public class DefaultRelationalQueryEngine implements RelationalQueryEngine {
+public final class DefaultRelationalQueryEngine implements RelationalQueryEngine {
private final Binder binder;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java
index 0ee1e1525..e38d9d7d7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java
@@ -29,7 +29,7 @@ import java.util.UUID;
* returning the type you expect.
*
*/
-public class DefaultSqlRow implements SqlRow {
+public final class DefaultSqlRow implements SqlRow {
private static final long serialVersionUID = -3120927797041336242L;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryEngine.java
index 526d36dee..39588b733 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryEngine.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryEngine.java
@@ -12,7 +12,7 @@ import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
-public class DtoQueryEngine {
+public final class DtoQueryEngine {
private final Binder binder;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryIterator.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryIterator.java
index bdf4e2df6..47676c525 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryIterator.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DtoQueryIterator.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.core.DtoQueryRequest;
import javax.persistence.PersistenceException;
import java.sql.SQLException;
-class DtoQueryIterator implements QueryIterator {
+final class DtoQueryIterator implements QueryIterator {
private final DtoQueryRequest request;
private boolean closed;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java
index c246c651d..6fdeedd43 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.query;
-public class ExtraJoin {
+public final class ExtraJoin {
private final STreePropertyAssoc property;
private final boolean containsMany;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java
index a6f506ef6..cb9f6f560 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java
@@ -12,7 +12,7 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* PagedList implementation based on limit offset types of queries.
*/
-public class LimitOffsetPagedList implements PagedList {
+public final class LimitOffsetPagedList implements PagedList {
private final transient SpiEbeanServer server;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java
index e3b99561a..52e661b10 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java
@@ -9,7 +9,7 @@ import java.util.Comparator;
/**
* Compare Version beans in descending order with nulls last.
*/
-class OrderVersionDesc implements Comparator>, Serializable {
+final class OrderVersionDesc implements Comparator>, Serializable {
static final OrderVersionDesc INSTANCE = new OrderVersionDesc();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java
index b330d7d25..ff5acb76c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java
@@ -10,7 +10,7 @@ import java.util.concurrent.FutureTask;
/**
* Default implementation of FutureIds.
*/
-public class QueryFutureIds extends BaseFuture> implements FutureIds {
+public final class QueryFutureIds extends BaseFuture> implements FutureIds {
private final CallableQueryIds call;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java
index 2d3999b61..34264ffcf 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java
@@ -14,7 +14,7 @@ import java.util.concurrent.TimeoutException;
/**
* Default implementation for FutureList.
*/
-public class QueryFutureList extends BaseFuture> implements FutureList {
+public final class QueryFutureList extends BaseFuture> implements FutureList {
private final CallableQueryList call;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java
index 52c7b0fca..832653f1d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java
@@ -8,7 +8,7 @@ import java.util.concurrent.FutureTask;
/**
* Future implementation for the row count query.
*/
-public class QueryFutureRowCount extends BaseFuture implements FutureRowCount {
+public final class QueryFutureRowCount extends BaseFuture implements FutureRowCount {
private final CallableQueryCount call;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLogger.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLogger.java
index 53bd01f94..1ab789158 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLogger.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLogger.java
@@ -16,7 +16,7 @@ public abstract class QueryPlanLogger {
abstract SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind);
- SpiDbQueryPlan readQueryPlan(SpiQueryPlan plan, BindCapture bind, ResultSet rset) throws SQLException {
+ final SpiDbQueryPlan readQueryPlan(SpiQueryPlan plan, BindCapture bind, ResultSet rset) throws SQLException {
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= rset.getMetaData().getColumnCount(); i++) {
sb.append(rset.getMetaData().getColumnLabel(i)).append("\t");
@@ -27,11 +27,11 @@ public abstract class QueryPlanLogger {
return createPlan(plan, bind.toString(), sb.toString());
}
- SpiDbQueryPlan createPlan(SpiQueryPlan plan, String bind, String planString) {
+ final SpiDbQueryPlan createPlan(SpiQueryPlan plan, String bind, String planString) {
return plan.createMeta(bind, planString);
}
- SpiDbQueryPlan readQueryPlanBasic(SpiQueryPlan plan, BindCapture bind, ResultSet rset) throws SQLException {
+ final SpiDbQueryPlan readQueryPlanBasic(SpiQueryPlan plan, BindCapture bind, ResultSet rset) throws SQLException {
StringBuilder sb = new StringBuilder();
readPlanData(sb, rset);
return createPlan(plan, bind.toString(), sb.toString().trim());
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java
index 6f89c138a..6319967d9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java
@@ -12,7 +12,7 @@ import java.sql.SQLException;
/**
* A QueryPlanLogger that prefixes "EXPLAIN " to the query. This works for Postgres, H2 and MySql.
*/
-public class QueryPlanLoggerExplain extends QueryPlanLogger {
+public final class QueryPlanLoggerExplain extends QueryPlanLogger {
@Override
public SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java
index 2d2f4702f..d4ccd81bb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java
@@ -16,7 +16,7 @@ import java.sql.Statement;
*
* @author Roland Praml, FOCONIS AG
*/
-public class QueryPlanLoggerOracle extends QueryPlanLogger {
+public final class QueryPlanLoggerOracle extends QueryPlanLogger {
@Override
public SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java
index 596f33bc0..f52654ba5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java
@@ -12,7 +12,7 @@ import java.sql.SQLException;
/**
* A QueryPlanLogger for Postgres that prefixes "EXPLAIN ANALYZE" to the query.
*/
-public class QueryPlanLoggerPostgres extends QueryPlanLogger {
+public final class QueryPlanLoggerPostgres extends QueryPlanLogger {
@Override
public SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java
index 6657448e2..c71072084 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java
@@ -16,7 +16,7 @@ import java.sql.Statement;
*
* @author Roland Praml, FOCONIS AG
*/
-public class QueryPlanLoggerSqlServer extends QueryPlanLogger {
+public final class QueryPlanLoggerSqlServer extends QueryPlanLogger {
@Override
public SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java
index 2a3fce499..b24a57e04 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java
@@ -7,7 +7,7 @@ import java.util.Objects;
/**
* QueryPlanKey for RawSql queries.
*/
-class RawSqlQueryPlanKey implements CQueryPlanKey {
+final class RawSqlQueryPlanKey implements CQueryPlanKey {
private final String sql;
private final boolean rawSql;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlBeanLoad.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlBeanLoad.java
index 83c7b2936..cdeb345c0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlBeanLoad.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlBeanLoad.java
@@ -13,7 +13,7 @@ import io.ebeaninternal.server.deploy.DbReadContext;
* partial objects.
*
*/
-public class SqlBeanLoad {
+public final class SqlBeanLoad {
private final DbReadContext ctx;
private final EntityBean bean;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java
index 5f548fd59..27e35c365 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java
@@ -10,7 +10,7 @@ import java.util.Set;
/**
* Represents the SELECT clause part of the SQL query.
*/
-class SqlTree {
+final class SqlTree {
private final SqlTreeNode rootNode;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java
index 27ec943b4..9d46d07c3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java
@@ -12,7 +12,7 @@ import java.util.TreeSet;
/**
* Special Map of the logical property joins to table alias.
*/
-class SqlTreeAlias {
+final class SqlTreeAlias {
private final SpiQuery.TemporalMode temporalMode;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java
index 65fa4f7f8..43e3a0215 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java
@@ -30,44 +30,28 @@ public final class SqlTreeBuilder {
private static final Logger logger = LoggerFactory.getLogger(SqlTreeBuilder.class);
private final SpiQuery> query;
-
private final STreeType desc;
-
private final OrmQueryDetail queryDetail;
-
private final CQueryPredicates predicates;
-
private final boolean subQuery;
-
private final boolean distinctOnPlatform;
/**
* Property if resultSet contains master and detail rows.
*/
private STreePropertyAssocMany manyProperty;
-
private final SqlTreeAlias alias;
-
private final DefaultDbSqlContext ctx;
-
private final HashSet selectIncludes = new HashSet<>();
-
private final ManyWhereJoins manyWhereJoins;
-
private final TableJoin includeJoin;
-
private final boolean rawSql;
-
/**
* rawNoId true if the RawSql does not include the @Id property
*/
private final boolean rawNoId;
-
private final boolean disableLazyLoad;
-
private final SpiQuery.TemporalMode temporalMode;
-
private SqlTreeNode rootNode;
-
private boolean sqlDistinct;
/**
@@ -103,9 +87,9 @@ public final class SqlTreeBuilder {
this.temporalMode = SpiQuery.TemporalMode.of(query);
this.disableLazyLoad = query.isDisableLazyLoading();
this.subQuery = Type.SQ_EXISTS == query.getType()
- || Type.SQ_IN == query.getType()
- || Type.ID_LIST == query.getType()
- || Type.DELETE == query.getType()
+ || Type.SQ_IN == query.getType()
+ || Type.ID_LIST == query.getType()
+ || Type.DELETE == query.getType()
|| query.isCountDistinct();
this.includeJoin = query.getM2mIncludeJoin();
this.manyWhereJoins = query.getManyWhereJoins();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java
index 1c9bff694..83c8362a9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java
@@ -28,58 +28,40 @@ class SqlTreeNodeBean implements SqlTreeNode {
private static final SqlTreeNode[] NO_CHILDREN = new SqlTreeNode[0];
final STreeType desc;
-
final IdBinder idBinder;
-
/**
* The children which will be other SelectBean or SelectProxyBean.
*/
final SqlTreeNode[] children;
-
/**
* Set to true if this is a partial object fetch.
*/
private final boolean partialObject;
-
private final STreeProperty[] properties;
-
/**
* Extra where clause added by Where annotation on associated many.
*/
private final String extraWhere;
-
private final STreePropertyAssoc nodeBeanProp;
-
/**
* False if report bean and has no id property.
*/
final boolean readId;
private final boolean readIdNormal;
-
private final boolean disableLazyLoad;
-
private final InheritInfo inheritInfo;
-
final String prefix;
-
private final Map pathMap;
-
final STreePropertyAssocMany lazyLoadParent;
-
private final SpiQuery.TemporalMode temporalMode;
-
private final boolean temporalVersions;
-
private final IdBinder lazyLoadParentIdBinder;
-
String baseTableAlias;
-
/**
* Table alias set if this bean node includes a join to a intersection
* table and that table has history support.
*/
private boolean intersectionAsOfTableAlias;
-
private final boolean aggregation;
/**
@@ -131,12 +113,12 @@ class SqlTreeNodeBean implements SqlTreeNode {
}
@Override
- public boolean isSingleProperty() {
+ public final boolean isSingleProperty() {
return properties != null && properties.length == 1 && children.length == 0;
}
@Override
- public ScalarDataReader> getSingleAttributeReader() {
+ public final ScalarDataReader> getSingleAttributeReader() {
if (properties == null || properties.length == 0) {
// if we have no property ask first children (in a distinct select with join)
if (children.length == 0) {
@@ -172,7 +154,7 @@ class SqlTreeNodeBean implements SqlTreeNode {
}
@Override
- public void buildRawSqlSelectChain(List selectChain) {
+ public final void buildRawSqlSelectChain(List selectChain) {
if (readId) {
if (inheritInfo != null) {
// discriminator column always proceeds id column
@@ -194,7 +176,7 @@ class SqlTreeNodeBean implements SqlTreeNode {
/**
* Load that takes into account inheritance.
*/
- private class LoadInherit extends Load {
+ private final class LoadInherit extends Load {
private LoadInherit(DbReadContext ctx, EntityBean parentBean) {
super(ctx, parentBean);
@@ -437,7 +419,7 @@ class SqlTreeNodeBean implements SqlTreeNode {
/**
* Perform the load returning the loaded bean.
*/
- EntityBean perform() throws SQLException {
+ final EntityBean perform() throws SQLException {
initialise();
if (isLazyLoadManyRoot()) {
return getContextBean();
@@ -451,7 +433,7 @@ class SqlTreeNodeBean implements SqlTreeNode {
* Return true if this bean was already in the context. If already in the
* context we need to check if it is already contained in the collection.
*/
- boolean isContextBean() {
+ final boolean isContextBean() {
return localBean == null;
}
}
@@ -467,12 +449,12 @@ class SqlTreeNodeBean implements SqlTreeNode {
/**
* Create the loader with or without inheritance.
*/
- Load createLoad(DbReadContext ctx, EntityBean parentBean) {
+ final Load createLoad(DbReadContext ctx, EntityBean parentBean) {
return (inheritInfo != null) ? new LoadInherit(ctx, parentBean) : new Load(ctx, parentBean);
}
@Override
- public void appendGroupBy(DbSqlContext ctx, boolean subQuery) {
+ public final void appendGroupBy(DbSqlContext ctx, boolean subQuery) {
ctx.pushJoin(prefix);
ctx.pushTableAlias(prefix);
if (lazyLoadParent != null) {
@@ -507,7 +489,7 @@ class SqlTreeNodeBean implements SqlTreeNode {
* Append the property columns to the buffer.
*/
@Override
- public void appendSelect(DbSqlContext ctx, boolean subQuery) {
+ public final void appendSelect(DbSqlContext ctx, boolean subQuery) {
ctx.pushJoin(prefix);
ctx.pushTableAlias(prefix);
if (temporalVersions) {
@@ -532,7 +514,7 @@ class SqlTreeNodeBean implements SqlTreeNode {
}
@Override
- public boolean isAggregation() {
+ public final boolean isAggregation() {
if (aggregation) {
return true;
}
@@ -553,14 +535,14 @@ class SqlTreeNodeBean implements SqlTreeNode {
}
}
- void appendSelectId(DbSqlContext ctx, STreeProperty prop) {
+ final void appendSelectId(DbSqlContext ctx, STreeProperty prop) {
if (prop != null) {
prop.appendSelect(ctx, false);
}
}
@Override
- public void appendWhere(DbSqlContext ctx) {
+ public final void appendWhere(DbSqlContext ctx) {
// Only apply inheritance to root node as any join will already have the inheritance join include - see TableJoin
if (inheritInfo != null && nodeBeanProp == null) {
if (!inheritInfo.isRoot()) {
@@ -618,7 +600,7 @@ class SqlTreeNodeBean implements SqlTreeNode {
}
@Override
- public void addSoftDeletePredicate(SpiQuery> query) {
+ public final void addSoftDeletePredicate(SpiQuery> query) {
if (desc.isSoftDelete()) {
query.addSoftDeletePredicate(desc.getSoftDeletePredicate(baseTableAlias));
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java
index 1b31ee08c..ae5e5bf3f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java
@@ -1,6 +1,5 @@
package io.ebeaninternal.server.query;
-import io.ebean.Version;
import io.ebean.bean.EntityBean;
import io.ebean.core.type.ScalarType;
import io.ebean.util.SplitName;
@@ -22,7 +21,7 @@ import java.util.Set;
* etc in this case we must add an extra join.
*
*/
-class SqlTreeNodeExtraJoin implements SqlTreeNode {
+final class SqlTreeNodeExtraJoin implements SqlTreeNode {
private final STreePropertyAssoc assocBeanProperty;
private final SpiQuery.TemporalMode temporalMode;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java
index 20a3037da..faf1ce4f1 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java
@@ -1,6 +1,5 @@
package io.ebeaninternal.server.query;
-import io.ebean.Version;
import io.ebean.bean.EntityBean;
import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.SpiQuery;
@@ -13,7 +12,7 @@ import java.util.Set;
/**
* Join to Many (or child of a many) to support where clause predicates on many properties.
*/
-class SqlTreeNodeFormulaWhereJoin implements SqlTreeNode {
+final class SqlTreeNodeFormulaWhereJoin implements SqlTreeNode {
private final STreeProperty nodeBeanProp;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java
index c537c4bf7..c3f534a25 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java
@@ -1,6 +1,5 @@
package io.ebeaninternal.server.query;
-import io.ebean.Version;
import io.ebean.bean.EntityBean;
import io.ebean.core.type.ScalarType;
import io.ebean.util.SplitName;
@@ -15,21 +14,16 @@ import java.util.Set;
/**
* Join to Many (or child of a many) to support where clause predicates on many properties.
*/
-class SqlTreeNodeManyWhereJoin implements SqlTreeNode {
+final class SqlTreeNodeManyWhereJoin implements SqlTreeNode {
private final String parentPrefix;
-
private final String prefix;
-
private final STreePropertyAssoc nodeBeanProp;
-
private final STreeType target;
-
/**
* The many where join which is either INNER or OUTER.
*/
private final SqlJoinType manyJoinType;
-
private final boolean softDelete;
SqlTreeNodeManyWhereJoin(String prefix, STreePropertyAssoc prop, SqlJoinType manyJoinType, SpiQuery.TemporalMode temporalMode) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java
index e52477cf1..a58c51cc5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeRoot.java
@@ -18,9 +18,7 @@ import java.util.Set;
final class SqlTreeNodeRoot extends SqlTreeNodeBean implements SqlTreeRoot {
private final TableJoin includeJoin;
-
private final boolean sqlDistinct;
-
private final String baseTable;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java
index f46ca8088..489341789 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java
@@ -10,24 +10,16 @@ import java.util.List;
/**
* The select properties for a node in the SqlTree.
*/
-public class SqlTreeProperties {
+public final class SqlTreeProperties {
- /**
- * The bean properties in order.
- */
private final List propsList = new ArrayList<>();
-
/**
* Maintain a list of property names to detect embedded bean additions.
*/
private final LinkedHashSet propNames = new LinkedHashSet<>();
-
private boolean allProperties;
-
private boolean aggregationManyToOne;
-
private boolean aggregation;
-
private String aggregationPath;
SqlTreeProperties() {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/AbstractQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/AbstractQuery.java
index 62fd3cdf0..4ad835188 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/AbstractQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/AbstractQuery.java
@@ -15,14 +15,12 @@ import io.ebeaninternal.api.SpiCancelableQuery;
*/
public class AbstractQuery implements SpiCancelableQuery {
+ private final ReentrantLock lock = new ReentrantLock();
private boolean cancelled;
-
private CancelableQuery cancelableQuery;
- private final ReentrantLock lock = new ReentrantLock();
-
@Override
- public void cancel() {
+ public final void cancel() {
lock.lock();
try {
if (!cancelled) {
@@ -37,14 +35,14 @@ public class AbstractQuery implements SpiCancelableQuery {
}
@Override
- public void checkCancelled() {
+ public final void checkCancelled() {
if (cancelled) {
throw new PersistenceException("Query was cancelled");
}
}
@Override
- public void setCancelableQuery(CancelableQuery cancelableQuery) {
+ public final void setCancelableQuery(CancelableQuery cancelableQuery) {
lock.lock();
try {
checkCancelled();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java
index c2cb02198..4a72c0057 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java
@@ -21,35 +21,20 @@ import java.util.stream.Stream;
/**
* Default implementation of DtoQuery.
*/
-public class DefaultDtoQuery extends AbstractQuery implements SpiDtoQuery {
+public final class DefaultDtoQuery extends AbstractQuery implements SpiDtoQuery {
private final SpiEbeanServer server;
-
private final DtoBeanDescriptor descriptor;
-
private final SpiQuery> ormQuery;
-
private String sql;
-
private int firstRow;
-
private int maxRows;
-
private int timeout;
-
private int bufferFetchSizeHint;
-
private boolean relaxedMode;
-
private String label;
-
private ProfileLocation profileLocation;
-
- /**
- * Bind parameters when using the query language.
- */
private final BindParams bindParams = new BindParams();
-
private Transaction transaction;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java
index b5aeec323..65ba6b9a3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java
@@ -32,77 +32,47 @@ import java.util.stream.Stream;
/**
* Default implementation of an Object Relational query.
*/
-public class DefaultOrmQuery extends AbstractQuery implements SpiQuery {
+public final class DefaultOrmQuery extends AbstractQuery implements SpiQuery {
private static final String DEFAULT_QUERY_NAME = "default";
-
private static final FetchConfig FETCH_CACHE = FetchConfig.ofCache();
-
private static final FetchConfig FETCH_QUERY = FetchConfig.ofQuery();
-
private static final FetchConfig FETCH_LAZY = FetchConfig.ofLazy();
private final Class beanType;
-
private final ExpressionFactory expressionFactory;
-
private final BeanDescriptor rootBeanDescriptor;
-
private BeanDescriptor beanDescriptor;
-
private SpiEbeanServer server;
-
private SpiTransaction transaction;
-
/**
* For lazy loading of ManyToMany we need to add a join to the intersection table. This is that
* join to the intersection table.
*/
private TableJoin m2mIncludeJoin;
-
private ProfilingListener profilingListener;
-
private Type type;
-
private String label;
-
private Mode mode = Mode.NORMAL;
-
private Object tenantId;
-
/**
* Holds query in structured form.
*/
private OrmQueryDetail detail;
-
private int maxRows;
-
private int firstRow;
-
- /**
- * Set to true to disable lazy loading on the object graph returned.
- */
private boolean disableLazyLoading;
-
/**
* Lazy loading batch size (can override server wide default).
*/
private int lazyLoadBatchSize;
-
private OrderBy orderBy;
-
private String loadMode;
-
private String loadDescription;
-
private String generatedSql;
-
private String lazyLoadProperty;
-
private String lazyLoadManyPath;
-
private boolean allowLoadErrors;
-
/**
* Flag set for report/DTO beans when we may choose to explicitly include the Id property.
*/
@@ -141,97 +111,55 @@ public class DefaultOrmQuery extends AbstractQuery implements SpiQuery {
* Bind parameters when using the query language.
*/
private BindParams bindParams;
-
private DefaultExpressionList textExpressions;
-
private DefaultExpressionList whereExpressions;
-
private DefaultExpressionList havingExpressions;
-
private boolean asOfBaseTable;
-
private int asOfTableCount;
/**
* Set for flashback style 'as of' query.
*/
private Timestamp asOf;
-
private TemporalMode temporalMode = TemporalMode.CURRENT;
-
private Timestamp versionsStart;
private Timestamp versionsEnd;
-
private List softDeletePredicates;
-
private boolean disableReadAudit;
-
private int bufferFetchSizeHint;
-
private boolean usageProfiling = true;
-
private CacheMode useBeanCache = CacheMode.AUTO;
-
private CacheMode useQueryCache = CacheMode.OFF;
-
private Boolean readOnly;
-
private PersistenceContextScope persistenceContextScope;
/**
* Allow for explicit on off or null for default.
*/
private Boolean autoTune;
-
private LockWait forUpdate;
private LockType lockType;
-
private boolean singleAttribute;
-
private CountDistinctOrder countDistinctOrder;
-
- /**
- * Set to true if this query has been tuned by autoTune.
- */
private boolean autoTuned;
-
- /**
- * Root table alias. For {@link Query#alias(String)} command.
- */
private String rootTableAlias;
-
private String baseTable;
-
/**
* The node of the bean or collection that fired lazy loading. Not null if profiling is on and
* this query is for lazy loading. Used to hook back a lazy loading query to the "original" query
* point.
*/
private ObjectGraphNode parentNode;
-
private BeanPropertyAssocMany> lazyLoadForParentsProperty;
-
- /**
- * Hash of final query after AutoTune tuning.
- */
private CQueryPlanKey queryPlanKey;
-
private PersistenceContext persistenceContext;
-
private ManyWhereJoins manyWhereJoins;
-
private SpiRawSql rawSql;
-
private boolean useDocStore;
-
private String docIndexName;
-
private OrmUpdateProperties updateProperties;
-
private String nativeSql;
-
private boolean orderById;
-
private ProfileLocation profileLocation;
public DefaultOrmQuery(BeanDescriptor desc, SpiEbeanServer server, ExpressionFactory expressionFactory) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmUpdate.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmUpdate.java
index 0381df322..88b84fc2f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmUpdate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmUpdate.java
@@ -14,41 +14,21 @@ public final class DefaultOrmUpdate implements SpiUpdate, Serializable {
private static final long serialVersionUID = -8791423602246515438L;
-
private transient final EbeanServer server;
-
private final Class> beanType;
-
- /**
- * The name of the update.
- */
private final String name;
-
private String label;
-
- /**
- * The parameters used to bind to the sql.
- */
private final BindParams bindParams = new BindParams();
-
- /**
- * The sql update or delete statement.
- */
private final String updateStatement;
-
/**
* Automatically detect the table being modified by this sql. This will
* register this information so that eBean invalidates cached objects if
* required.
*/
private boolean notifyCache = true;
-
private int timeout;
-
private String generatedSql;
-
private final String baseTable;
-
private final OrmUpdateType type;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultRelationalQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultRelationalQuery.java
index 6afe54a1f..879d1bdaf 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultRelationalQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultRelationalQuery.java
@@ -17,27 +17,17 @@ import java.util.function.Predicate;
/**
* Default implementation of SQuery - SQL Query.
*/
-public class DefaultRelationalQuery extends AbstractQuery implements SpiSqlQuery {
+public final class DefaultRelationalQuery extends AbstractQuery implements SpiSqlQuery {
private static final long serialVersionUID = -1098305779779591068L;
private final transient SpiEbeanServer server;
-
private final String query;
-
private String label;
-
private int firstRow;
-
private int maxRows;
-
private int timeout;
-
private int bufferFetchSizeHint;
-
- /**
- * Bind parameters when using the query language.
- */
private final BindParams bindParams = new BindParams();
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultUpdateQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultUpdateQuery.java
index 897424b8a..c9ed9ca11 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultUpdateQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultUpdateQuery.java
@@ -10,7 +10,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Default implementation of UpdateQuery.
*/
-public class DefaultUpdateQuery implements UpdateQuery {
+public final class DefaultUpdateQuery implements UpdateQuery {
private final OrmUpdateProperties values = new OrmUpdateProperties();
private final DefaultOrmQuery query;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/NaturalKeyBindParam.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/NaturalKeyBindParam.java
index 3655a3ef4..301ec4ef3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/NaturalKeyBindParam.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/NaturalKeyBindParam.java
@@ -1,9 +1,8 @@
package io.ebeaninternal.server.querydefn;
-public class NaturalKeyBindParam {
+public final class NaturalKeyBindParam {
private final String name;
-
private final Object value;
public NaturalKeyBindParam(String name, Object value) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/ONamedParam.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/ONamedParam.java
index e63526063..f2585a708 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/ONamedParam.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/ONamedParam.java
@@ -7,10 +7,9 @@ import javax.persistence.PersistenceException;
/**
* Named parameter used as placeholder in expressions created by EQL language parsing.
*/
-class ONamedParam implements SpiNamedParam {
+final class ONamedParam implements SpiNamedParam {
private final String name;
-
private Object value;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetail.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetail.java
index 2fabfdd79..90f4cbac1 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetail.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetail.java
@@ -21,7 +21,7 @@ import java.util.*;
* Tuning a query is a matter of replacing an instance of this class with one that has been tuned
* with select() and join() set.
*/
-public class OrmQueryDetail implements Serializable {
+public final class OrmQueryDetail implements Serializable {
private static final long serialVersionUID = -2510486880141461807L;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetailParser.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetailParser.java
index 0314b55b6..744f70ebf 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetailParser.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryDetailParser.java
@@ -9,10 +9,9 @@ import javax.persistence.PersistenceException;
* replace the OrmQueryDetail leaving the attributes unchanged.
*
*/
-public class OrmQueryDetailParser {
+public final class OrmQueryDetailParser {
private final OrmQueryDetail detail = new OrmQueryDetail();
-
private final SimpleTextParser parser;
public OrmQueryDetailParser(String oql) {
@@ -20,7 +19,6 @@ public class OrmQueryDetailParser {
}
public OrmQueryDetail parse() throws PersistenceException {
-
if (parser.isEmpty()) return detail;
parser.nextWord();
@@ -68,7 +66,6 @@ public class OrmQueryDetailParser {
}
private OrmQueryProperties readFindFetch() {
-
boolean readAlias = false;
String props = null;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryLimitRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryLimitRequest.java
index 99354bf71..a36889557 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryLimitRequest.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryLimitRequest.java
@@ -4,16 +4,12 @@ import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.SqlLimitRequest;
import io.ebeaninternal.api.SpiQuery;
-public class OrmQueryLimitRequest implements SqlLimitRequest {
+public final class OrmQueryLimitRequest implements SqlLimitRequest {
private final SpiQuery> ormQuery;
-
private final DatabasePlatform dbPlatform;
-
private final String sql;
-
private final String sqlOrderBy;
-
private final boolean distinct;
public OrmQueryLimitRequest(String sql, String sqlOrderBy, SpiQuery> ormQuery, DatabasePlatform dbPlatform, boolean distinct) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java
index 3a9ac8e33..3ce478c92 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java
@@ -8,7 +8,7 @@ import java.util.Objects;
/**
* Query plan key for ORM queries.
*/
-class OrmQueryPlanKey implements CQueryPlanKey {
+final class OrmQueryPlanKey implements CQueryPlanKey {
private final SpiRawSql.Key rawSqlKey;
private final int maxRows;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryProperties.java
index 0a8b51465..98864e744 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryProperties.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryProperties.java
@@ -23,7 +23,7 @@ import java.util.Set;
/**
* Represents the Properties of an Object Relational query.
*/
-public class OrmQueryProperties implements Serializable {
+public final class OrmQueryProperties implements Serializable {
private static final long serialVersionUID = -8785582703966455658L;
@@ -35,30 +35,24 @@ public class OrmQueryProperties implements Serializable {
private final Set included;
private final FetchConfig fetchConfig;
private final boolean cache;
-
/**
* Flag set when this fetch path needs to be a query join.
*/
private boolean markForQueryJoin;
-
/**
* Included bean joins.
*/
private Set includedBeanJoin;
-
/**
* Add these properties to the select so that the foreign key columns are included in the query.
*/
private Set secondaryQueryJoins;
-
private List secondaryChildren;
-
/**
* OrderBy properties that where on the main query but moved here as they relate to this (query join).
*/
@SuppressWarnings("rawtypes")
private OrderBy orderBy;
-
/**
* A filter that can be applied to the fetch of this path in the object graph.
*/
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQuerySecondary.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQuerySecondary.java
index 738566597..4d2a94b1c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQuerySecondary.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQuerySecondary.java
@@ -7,10 +7,9 @@ import java.util.List;
/**
* The secondary query paths for 'query joins' and 'lazy loading'.
*/
-class OrmQuerySecondary implements SpiQuerySecondary {
+final class OrmQuerySecondary implements SpiQuerySecondary {
private final List queryJoins;
-
private final List lazyJoins;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmUpdateProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmUpdateProperties.java
index 930e653f4..5a9d5b392 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmUpdateProperties.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmUpdateProperties.java
@@ -13,10 +13,9 @@ import java.util.Set;
/**
* Set properties for a UpdateQuery.
*/
-public class OrmUpdateProperties {
+public final class OrmUpdateProperties {
private static final NullValue NULL_VALUE = new NullValue();
-
private static final NoneValue NONE_VALUE = new NoneValue();
/**
@@ -41,7 +40,7 @@ public class OrmUpdateProperties {
/**
* Set property to null.
*/
- private static class NullValue extends Value {
+ private static final class NullValue extends Value {
@Override
public String bindClause() {
return "=null";
@@ -51,7 +50,7 @@ public class OrmUpdateProperties {
/**
* Set property to a simple value.
*/
- private static class SimpleValue extends Value {
+ private static final class SimpleValue extends Value {
final Object value;
final ScalarType