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 scalarType; @@ -85,7 +84,7 @@ public class OrmUpdateProperties { /** * Set using an expression with no bind value. */ - private static class NoneValue extends Value { + private static final class NoneValue extends Value { @Override public String bindClause() { return ""; @@ -95,7 +94,7 @@ public class OrmUpdateProperties { /** * Set using an expression with many bind values. */ - private static class RawArrayValue extends Value { + private static final class RawArrayValue extends Value { final Object[] bindValues; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/SimpleTextParser.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/SimpleTextParser.java index 849234e8c..0072c8eec 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/SimpleTextParser.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/SimpleTextParser.java @@ -1,11 +1,10 @@ package io.ebeaninternal.server.querydefn; -public class SimpleTextParser { +public final class SimpleTextParser { private final String oql; private final char[] chars; private final int eof; - private int pos; private String word; private String lowerWord;