From bd7499a5054564119b6609e1be94f8c43c87f181 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20P=C3=B6hler=20=28JPo=29?=
Date: Mon, 29 Mar 2021 13:23:56 +0200
Subject: [PATCH 01/68] Use SoftReference in Cache, so it can be gc'ed if the
jvm runs out of memory
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Jonas Pöhler (JPo)
---
.../server/cache/DefaultServerCache.java | 45 +++++++++++--------
.../cache/DefaultServerCacheConfig.java | 8 ++--
.../server/cache/DefaultServerQueryCache.java | 5 ++-
3 files changed, 35 insertions(+), 23 deletions(-)
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java
index 41ec3e2c9..334a0838a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java
@@ -11,6 +11,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.Serializable;
+import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
@@ -37,7 +38,7 @@ public class DefaultServerCache implements ServerCache {
/**
* The underlying map (ConcurrentHashMap or similar)
*/
- protected final Map
*/
-class BatchedBeanHolder {
+final class BatchedBeanHolder {
/**
* The owning queue.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java
index 0a764e35b..9afd4d6e8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java
@@ -20,7 +20,7 @@ import java.util.List;
* This can hold CallableStatements as well.
*
*/
-public class BatchedPstmt implements SpiProfileTransactionEvent {
+public final class BatchedPstmt implements SpiProfileTransactionEvent {
private static final Logger log = LoggerFactory.getLogger(BatchedPstmt.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmtHolder.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmtHolder.java
index 4bd892bd4..50ed43900 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmtHolder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmtHolder.java
@@ -15,7 +15,7 @@ import java.util.Map;
* statements of a single 'depth' at any given time.
*
*/
-public class BatchedPstmtHolder {
+public final class BatchedPstmtHolder {
/**
* A Map of the statements using a String key. This is used so that the same
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java
index 600a7e21a..bec0223d0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java
@@ -31,7 +31,7 @@ import java.util.List;
/**
* Binds bean values to a PreparedStatement.
*/
-public class Binder {
+public final class Binder {
private static final Logger logger = LoggerFactory.getLogger(Binder.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java
index e086e2630..760d9eda3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java
@@ -5,7 +5,7 @@ import io.ebean.Transaction;
import io.ebean.event.BeanDeleteIdRequest;
import io.ebeaninternal.api.SpiEbeanServer;
-class DeleteIdRequest implements BeanDeleteIdRequest {
+final class DeleteIdRequest implements BeanDeleteIdRequest {
private final EbeanServer server;
private final Transaction transaction;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteUnloadedForeignKeys.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteUnloadedForeignKeys.java
index c3065b779..1c258b5bb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteUnloadedForeignKeys.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteUnloadedForeignKeys.java
@@ -21,7 +21,7 @@ import java.util.List;
* helps fetch the foreign keys and delete the appropriate rows.
*
*/
-class DeleteUnloadedForeignKeys {
+final class DeleteUnloadedForeignKeys {
private final List> propList = new ArrayList<>(4);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DmlUtil.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DmlUtil.java
index 46ce61d33..c7693f6e8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DmlUtil.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DmlUtil.java
@@ -4,7 +4,7 @@ package io.ebeaninternal.server.persist;
/**
* Utility object with helper methods for DML.
*/
-public class DmlUtil {
+public final class DmlUtil {
/**
* Return true if the value is null or a Numeric 0 (for primitive int's and long's) or Option empty.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java
index 2c01fcd31..fc2c1e0e5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeCallableSql.java
@@ -13,10 +13,9 @@ import java.sql.SQLException;
/**
* Handles the execution of CallableSql requests.
*/
-class ExeCallableSql {
+final class ExeCallableSql {
private final Binder binder;
-
private final PstmtFactory pstmtFactory;
ExeCallableSql(Binder binder) {
@@ -28,9 +27,7 @@ class ExeCallableSql {
* execute the CallableSql requests.
*/
public int execute(PersistRequestCallableSql request) {
-
boolean batchThisRequest = request.isBatchThisRequest();
-
CallableStatement cstmt = null;
try {
cstmt = bindStmt(request, batchThisRequest);
@@ -58,18 +55,15 @@ class ExeCallableSql {
private CallableStatement bindStmt(PersistRequestCallableSql request, boolean batchThisRequest) throws SQLException {
-
request.startBind(batchThisRequest);
SpiCallableSql callableSql = request.getCallableSql();
SpiTransaction t = request.getTransaction();
String sql = callableSql.getSql();
-
BindParams bindParams = callableSql.getBindParams();
// process named parameters if required
sql = BindParamsParser.parse(bindParams, sql);
-
boolean logSql = request.isLogSql();
CallableStatement cstmt;
@@ -90,9 +84,7 @@ class ExeCallableSql {
if (!bindParams.isEmpty()) {
bindLog = binder.bind(bindParams, cstmt, t.getInternalConnection());
}
-
request.setBindLog(bindLog);
-
// required to read OUT params later
request.setBound(bindParams, cstmt);
return cstmt;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java
index d79a4d66f..ee9ffad23 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeOrmUpdate.java
@@ -15,15 +15,11 @@ import java.sql.SQLException;
/**
* Executes the UpdateSql requests.
*/
-class ExeOrmUpdate {
+final class ExeOrmUpdate {
private final Binder binder;
-
private final PstmtFactory pstmtFactory;
- /**
- * Create with a given binder.
- */
ExeOrmUpdate(Binder binder) {
this.pstmtFactory = new PstmtFactory();
this.binder = binder;
@@ -33,9 +29,7 @@ class ExeOrmUpdate {
* Execute the orm update request.
*/
public int execute(PersistRequestOrmUpdate request) {
-
boolean batchThisRequest = request.isBatchThisRequest();
-
PreparedStatement pstmt = null;
try {
pstmt = bindStmt(request, batchThisRequest);
@@ -68,13 +62,11 @@ class ExeOrmUpdate {
* Convert bean and property names to db table and columns.
*/
private String translate(PersistRequestOrmUpdate request, String sql) {
-
BeanDescriptor> descriptor = request.getBeanDescriptor();
return descriptor.convertOrmUpdateToSql(sql);
}
private PreparedStatement bindStmt(PersistRequestOrmUpdate request, boolean batchThisRequest) throws SQLException {
-
request.startBind(batchThisRequest);
SpiUpdate> ormUpdate = request.getOrmUpdate();
SpiTransaction t = request.getTransaction();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java
index cea7560c9..75627671f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/ExeUpdateSql.java
@@ -16,15 +16,11 @@ import java.sql.SQLException;
/**
* Executes the UpdateSql requests.
*/
-class ExeUpdateSql {
+final class ExeUpdateSql {
private final Binder binder;
-
private final PstmtFactory pstmtFactory;
- /**
- * Create with a given binder.
- */
ExeUpdateSql(Binder binder) {
this.binder = binder;
this.pstmtFactory = new PstmtFactory();
@@ -34,14 +30,10 @@ class ExeUpdateSql {
* Execute the UpdateSql request.
*/
public int execute(PersistRequestUpdateSql request) {
-
boolean batchThisRequest = request.isBatchThisRequest();
-
PreparedStatement pstmt = null;
try {
-
pstmt = bindStmt(request, batchThisRequest);
-
if (batchThisRequest) {
pstmt.addBatch();
// return -1 to indicate batch mode
@@ -66,7 +58,6 @@ class ExeUpdateSql {
}
private void readGeneratedKeys(PreparedStatement stmt, PersistRequestUpdateSql request) {
-
ResultSet resultSet = null;
try {
resultSet = stmt.getGeneratedKeys();
@@ -82,7 +73,6 @@ class ExeUpdateSql {
}
private PreparedStatement bindStmt(PersistRequestUpdateSql request, boolean batchThisRequest) throws SQLException {
-
request.startBind(batchThisRequest);
SpiSqlUpdate updateSql = request.getUpdateSql();
SpiTransaction t = request.getTransaction();
@@ -121,7 +111,6 @@ class ExeUpdateSql {
private void determineType(String word1, String word2, String word3, PersistRequestUpdateSql request) {
-
if (word1.equalsIgnoreCase("UPDATE")) {
request.setType(SqlType.SQL_UPDATE, word2);
@@ -137,7 +126,6 @@ class ExeUpdateSql {
}
private void parseUpdate(String sql, PersistRequestUpdateSql request) {
-
int[] pos = new int[3];
int spaceCount = 0;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeContext.java
index bdd6ce855..e3cb0d5e2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeContext.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeContext.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* Context used for merge processing.
*/
-class MergeContext {
+final class MergeContext {
private final SpiEbeanServer server;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeHandler.java
index b2d53ba40..3e09a44f9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeHandler.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeHandler.java
@@ -24,7 +24,7 @@ import java.util.regex.Pattern;
/**
* Drives the merge processing.
*/
-class MergeHandler {
+final class MergeHandler {
private static final Pattern PATH_SPLIT = Pattern.compile("\\.");
@@ -33,10 +33,8 @@ class MergeHandler {
private final EntityBean bean;
private final MergeOptions options;
private final SpiTransaction transaction;
-
private final Map nodes = new LinkedHashMap<>();
-
MergeHandler(SpiEbeanServer server, BeanDescriptor> desc, EntityBean bean, MergeOptions options, SpiTransaction transaction) {
this.server = server;
this.desc = desc;
@@ -49,7 +47,6 @@ class MergeHandler {
* Fetch the Ids for the graph and use them to determine inserts, updates and deletes for the merge paths.
*/
List merge() {
-
Set paths = options.paths();
if (desc.isIdGeneratedValue() && paths.isEmpty() && !options.isClientGeneratedIds()) {
// just do a single insert or update based on Id value present
@@ -76,7 +73,6 @@ class MergeHandler {
for (MergeNode value : nodes.values()) {
value.merge(request);
}
-
return context.getDeletedBeans();
}
@@ -86,9 +82,7 @@ class MergeHandler {
* We use the Id values to determine what are inserts, updates and deletes as part of the merge.
*/
private EntityBean fetchOutline(Set paths) {
-
Query> query = server.find(desc.getBeanType());
-
query.setBeanCacheMode(CacheMode.OFF);
query.setPersistenceContextScope(PersistenceContextScope.QUERY);
query.setId(desc.getId(bean));
@@ -126,14 +120,12 @@ class MergeHandler {
}
private MergeNode addRootLevelNode(String rootPath) {
-
MergeNode node = createMergeNode(rootPath, desc, rootPath);
nodes.put(rootPath, node);
return node;
}
static MergeNode createMergeNode(String fullPath, BeanDescriptor> targetDesc, String path) {
-
BeanProperty prop = targetDesc.getBeanProperty(path);
if (!(prop instanceof BeanPropertyAssoc)) {
throw new PersistenceException("merge path [" + path + "] is not a ToMany or ToOne property of " + targetDesc.getFullName());
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNode.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNode.java
index fa2dc398e..cc5ebeaba 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNode.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNode.java
@@ -33,7 +33,7 @@ abstract class MergeNode {
/**
* Add a child node given the fullPath and relative path.
*/
- MergeNode addChild(String fullPath, String path) {
+ final MergeNode addChild(String fullPath, String path) {
MergeNode childNode = MergeHandler.createMergeNode(fullPath, targetDescriptor, path);
if (children == null) {
children = new LinkedHashMap<>();
@@ -45,7 +45,7 @@ abstract class MergeNode {
/**
* Return the node given the relative path.
*/
- MergeNode get(String path) {
+ final MergeNode get(String path) {
if (children != null) {
return children.get(path);
}
@@ -55,8 +55,7 @@ abstract class MergeNode {
/**
* Return the outline beans as a map keyed by Id values.
*/
- Map toMap(Collection outlines) {
-
+ final Map toMap(Collection outlines) {
Map outlineMap = new HashMap<>();
if (outlines != null) {
for (Object out : outlines) {
@@ -71,8 +70,7 @@ abstract class MergeNode {
/**
* Add to the query to fetch the Ids values for the foreign keys basically.
*/
- void addSelectId(Query> query) {
-
+ final void addSelectId(Query> query) {
BeanProperty idProperty = targetDescriptor.getIdProperty();
query.fetch(fullPath, idProperty.getName());
}
@@ -80,8 +78,7 @@ abstract class MergeNode {
/**
* Cascade the merge processing if this has child nodes.
*/
- void cascade(EntityBean entityBean, EntityBean outlineBean, MergeRequest request) {
-
+ final void cascade(EntityBean entityBean, EntityBean outlineBean, MergeRequest request) {
if (children != null && !children.isEmpty()) {
MergeRequest sub = request.sub(entityBean, outlineBean);
for (MergeNode node : children.values()) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocManyToMany.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocManyToMany.java
index 7fd74e8a9..02acdf3f9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocManyToMany.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocManyToMany.java
@@ -15,7 +15,7 @@ import java.util.Map;
/**
* Node for processing merge on ManyToMany properties.
*/
-class MergeNodeAssocManyToMany extends MergeNode {
+final class MergeNodeAssocManyToMany extends MergeNode {
private final BeanPropertyAssocMany> many;
@@ -26,14 +26,11 @@ class MergeNodeAssocManyToMany extends MergeNode {
@Override
public void merge(MergeRequest request) {
-
EntityBean parentBean = request.getBean();
-
Collection beans = many.getRawCollection(parentBean);
Collection outlines = many.getRawCollection(request.getOutline());
Map outlineIds = toMap(outlines);
-
List additions = new ArrayList<>();
if (beans != null) {
for (Object bean : beans) {
@@ -57,7 +54,6 @@ class MergeNodeAssocManyToMany extends MergeNode {
if (!deletions.isEmpty()) {
transaction.flush();
-
SqlUpdate delete = intersectionTable.delete(server, false);
for (EntityBean deletion : deletions) {
many.intersectionBind(delete, parentBean, deletion);
@@ -68,7 +64,6 @@ class MergeNodeAssocManyToMany extends MergeNode {
if (!additions.isEmpty()) {
transaction.flush();
-
SqlUpdate insert = intersectionTable.insert(server, false);
for (EntityBean addition : additions) {
many.intersectionBind(insert, parentBean, addition);
@@ -76,7 +71,6 @@ class MergeNodeAssocManyToMany extends MergeNode {
}
insert.execute();
}
-
many.resetMany(parentBean);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOne.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOne.java
index 90f44e07f..68438bf40 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOne.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOne.java
@@ -8,7 +8,7 @@ import java.util.Objects;
/**
* Node for processing merge on ToOne properties.
*/
-class MergeNodeAssocOne extends MergeNode {
+final class MergeNodeAssocOne extends MergeNode {
private final BeanPropertyAssocOne> one;
@@ -19,7 +19,6 @@ class MergeNodeAssocOne extends MergeNode {
@Override
public void merge(MergeRequest request) {
-
EntityBean entityBean = getEntityBean(request.getBean());
if (entityBean == null) {
checkOrphanRemoval(request);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOneToMany.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOneToMany.java
index a75ea26fb..8372c955d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOneToMany.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeNodeAssocOneToMany.java
@@ -9,7 +9,7 @@ import java.util.Map;
/**
* Node for processing merge on ToMany properties.
*/
-class MergeNodeAssocOneToMany extends MergeNode {
+final class MergeNodeAssocOneToMany extends MergeNode {
private final BeanPropertyAssocMany> many;
@@ -20,12 +20,10 @@ class MergeNodeAssocOneToMany extends MergeNode {
@Override
public void merge(MergeRequest request) {
-
Collection beans = many.getRawCollection(request.getBean());
Collection outlines = many.getRawCollection(request.getOutline());
Map outlineIds = toMap(outlines);
-
if (beans != null) {
for (Object bean : beans) {
EntityBean entityBean = (EntityBean) bean;
@@ -40,7 +38,6 @@ class MergeNodeAssocOneToMany extends MergeNode {
}
}
}
-
// any remaining are considered deletes
for (EntityBean outlineBean : outlineIds.values()) {
request.addDelete(outlineBean);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeRequest.java
index 1826e749e..d893fd999 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeRequest.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MergeRequest.java
@@ -7,11 +7,10 @@ import io.ebeaninternal.api.SpiTransaction;
/**
* Request object used for processing the merge.
*/
-class MergeRequest {
+final class MergeRequest {
private final EntityBean bean;
private final EntityBean outline;
-
private final MergeContext context;
MergeRequest(MergeContext context, EntityBean bean, EntityBean outline) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MultiValueWrapper.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MultiValueWrapper.java
index 36104822a..5e23a66cd 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/MultiValueWrapper.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/MultiValueWrapper.java
@@ -6,7 +6,7 @@ import java.util.Collection;
* Wraps the multi values that are used for "property in (...)" queries
* @author Roland Praml, FOCONIS AG
*/
-public class MultiValueWrapper {
+public final class MultiValueWrapper {
private final Collection> values;
private final Class> type;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/PstmtFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/PstmtFactory.java
index 14b24dd3b..fb47147da 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/PstmtFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/PstmtFactory.java
@@ -15,10 +15,7 @@ import java.sql.Statement;
* getGeneratedKeys.
*
*/
-class PstmtFactory {
-
- PstmtFactory() {
- }
+final class PstmtFactory {
/**
* Get a callable statement without any batching.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java
index f305e3244..a31cee3f2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java
@@ -46,20 +46,20 @@ abstract class SaveManyBase implements SaveMany {
*/
abstract void save();
- void preElementCollectionUpdate() {
+ final void preElementCollectionUpdate() {
if (!insertedParent) {
request.preElementCollectionUpdate();
persister.addToFlushQueue(many.deleteByParentId(request.getBeanId(), null), transaction, 1);
}
}
- void resetModifyState() {
+ final void resetModifyState() {
if (value instanceof BeanCollection>) {
modifyListenReset((BeanCollection>) value);
}
}
- void modifyListenReset(BeanCollection> c) {
+ final void modifyListenReset(BeanCollection> c) {
if (insertedParent) {
// after insert set the modify listening mode for private owned etc
c.setModifyListening(many.getModifyListenMode());
@@ -67,7 +67,7 @@ abstract class SaveManyBase implements SaveMany {
c.modifyReset();
}
- void postElementCollectionUpdate() {
+ final void postElementCollectionUpdate() {
if (!insertedParent) {
if (request.isNotifyCache()) {
try {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java
index 1f1da9fc0..33edf8dd8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java
@@ -26,7 +26,7 @@ import static io.ebeaninternal.server.persist.DmlUtil.isNullOrZero;
/**
* Saves the details for a OneToMany or ManyToMany relationship (entity beans).
*/
-public class SaveManyBeans extends SaveManyBase {
+public final class SaveManyBeans extends SaveManyBase {
private static final Logger log = LoggerFactory.getLogger(SaveManyBeans.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollection.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollection.java
index 53f638114..8b577da93 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollection.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollection.java
@@ -11,7 +11,7 @@ import java.util.Collection;
/**
* Save details for a simple scalar element collection.
*/
-class SaveManyElementCollection extends SaveManyBase {
+final class SaveManyElementCollection extends SaveManyBase {
private Collection> collection;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollectionMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollectionMap.java
index 60dd2e01d..2941a1499 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollectionMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyElementCollectionMap.java
@@ -12,7 +12,7 @@ import java.util.Set;
/**
* Save details for a simple scalar map element collection.
*/
-class SaveManyElementCollectionMap extends SaveManyBase {
+final class SaveManyElementCollectionMap extends SaveManyBase {
private Set> entries;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/TrimLogSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/TrimLogSql.java
index 1ab6349a0..f38490420 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/TrimLogSql.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/TrimLogSql.java
@@ -3,7 +3,7 @@ package io.ebeaninternal.server.persist;
/**
* Utility to improve logging of raw SQL that contains new line characters.
*/
-public class TrimLogSql {
+public final class TrimLogSql {
/**
* Replace new line chars for nicer logging of multi-line sql strings.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/BaseMeta.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/BaseMeta.java
index d7ed5c90c..872119060 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/BaseMeta.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/BaseMeta.java
@@ -16,19 +16,17 @@ class BaseMeta {
this.tenantId = tenantId;
}
- String appendWhere(GenerateDmlRequest request, ConcurrencyMode conMode) {
+ final String appendWhere(GenerateDmlRequest request, ConcurrencyMode conMode) {
request.setWhereIdMode();
id.dmlAppend(request);
if (tenantId != null) {
tenantId.dmlAppend(request);
}
-
if (ConcurrencyMode.VERSION == conMode) {
if (version != null) {
version.dmlAppend(request);
}
}
-
return request.toString();
}
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteHandler.java
index 9320a49fa..846e88f80 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteHandler.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteHandler.java
@@ -10,7 +10,7 @@ import java.sql.SQLException;
/**
* Delete bean handler.
*/
-public class DeleteHandler extends DmlHandler {
+final class DeleteHandler extends DmlHandler {
private final DeleteMeta meta;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java
index ccb196947..7baac04ab 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java
@@ -30,7 +30,6 @@ final class DeleteMeta extends BaseMeta {
String draftTableName = desc.getDraftTable();
this.sqlDraftNone = genSql(ConcurrencyMode.NONE, draftTableName);
this.sqlDraftVersion = genSql(ConcurrencyMode.VERSION, draftTableName);
-
} else {
this.sqlDraftNone = sqlNone;
this.sqlDraftVersion = sqlVersion;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersister.java
index f07d207b8..f9d592cf3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersister.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersister.java
@@ -16,7 +16,7 @@ import java.sql.SQLException;
* a flat list of Bindable objects.
*
*/
-public final class DmlBeanPersister implements BeanPersister {
+final class DmlBeanPersister implements BeanPersister {
private final DatabasePlatform dbPlatform;
private final UpdateMeta updateMeta;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersisterFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersisterFactory.java
index 6e349dee1..c9b4cadea 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersisterFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlBeanPersisterFactory.java
@@ -8,7 +8,7 @@ import io.ebeaninternal.server.persist.BeanPersisterFactory;
/**
* Factory for creating a DmlBeanPersister for a bean type.
*/
-public class DmlBeanPersisterFactory implements BeanPersisterFactory {
+public final class DmlBeanPersisterFactory implements BeanPersisterFactory {
private final DatabasePlatform dbPlatform;
private final MetaFactory metaFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DocStoreBeanPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DocStoreBeanPersister.java
index 9bbe7bfcd..9b9a9c2cf 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DocStoreBeanPersister.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DocStoreBeanPersister.java
@@ -8,7 +8,7 @@ import javax.persistence.PersistenceException;
/**
* Document store based BeanPersister.
*/
-class DocStoreBeanPersister implements BeanPersister {
+final class DocStoreBeanPersister implements BeanPersister {
private final GeneratedProperties generatedProperties;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GenerateDmlRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GenerateDmlRequest.java
index 809115563..ab292163d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GenerateDmlRequest.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GenerateDmlRequest.java
@@ -3,7 +3,7 @@ package io.ebeaninternal.server.persist.dml;
/**
* Helper to support the generation of DML statements.
*/
-public class GenerateDmlRequest {
+public final class GenerateDmlRequest {
private final StringBuilder sb = new StringBuilder(100);
private StringBuilder insertBindBuffer;
@@ -12,13 +12,7 @@ public class GenerateDmlRequest {
private int insertMode;
private int bindColumnCount;
- /**
- * Create from a PersistRequestBean.
- */
- public GenerateDmlRequest() {
- }
-
- public GenerateDmlRequest append(String s) {
+ GenerateDmlRequest append(String s) {
sb.append(s);
return this;
}
@@ -30,7 +24,6 @@ public class GenerateDmlRequest {
public void appendColumn(String column, String bind) {
++bindColumnCount;
-
sb.append(prefix);
sb.append(column);
//sb.append(expr);
@@ -43,7 +36,6 @@ public class GenerateDmlRequest {
sb.append("=");
sb.append(bind);
}
-
if (prefix2 != null) {
prefix = prefix2;
prefix2 = null;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedProperties.java
index 5f4090541..44a1d919b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedProperties.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedProperties.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* Executes the generated property (like WhenCreated, WhoCreated etc) for doc store persisting.
*/
-class GeneratedProperties {
+final class GeneratedProperties {
/**
* Create the GeneratedProperties for the given bean type.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedPropertyCollector.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedPropertyCollector.java
index 08036e143..33b804a6c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedPropertyCollector.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/GeneratedPropertyCollector.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* Collects the generated properties for inserts and updates for a given bean type.
*/
-class GeneratedPropertyCollector {
+final class GeneratedPropertyCollector {
private final List preInsert = new ArrayList<>();
private final List preUpdate = new ArrayList<>();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java
index d9fb1e8f0..113e6ff39 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertHandler.java
@@ -18,7 +18,7 @@ import static io.ebeaninternal.server.persist.DmlUtil.isNullOrZero;
/**
* Insert bean handler.
*/
-public class InsertHandler extends DmlHandler {
+public final class InsertHandler extends DmlHandler {
private final InsertMeta meta;
private final boolean concatenatedKey;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java
index de7c2bb39..7ad52d87f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java
@@ -22,7 +22,7 @@ import java.util.List;
/**
* Factory for creating InsertMeta UpdateMeta and DeleteMeta.
*/
-class MetaFactory {
+final class MetaFactory {
/**
* Include Lobs in the base statement. Generally true. Oracle9 used to require
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdateHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdateHandler.java
index 8a3e724c8..49f6e1bfb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdateHandler.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdateHandler.java
@@ -11,7 +11,7 @@ import java.sql.SQLException;
/**
* Update bean handler.
*/
-public class UpdateHandler extends DmlHandler {
+public final class UpdateHandler extends DmlHandler {
private final UpdateMeta meta;
private boolean emptySetClause;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdatePlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdatePlan.java
index 97811b5cf..69527de9b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdatePlan.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/UpdatePlan.java
@@ -10,7 +10,7 @@ import java.sql.SQLException;
/**
* Plan for executing bean updates for a given set of changed properties.
*/
-class UpdatePlan implements SpiUpdatePlan {
+final class UpdatePlan implements SpiUpdatePlan {
private final String key;
private final ConcurrencyMode mode;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocOne.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocOne.java
index 9a9be58fc..8eaa091a0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocOne.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocOne.java
@@ -24,30 +24,29 @@ class BindableAssocOne implements Bindable {
}
@Override
- public String toString() {
+ public final String toString() {
return "BindableAssocOne " + assocOne;
}
@Override
- public boolean isDraftOnly() {
+ public final boolean isDraftOnly() {
return assocOne.isDraftOnly();
}
@Override
- public void addToUpdate(PersistRequestBean> request, List list) {
+ public final void addToUpdate(PersistRequestBean> request, List list) {
if (request.isAddToUpdate(assocOne)) {
list.add(this);
}
}
@Override
- public void dmlAppend(GenerateDmlRequest request) {
+ public final void dmlAppend(GenerateDmlRequest request) {
importedId.dmlAppend(request);
}
@Override
public void dmlBind(BindableRequest request, EntityBean bean) throws SQLException {
-
EntityBean assocBean = (EntityBean) assocOne.getValue(bean);
registerDeferred(request, bean, assocBean);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocTenant.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocTenant.java
index eab3678a5..f3086783c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocTenant.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableAssocTenant.java
@@ -5,7 +5,7 @@ import io.ebeaninternal.server.deploy.BeanPropertyAssocOne;
import java.sql.SQLException;
-class BindableAssocTenant extends BindableAssocOne {
+final class BindableAssocTenant extends BindableAssocOne {
BindableAssocTenant(BeanPropertyAssocOne> assocOne) {
super(assocOne);
@@ -13,7 +13,6 @@ class BindableAssocTenant extends BindableAssocOne {
@Override
public void dmlBind(BindableRequest request, EntityBean bean) throws SQLException {
-
EntityBean assocBean = (EntityBean) assocOne.getValue(bean);
importedId.bind(request, assocBean);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableDiscriminator.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableDiscriminator.java
index 1079df8e0..565b85d27 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableDiscriminator.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableDiscriminator.java
@@ -12,7 +12,7 @@ import java.util.List;
/**
* Bindable for inserting a discriminator value.
*/
-public class BindableDiscriminator implements Bindable {
+public final class BindableDiscriminator implements Bindable {
private final String columnName;
private final Object discValue;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEmbedded.java
index 44b9a201e..cfda5ae6a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEmbedded.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEmbedded.java
@@ -10,15 +10,15 @@ import java.util.Arrays;
import java.util.List;
/**
- * Bindable for a Embedded bean.
+ * Bindable for an Embedded bean.
*/
-public class BindableEmbedded implements Bindable {
+final class BindableEmbedded implements Bindable {
private final Bindable[] items;
private final BeanPropertyAssocOne> embProp;
- public BindableEmbedded(BeanPropertyAssocOne> embProp, List bindList) {
+ BindableEmbedded(BeanPropertyAssocOne> embProp, List bindList) {
this.embProp = embProp;
this.items = bindList.toArray(new Bindable[0]);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEncryptedProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEncryptedProperty.java
index b855fef00..3bfd2fa41 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEncryptedProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableEncryptedProperty.java
@@ -12,13 +12,13 @@ import java.util.List;
/**
* Bindable for a DB encrypted BeanProperty.
*/
-public class BindableEncryptedProperty implements Bindable {
+final class BindableEncryptedProperty implements Bindable {
private final BeanProperty prop;
private final boolean bindEncryptDataFirst;
- public BindableEncryptedProperty(BeanProperty prop, boolean bindEncryptDataFirst) {
+ BindableEncryptedProperty(BeanProperty prop, boolean bindEncryptDataFirst) {
this.prop = prop;
this.bindEncryptDataFirst = bindEncryptDataFirst;
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdEmpty.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdEmpty.java
index 1f970ee25..fa9c73b0b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdEmpty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdEmpty.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.persist.dml.GenerateDmlRequest;
import java.util.List;
-public class BindableIdEmpty implements BindableId {
+final class BindableIdEmpty implements BindableId {
@Override
public boolean isEmpty() {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdScalar.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdScalar.java
index 4d0538f4a..518a236b7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdScalar.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableIdScalar.java
@@ -12,11 +12,11 @@ import java.util.List;
/**
* Bindable for a single scalar id property.
*/
-public final class BindableIdScalar implements BindableId {
+final class BindableIdScalar implements BindableId {
private final BeanProperty uidProp;
- public BindableIdScalar(BeanProperty uidProp) {
+ BindableIdScalar(BeanProperty uidProp) {
this.uidProp = uidProp;
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableList.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableList.java
index de6957ad1..85894ee53 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableList.java
@@ -12,7 +12,7 @@ import java.util.List;
/**
* List of Bindable items.
*/
-public class BindableList implements Bindable {
+public final class BindableList implements Bindable {
private final Bindable[] items;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableOrderColumn.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableOrderColumn.java
index ef7046634..7879d192c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableOrderColumn.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableOrderColumn.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* Bindable for the synthetic order column.
*/
-public class BindableOrderColumn extends BindableProperty {
+public final class BindableOrderColumn extends BindableProperty {
public BindableOrderColumn(BeanProperty prop) {
super(prop);
@@ -29,7 +29,6 @@ public class BindableOrderColumn extends BindableProperty {
*/
@Override
public void dmlBind(BindableRequest request, EntityBean bean) throws SQLException {
-
int sortOrder = bean._ebean_getIntercept().getSortOrder();
request.bind(sortOrder, prop);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableProperty.java
index 8716ddf91..8f50fe7b3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableProperty.java
@@ -11,21 +11,21 @@ import java.util.List;
/**
* Bindable for a single BeanProperty.
*/
-public class BindableProperty implements Bindable {
+class BindableProperty implements Bindable {
final BeanProperty prop;
- public BindableProperty(BeanProperty prop) {
+ BindableProperty(BeanProperty prop) {
this.prop = prop;
}
@Override
- public String toString() {
+ public final String toString() {
return prop.toString();
}
@Override
- public boolean isDraftOnly() {
+ public final boolean isDraftOnly() {
return prop.isDraftOnly();
}
@@ -37,7 +37,7 @@ public class BindableProperty implements Bindable {
}
@Override
- public void dmlAppend(GenerateDmlRequest request) {
+ public final void dmlAppend(GenerateDmlRequest request) {
request.appendColumn(prop.getDbColumn());
}
@@ -46,7 +46,6 @@ public class BindableProperty implements Bindable {
*/
@Override
public void dmlBind(BindableRequest request, EntityBean bean) throws SQLException {
-
Object value = null;
if (bean != null) {
value = prop.getValue(bean);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonInsert.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonInsert.java
index 1cbb7eeca..a6d6d6cb6 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonInsert.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonInsert.java
@@ -9,7 +9,7 @@ import java.sql.SQLException;
/**
* For JSON Jackson properties - dirty detection via MD5 of json content.
*/
-class BindablePropertyJsonInsert extends BindableProperty {
+final class BindablePropertyJsonInsert extends BindableProperty {
private final int propertyIndex;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonUpdate.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonUpdate.java
index cfa056a63..7501fd92b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonUpdate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyJsonUpdate.java
@@ -8,7 +8,7 @@ import java.sql.SQLException;
/**
* For JSON Jackson properties - dirty detection via MD5 of json content.
*/
-class BindablePropertyJsonUpdate extends BindableProperty {
+final class BindablePropertyJsonUpdate extends BindableProperty {
private final int propertyIndex;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyVersion.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyVersion.java
index 5cdea3e8b..db28c3035 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyVersion.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindablePropertyVersion.java
@@ -11,11 +11,11 @@ import java.util.List;
/**
* Bindable for a Version BeanProperty. Obtains value from 'old values'.
*/
-public class BindablePropertyVersion implements Bindable {
+final class BindablePropertyVersion implements Bindable {
private final BeanProperty prop;
- public BindablePropertyVersion(BeanProperty prop) {
+ BindablePropertyVersion(BeanProperty prop) {
this.prop = prop;
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableUnidirectional.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableUnidirectional.java
index 4e94b85d2..2ea853644 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableUnidirectional.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/BindableUnidirectional.java
@@ -18,19 +18,16 @@ import java.util.List;
* parentBean.
*
*/
-public class BindableUnidirectional implements Bindable {
+public final class BindableUnidirectional implements Bindable {
private final BeanPropertyAssocOne> unidirectional;
-
private final ImportedId importedId;
-
private final BeanDescriptor> desc;
public BindableUnidirectional(BeanDescriptor> desc, BeanPropertyAssocOne> unidirectional) {
this.desc = desc;
this.unidirectional = unidirectional;
this.importedId = unidirectional.getImportedId();
-
}
@Override
@@ -54,13 +51,10 @@ public class BindableUnidirectional implements Bindable {
importedId.dmlAppend(request);
}
-
@Override
public void dmlBind(BindableRequest request, EntityBean bean) throws SQLException {
-
PersistRequestBean> persistRequest = request.getPersistRequest();
Object parentBean = persistRequest.getParentBean();
-
if (parentBean == null) {
Class> localType = desc.getBeanType();
Class> targetType = unidirectional.getTargetType();
@@ -69,7 +63,6 @@ public class BindableUnidirectional implements Bindable {
msg += "For inserts you must use cascade save on the master bean [" + targetType + "].";
throw new PersistenceException(msg);
}
-
importedId.bind(request, (EntityBean) parentBean);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryAssocOnes.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryAssocOnes.java
index bf3b0723d..7c2314bed 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryAssocOnes.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryAssocOnes.java
@@ -9,16 +9,12 @@ import java.util.List;
/**
* A factory that builds Bindable for BeanPropertyAssocOne properties.
*/
-public class FactoryAssocOnes {
-
- public FactoryAssocOnes() {
- }
+public final class FactoryAssocOnes {
/**
* Add foreign key columns from associated one beans.
*/
public void create(List list, BeanDescriptor> desc, DmlMode mode) {
-
for (BeanPropertyAssocOne> one : desc.propertiesOneImported()) {
if (!one.isImportedPrimaryKey()) {
switch (mode) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryBaseProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryBaseProperties.java
index 43b9bec8d..209f17bbf 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryBaseProperties.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryBaseProperties.java
@@ -12,11 +12,10 @@ import java.util.List;
* This excludes unique embedded and associated properties.
*
*/
-public class FactoryBaseProperties {
+public final class FactoryBaseProperties {
private final FactoryProperty factoryProperty;
-
public FactoryBaseProperties(boolean bindEncryptDataFirst) {
factoryProperty = new FactoryProperty(bindEncryptDataFirst);
}
@@ -25,7 +24,6 @@ public class FactoryBaseProperties {
* Add Bindable for the base properties to the list.
*/
public void create(List list, BeanDescriptor> desc, DmlMode mode, boolean withLobs) {
-
for (BeanProperty prop : desc.propertiesBaseScalar()) {
if (!prop.isImportedPrimaryKey()) {
Bindable item = factoryProperty.create(prop, mode, withLobs, false);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryEmbedded.java
index 380c7b3a9..cef891682 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryEmbedded.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryEmbedded.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* A factory that builds Bindable for embedded bean properties.
*/
-public class FactoryEmbedded {
+public final class FactoryEmbedded {
private final FactoryProperty factoryProperty;
@@ -23,7 +23,6 @@ public class FactoryEmbedded {
* Add bindable for the embedded properties to the list.
*/
public void create(List list, BeanDescriptor> desc, DmlMode mode, boolean withLobs) {
-
for (BeanPropertyAssocOne> anEmbedded : desc.propertiesEmbedded()) {
BeanProperty[] props = anEmbedded.getProperties();
List bindList = new ArrayList<>(props.length);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryId.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryId.java
index d517e051b..398f59ecf 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryId.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryId.java
@@ -7,23 +7,18 @@ import io.ebeaninternal.server.deploy.BeanPropertyAssocOne;
/**
* Create a Bindable for the ids of a bean type.
*/
-public class FactoryId {
-
- public FactoryId() {
- }
+public final class FactoryId {
/**
* Add uniqueId properties.
*/
public BindableId createId(BeanDescriptor> desc) {
-
BeanProperty id = desc.getIdProperty();
if (id == null) {
return new BindableIdEmpty();
}
if (!id.isEmbedded()) {
return new BindableIdScalar(id);
-
} else {
BeanPropertyAssocOne> embId = (BeanPropertyAssocOne>) id;
MatchedImportedProperty[] matches = MatchedImportedFactory.build(embId.getProperties(), desc);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryProperty.java
index d5c59daf3..7de3e79ea 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryProperty.java
@@ -12,7 +12,7 @@ import io.ebeaninternal.server.persist.dml.DmlMode;
* and BindablePropertyUpdateGenerated as required.
*
*/
-class FactoryProperty {
+final class FactoryProperty {
private final boolean bindEncryptDataFirst;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryVersion.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryVersion.java
index abb7f1a20..7c418af31 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryVersion.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/FactoryVersion.java
@@ -7,17 +7,12 @@ import io.ebeaninternal.server.deploy.BeanPropertyAssocOne;
/**
* Creates a Bindable to support version concurrency where clauses.
*/
-public class FactoryVersion {
-
-
- public FactoryVersion() {
- }
+public final class FactoryVersion {
/**
* Create a Bindable for the version property(s) for a bean type.
*/
public Bindable create(BeanDescriptor> desc) {
-
BeanProperty versionProperty = desc.getVersionProperty();
return (versionProperty == null) ? null : new BindablePropertyVersion(versionProperty);
}
@@ -26,7 +21,6 @@ public class FactoryVersion {
* Create a Bindable for the version property(s) for a bean type.
*/
public Bindable createForDelete(BeanDescriptor> desc) {
-
BeanProperty versionProperty = desc.getVersionProperty();
return (versionProperty == null) ? null : new BindableProperty(versionProperty);
}
@@ -35,7 +29,6 @@ public class FactoryVersion {
* Create a Bindable for TenantId If multi-tenant with partitioning is on this bean type.
*/
public Bindable createTenantId(BeanDescriptor> desc) {
-
BeanProperty tenant = desc.getTenantProperty();
if (tenant == null) {
return null;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedEmbedded.java
index 4ce1bb63d..60a32ea19 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedEmbedded.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedEmbedded.java
@@ -8,12 +8,10 @@ import io.ebeaninternal.server.deploy.BeanPropertyAssocOne;
* Matches local embedded id properties to 'matching' properties from a
* ManyToOne associated bean that is a 'imported primary key'.
*/
-class MatchedImportedEmbedded implements MatchedImportedProperty {
+final class MatchedImportedEmbedded implements MatchedImportedProperty {
private final BeanProperty localProp;
-
private final BeanPropertyAssocOne> assocOne;
-
private final BeanProperty foreignProp;
MatchedImportedEmbedded(BeanProperty localProp, BeanPropertyAssocOne> assocOne, BeanProperty foreignProp) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedFactory.java
index 714e910dd..e4fa26284 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedFactory.java
@@ -4,15 +4,13 @@ import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.deploy.BeanProperty;
import io.ebeaninternal.server.deploy.BeanPropertyAssocOne;
-class MatchedImportedFactory {
+final class MatchedImportedFactory {
/**
* Create the array of matchedImportedProperty based on the properties and descriptor.
*/
static MatchedImportedProperty[] build(BeanProperty[] props, BeanDescriptor> desc) {
-
MatchedImportedProperty[] matches = new MatchedImportedProperty[props.length];
-
for (int i = 0; i < props.length; i++) {
// find matching assoc one property for dbColumn
matches[i] = findMatch(props[i], desc);
@@ -25,12 +23,9 @@ class MatchedImportedFactory {
}
private static MatchedImportedProperty findMatch(BeanProperty prop, BeanDescriptor> desc) {
-
// find matching against the local database column
String dbColumn = prop.getDbColumn();
-
- BeanPropertyAssocOne>[] assocOnes = desc.propertiesOne();
- for (BeanPropertyAssocOne> assocOne1 : assocOnes) {
+ for (BeanPropertyAssocOne> assocOne1 : desc.propertiesOne()) {
if (assocOne1.isImportedPrimaryKey()) {
// search using the ImportedId from the assoc one
BeanProperty foreignMatch = assocOne1.getImportedId().findMatchImport(dbColumn);
@@ -39,14 +34,11 @@ class MatchedImportedFactory {
}
}
}
-
- BeanProperty[] scalar = desc.propertiesBaseScalar();
- for (BeanProperty beanProperty : scalar) {
+ for (BeanProperty beanProperty : desc.propertiesBaseScalar()) {
if (dbColumn.equals(beanProperty.getDbColumn())) {
return new MatchedImportedScalar(prop, beanProperty);
}
}
-
// there was no matching assoc one property.
// example UserRole bean missing assoc one to User?
return null;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedScalar.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedScalar.java
index 436ef69a5..de9907863 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedScalar.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dmlbind/MatchedImportedScalar.java
@@ -6,10 +6,9 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Matches local embedded id properties to 'matching' imported primary key scalar properties.
*/
-class MatchedImportedScalar implements MatchedImportedProperty {
+final class MatchedImportedScalar implements MatchedImportedProperty {
private final BeanProperty localProp;
-
private final BeanProperty foreignProp;
MatchedImportedScalar(BeanProperty localProp, BeanProperty foreignProp) {
@@ -19,7 +18,6 @@ class MatchedImportedScalar implements MatchedImportedProperty {
@Override
public void populate(EntityBean sourceBean, EntityBean embeddedId) {
-
Object value = foreignProp.getValue(sourceBean);
localProp.setValue(embeddedId, value);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java
index 3559a3a69..1a15b8438 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java
@@ -11,7 +11,6 @@ import java.util.Collection;
*/
public class MultiValueBind {
-
@FunctionalInterface
public interface BindOne {
void bind(Object value) throws SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java
index f90d5cfb8..f7d86f55e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java
@@ -6,7 +6,7 @@ import io.ebean.core.type.ScalarType;
/**
* Multi value binder that uses Postgres Array.
*/
-public class PostgresMultiValueBind extends AbstractMultiValueBind {
+public final class PostgresMultiValueBind extends AbstractMultiValueBind {
@Override
public String getInExpression(boolean not, ScalarType> type, int size) {
From 0688061f5cb2eed9b872ca2d648e9a72335cb55f Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Sun, 15 Aug 2021 15:17:19 +1200
Subject: [PATCH 12/68] Speed up TestUuidGenerator
---
.../server/idgen/TestUuidGenerator.java | 47 ++++++-------------
1 file changed, 15 insertions(+), 32 deletions(-)
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/idgen/TestUuidGenerator.java b/ebean-core/src/test/java/io/ebeaninternal/server/idgen/TestUuidGenerator.java
index 0f27c5a89..3623fdd73 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/idgen/TestUuidGenerator.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/idgen/TestUuidGenerator.java
@@ -2,39 +2,32 @@
* Licensed Materials - Property of FOCONIS AG
* (C) Copyright FOCONIS AG.
*/
-
package io.ebeaninternal.server.idgen;
-
-import static org.assertj.core.api.Assertions.assertThat;
+import io.ebean.config.dbplatform.PlatformIdGenerator;
+import org.junit.Test;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
-import org.junit.Test;
-
-import io.ebean.config.dbplatform.PlatformIdGenerator;
-
+import static org.assertj.core.api.Assertions.assertThat;
/**
* Run some simple tests for the UUID generator.
*
* @author Roland Praml, FOCONIS AG
- *
*/
public class TestUuidGenerator {
-
-/**
- * Worker to generate UUIDs
- *
- * @author Roland Praml, FOCONIS AG
- *
- */
+ /**
+ * Worker to generate UUIDs
+ *
+ * @author Roland Praml, FOCONIS AG
+ */
public static class IdTest implements Runnable {
- private final Map map;
+ private final Map map;
private final PlatformIdGenerator idGen;
private final int ids;
private final AtomicBoolean failFlag;
@@ -46,12 +39,6 @@ public class TestUuidGenerator {
this.failFlag = failFlag;
}
- public IdTest(PlatformIdGenerator idGen, int ids) {
- this.idGen = idGen;
- this.ids = ids;
- this.map = null;
- this.failFlag = null;
- }
@Override
public void run() {
//System.out.println("Start " + Thread.currentThread());
@@ -70,7 +57,7 @@ public class TestUuidGenerator {
*/
@Test
public void testUuidV1SingleThread() throws Exception {
- testGenerator(1, 1_000_000, UuidV1IdGenerator.getInstance("ebean-test-uuid.state"));
+ testGenerator(1, 500_000, UuidV1IdGenerator.getInstance("ebean-test-uuid.state"));
}
/**
@@ -78,7 +65,7 @@ public class TestUuidGenerator {
*/
@Test
public void testUuidV1MultiThread() throws Exception {
- testGenerator(10, 100_000, UuidV1IdGenerator.getInstance("ebean-test-uuid.state"));
+ testGenerator(10, 50_000, UuidV1IdGenerator.getInstance("ebean-test-uuid.state"));
}
/**
@@ -86,7 +73,7 @@ public class TestUuidGenerator {
*/
@Test
public void testUuidV1RndMultiThread() throws Exception {
- testGenerator(10, 100_000, UuidV1RndIdGenerator.INSTANCE);
+ testGenerator(10, 50_000, UuidV1RndIdGenerator.INSTANCE);
}
/**
@@ -94,7 +81,7 @@ public class TestUuidGenerator {
*/
@Test
public void testUuidType1RndSingleThread() throws Exception {
- testGenerator(1, 1_000_000, UuidV1RndIdGenerator.INSTANCE);
+ testGenerator(1, 500_000, UuidV1RndIdGenerator.INSTANCE);
}
/**
@@ -102,7 +89,7 @@ public class TestUuidGenerator {
*/
@Test
public void testUuidType4MultiThread() throws Exception {
- testGenerator(10, 100_000, UuidV4IdGenerator.INSTANCE);
+ testGenerator(10, 50_000, UuidV4IdGenerator.INSTANCE);
}
/**
@@ -110,12 +97,9 @@ public class TestUuidGenerator {
*/
@Test
public void testUuidType4SingleThread() throws Exception {
- testGenerator(1, 1_000_000, UuidV4IdGenerator.INSTANCE);
+ testGenerator(1, 500_000, UuidV4IdGenerator.INSTANCE);
}
-
-
-
private void testGenerator(int threadCount, int count, PlatformIdGenerator generator) throws Exception {
System.out.println("Printing 5 consecutive IDs of " + generator);
for (int i = 0; i < 5; i++) {
@@ -136,6 +120,5 @@ public class TestUuidGenerator {
}
assertThat(failFlag.get()).isFalse();
assertThat(map.size()).isEqualTo(threadCount * count);
-
}
}
From 4109fab0d86ef1ab1b2d5af3b97573a5a02e068f Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Sun, 15 Aug 2021 15:22:02 +1200
Subject: [PATCH 13/68] #2313 - Refactor internals - make more classes final in
query packages
---
.../server/query/BaseFuture.java | 8 +-
.../io/ebeaninternal/server/query/CQuery.java | 2 +-
.../server/query/CQueryBindCapture.java | 2 +-
.../server/query/CQueryBuilder.java | 2 +-
.../server/query/CQueryBuilderRawSql.java | 2 +-
.../server/query/CQueryCollectionAddNoop.java | 2 +-
.../server/query/CQueryDraftSupport.java | 2 +-
.../server/query/CQueryEngine.java | 2 +-
.../query/CQueryFetchSingleAttribute.java | 2 +-
.../server/query/CQueryHistorySupport.java | 2 +-
.../server/query/CQueryIteratorSimple.java | 2 +-
.../query/CQueryIteratorWithBuffer.java | 2 +-
.../server/query/CQueryOrderBy.java | 2 +-
.../server/query/CQueryPlan.java | 48 ++++++------
.../server/query/CQueryPlanManager.java | 2 +-
.../server/query/CQueryPlanRawSql.java | 3 +-
.../server/query/CQueryPlanRequest.java | 4 +-
.../server/query/CQueryPlanStats.java | 3 -
.../server/query/CQueryPredicates.java | 25 +------
.../server/query/CQueryRowCount.java | 2 +-
.../server/query/CQueryUpdate.java | 2 +-
.../server/query/CallableQuery.java | 2 -
.../server/query/CallableQueryCount.java | 4 +-
.../server/query/CallableQueryIds.java | 4 +-
.../server/query/CallableQueryList.java | 3 +-
.../server/query/DFetchGroup.java | 2 +-
.../server/query/DFetchGroupBuilder.java | 2 +-
.../server/query/DQueryPlanOutput.java | 2 +-
.../server/query/DbOrderByTrim.java | 2 +-
.../server/query/DefaultDbSqlContext.java | 2 +-
.../server/query/DefaultFetchGroupQuery.java | 2 +-
.../server/query/DefaultOrmQueryEngine.java | 2 +-
.../query/DefaultRelationalQueryEngine.java | 2 +-
.../server/query/DefaultSqlRow.java | 2 +-
.../server/query/DtoQueryEngine.java | 2 +-
.../server/query/DtoQueryIterator.java | 2 +-
.../ebeaninternal/server/query/ExtraJoin.java | 2 +-
.../server/query/LimitOffsetPagedList.java | 2 +-
.../server/query/OrderVersionDesc.java | 2 +-
.../server/query/QueryFutureIds.java | 2 +-
.../server/query/QueryFutureList.java | 2 +-
.../server/query/QueryFutureRowCount.java | 2 +-
.../server/query/QueryPlanLogger.java | 6 +-
.../server/query/QueryPlanLoggerExplain.java | 2 +-
.../server/query/QueryPlanLoggerOracle.java | 2 +-
.../server/query/QueryPlanLoggerPostgres.java | 2 +-
.../query/QueryPlanLoggerSqlServer.java | 2 +-
.../server/query/RawSqlQueryPlanKey.java | 2 +-
.../server/query/SqlBeanLoad.java | 2 +-
.../ebeaninternal/server/query/SqlTree.java | 2 +-
.../server/query/SqlTreeAlias.java | 2 +-
.../server/query/SqlTreeBuilder.java | 22 +-----
.../server/query/SqlTreeNodeBean.java | 44 ++++-------
.../server/query/SqlTreeNodeExtraJoin.java | 3 +-
.../query/SqlTreeNodeFormulaWhereJoin.java | 3 +-
.../query/SqlTreeNodeManyWhereJoin.java | 8 +-
.../server/query/SqlTreeNodeRoot.java | 2 -
.../server/query/SqlTreeProperties.java | 10 +--
.../server/querydefn/AbstractQuery.java | 10 +--
.../server/querydefn/DefaultDtoQuery.java | 17 +----
.../server/querydefn/DefaultOrmQuery.java | 74 +------------------
.../server/querydefn/DefaultOrmUpdate.java | 20 -----
.../querydefn/DefaultRelationalQuery.java | 12 +--
.../server/querydefn/DefaultUpdateQuery.java | 2 +-
.../server/querydefn/NaturalKeyBindParam.java | 3 +-
.../server/querydefn/ONamedParam.java | 3 +-
.../server/querydefn/OrmQueryDetail.java | 2 +-
.../querydefn/OrmQueryDetailParser.java | 5 +-
.../querydefn/OrmQueryLimitRequest.java | 6 +-
.../server/querydefn/OrmQueryPlanKey.java | 2 +-
.../server/querydefn/OrmQueryProperties.java | 8 +-
.../server/querydefn/OrmQuerySecondary.java | 3 +-
.../server/querydefn/OrmUpdateProperties.java | 11 ++-
.../server/querydefn/SimpleTextParser.java | 3 +-
74 files changed, 120 insertions(+), 343 deletions(-)
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;
From f3b0e34b673c15feb5ca0c83ea5d665f5c5e3ca1 Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 09:16:31 +1200
Subject: [PATCH 14/68] #2315 - Refactor internals - make more classes final in
transaction packages
---
.../properties/BeanPropertiesReader.java | 3 +-
.../server/transaction/BeanPersistIds.java | 4 +-
.../transaction/BulkEventListenerMap.java | 6 +-
.../transaction/DefaultProfileHandler.java | 2 +-
.../transaction/DefaultProfileStream.java | 2 +-
.../DefaultTransactionScopeManager.java | 11 +-
.../transaction/DocStoreOnlyTransaction.java | 2 +-
.../DocStoreTransactionManager.java | 2 +-
.../ExternalTransactionScopeManager.java | 2 +-
.../ImplicitReadOnlyTransaction.java | 2 +-
.../server/transaction/JdbcTransaction.java | 169 +++++++++---------
.../server/transaction/JtaTransaction.java | 2 +-
.../transaction/JtaTransactionManager.java | 2 +-
.../server/transaction/NoTransaction.java | 4 +-
.../transaction/NoopProfileHandler.java | 2 +-
.../server/transaction/RemoteTableMod.java | 2 +-
.../transaction/RemoteTransactionEvent.java | 2 +-
.../transaction/SavepointTransaction.java | 2 +-
.../server/transaction/TChangeLogHolder.java | 2 +-
.../server/transaction/TableModState.java | 2 +-
.../transaction/TransactionFactory.java | 5 +-
.../transaction/TransactionFactoryBasic.java | 3 +-
.../TransactionFactoryBasicWithRead.java | 5 +-
.../TransactionFactoryBuilder.java | 2 +-
.../transaction/TransactionFactoryTenant.java | 3 +-
.../TransactionFactoryTenantWithRead.java | 5 +-
.../transaction/TransactionManager.java | 90 +++++-----
.../TransactionManagerOptions.java | 2 +-
.../transaction/TransactionProfile.java | 2 +-
29 files changed, 161 insertions(+), 181 deletions(-)
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/properties/BeanPropertiesReader.java b/ebean-core/src/main/java/io/ebeaninternal/server/properties/BeanPropertiesReader.java
index e00fdf497..a283a42ea 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/properties/BeanPropertiesReader.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/properties/BeanPropertiesReader.java
@@ -8,10 +8,9 @@ import java.util.Map;
/**
* Determines the properties on a given bean.
*/
-public class BeanPropertiesReader {
+public final class BeanPropertiesReader {
private final Map propertyIndexMap = new HashMap<>();
-
private final String[] props;
public BeanPropertiesReader(Class> clazz) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIds.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIds.java
index bb1690bfe..280f3c28f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIds.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIds.java
@@ -28,12 +28,10 @@ import java.util.List;
* size of data sent around the network.
*
*/
-public class BeanPersistIds implements BinaryWritable {
+public final class BeanPersistIds implements BinaryWritable {
private final BeanDescriptor> beanDescriptor;
-
private final String descriptorId;
-
/**
* The ids to invalidate from the cache (updates and deletes).
*/
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java
index 86a6428b7..bcc91909f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java
@@ -8,12 +8,11 @@ import java.util.HashMap;
import java.util.List;
import java.util.Set;
-public class BulkEventListenerMap {
+public final class BulkEventListenerMap {
private final HashMap map = new HashMap<>();
public BulkEventListenerMap(List listeners) {
-
if (listeners != null) {
for (BulkTableEventListener l : listeners) {
Set tables = l.registeredTables();
@@ -29,7 +28,6 @@ public class BulkEventListenerMap {
}
public void process(BulkTableEvent event) {
-
Entry entry = map.get(event.getTableName());
if (entry != null) {
entry.process(event);
@@ -42,7 +40,7 @@ public class BulkEventListenerMap {
entry.add(l);
}
- private static class Entry {
+ private static final class Entry {
final List listeners = new ArrayList<>();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java
index 38f5446d2..177e4bc15 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java
@@ -38,7 +38,7 @@ import static java.time.temporal.ChronoField.YEAR;
*
* Uses a sleep backoff on the single threaded consumer that reads the profiles and writes them to files.
*/
-public class DefaultProfileHandler implements SpiProfileHandler, Plugin {
+public final class DefaultProfileHandler implements SpiProfileHandler, Plugin {
private static final Logger log = LoggerFactory.getLogger(DefaultProfileHandler.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileStream.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileStream.java
index bc2913137..38c38e3d5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileStream.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileStream.java
@@ -5,7 +5,7 @@ import io.ebean.ProfileLocation;
/**
* Default transaction profiling event collection.
*/
-public class DefaultProfileStream implements ProfileStream {
+public final class DefaultProfileStream implements ProfileStream {
private final long startNanos;
private final StringBuilder buffer;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultTransactionScopeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultTransactionScopeManager.java
index 0cabba365..2ad93d490 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultTransactionScopeManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultTransactionScopeManager.java
@@ -9,7 +9,6 @@ import javax.persistence.PersistenceException;
*/
public class DefaultTransactionScopeManager extends TransactionScopeManager {
-
private final ThreadLocal local = new ThreadLocal<>();
@Override
@@ -18,7 +17,7 @@ public class DefaultTransactionScopeManager extends TransactionScopeManager {
}
@Override
- public SpiTransaction getInScope() {
+ public final SpiTransaction getInScope() {
return local.get();
}
@@ -33,7 +32,7 @@ public class DefaultTransactionScopeManager extends TransactionScopeManager {
}
@Override
- public void replace(SpiTransaction trans) {
+ public final void replace(SpiTransaction trans) {
if (trans == null) {
throw new IllegalStateException("Setting a null transaction?");
}
@@ -41,7 +40,7 @@ public class DefaultTransactionScopeManager extends TransactionScopeManager {
}
@Override
- public void set(SpiTransaction trans) {
+ public final void set(SpiTransaction trans) {
if (trans == null) {
throw new IllegalStateException("Setting a null transaction?");
}
@@ -50,13 +49,13 @@ public class DefaultTransactionScopeManager extends TransactionScopeManager {
}
@Override
- public void clear() {
+ public final void clear() {
checkForActiveTransaction();
local.remove();
}
@Override
- public void clearExternal() {
+ public final void clearExternal() {
local.remove();
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreOnlyTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreOnlyTransaction.java
index 43fb216a5..0165fb1e8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreOnlyTransaction.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreOnlyTransaction.java
@@ -5,7 +5,7 @@ import java.sql.Connection;
/**
* Document store only transaction.
*/
-public class DocStoreOnlyTransaction extends JdbcTransaction {
+public final class DocStoreOnlyTransaction extends JdbcTransaction {
/**
* Create a new DocStore only Transaction.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreTransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreTransactionManager.java
index 364e46841..d23476c25 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreTransactionManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DocStoreTransactionManager.java
@@ -9,7 +9,7 @@ import java.sql.Connection;
*
* There is no underlying JDBC DataSource etc
*/
-public class DocStoreTransactionManager extends TransactionManager {
+public final class DocStoreTransactionManager extends TransactionManager {
/**
* Create the TransactionManager
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ExternalTransactionScopeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ExternalTransactionScopeManager.java
index b033e277b..6922e2129 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ExternalTransactionScopeManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ExternalTransactionScopeManager.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.api.SpiTransaction;
/**
* A TransactionScopeManager aware of external transaction managers.
*/
-public class ExternalTransactionScopeManager extends DefaultTransactionScopeManager {
+public final class ExternalTransactionScopeManager extends DefaultTransactionScopeManager {
private final ExternalTransactionManager externalManager;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java
index e4e36e337..cbb4f7618 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java
@@ -27,7 +27,7 @@ import java.util.Map;
* persisting features are attempted to be used - which is not expected).
*
*/
-class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEventCodes {
+final class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEventCodes {
private static final Logger logger = LoggerFactory.getLogger(ImplicitReadOnlyTransaction.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java
index f61f03699..d271d1c04 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java
@@ -219,56 +219,56 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void setLabel(String label) {
+ public final void setLabel(String label) {
this.label = label;
}
@Override
- public String getLabel() {
+ public final String getLabel() {
return label;
}
@Override
- public long getStartNanoTime() {
+ public final long getStartNanoTime() {
return startNanos;
}
@Override
- public long profileOffset() {
+ public final long profileOffset() {
return (profileStream == null) ? 0 : profileStream.offset();
}
@Override
- public void profileEvent(SpiProfileTransactionEvent event) {
+ public final void profileEvent(SpiProfileTransactionEvent event) {
if (profileStream != null) {
event.profile();
}
}
@Override
- public void setProfileStream(ProfileStream profileStream) {
+ public final void setProfileStream(ProfileStream profileStream) {
this.profileStream = profileStream;
}
@Override
- public ProfileStream profileStream() {
+ public final ProfileStream profileStream() {
return profileStream;
}
@Override
- public void setProfileLocation(ProfileLocation profileLocation) {
+ public final void setProfileLocation(ProfileLocation profileLocation) {
this.profileLocation = profileLocation;
}
@Override
- public ProfileLocation getProfileLocation() {
+ public final ProfileLocation getProfileLocation() {
return profileLocation;
}
/**
* Overridden in AutoCommitJdbcTransaction as that expects to run/operate with autocommit true.
*/
- void checkAutoCommit(Connection connection) throws SQLException {
+ final void checkAutoCommit(Connection connection) throws SQLException {
if (connection != null) {
this.autoCommit = connection.getAutoCommit();
if (this.autoCommit) {
@@ -289,34 +289,34 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void setAutoPersistUpdates(boolean autoPersistUpdates) {
+ public final void setAutoPersistUpdates(boolean autoPersistUpdates) {
this.autoPersistUpdates = autoPersistUpdates;
this.batchMode = true;
}
@Override
- public boolean isAutoPersistUpdates() {
+ public final boolean isAutoPersistUpdates() {
return autoPersistUpdates;
}
@Override
- public boolean isSkipCacheExplicit() {
+ public final boolean isSkipCacheExplicit() {
return (skipCache != null && !skipCache);
}
@Override
- public boolean isSkipCache() {
+ public final boolean isSkipCache() {
if (skipCache != null) return skipCache;
return skipCacheAfterWrite && !queryOnly;
}
@Override
- public void setSkipCache(boolean skipCache) {
+ public final void setSkipCache(boolean skipCache) {
this.skipCache = skipCache;
}
@Override
- public String getLogPrefix() {
+ public final String getLogPrefix() {
return logPrefix;
}
@@ -330,7 +330,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void addBeanChange(BeanChange beanChange) {
+ public final void addBeanChange(BeanChange beanChange) {
if (changeLogHolder == null) {
changeLogHolder = new TChangeLogHolder(this, 100);
}
@@ -338,14 +338,14 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void sendChangeLog(ChangeSet changesRequest) {
+ public final void sendChangeLog(ChangeSet changesRequest) {
if (manager != null) {
manager.sendChangeLog(changesRequest);
}
}
@Override
- public void register(TransactionCallback callback) {
+ public final void register(TransactionCallback callback) {
if (callbackList == null) {
callbackList = new ArrayList<>(4);
}
@@ -391,27 +391,27 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public int getDocStoreBatchSize() {
+ public final int getDocStoreBatchSize() {
return docStoreBatchSize;
}
@Override
- public void setDocStoreBatchSize(int docStoreBatchSize) {
+ public final void setDocStoreBatchSize(int docStoreBatchSize) {
this.docStoreBatchSize = docStoreBatchSize;
}
@Override
- public DocStoreMode getDocStoreMode() {
+ public final DocStoreMode getDocStoreMode() {
return docStoreMode;
}
@Override
- public void setDocStoreMode(DocStoreMode docStoreMode) {
+ public final void setDocStoreMode(DocStoreMode docStoreMode) {
this.docStoreMode = docStoreMode;
}
@Override
- public void registerDeferred(PersistDeferredRelationship derived) {
+ public final void registerDeferred(PersistDeferredRelationship derived) {
if (deferredList == null) {
deferredList = new ArrayList<>();
}
@@ -425,7 +425,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
*
*/
@Override
- public void registerDeleteBean(Integer persistingBean) {
+ public final void registerDeleteBean(Integer persistingBean) {
if (deletingBeansHash == null) {
deletingBeansHash = new HashSet<>();
}
@@ -436,7 +436,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Return true if this is a bean that has already been saved/deleted.
*/
@Override
- public boolean isRegisteredDeleteBean(Integer persistingBean) {
+ public final boolean isRegisteredDeleteBean(Integer persistingBean) {
return deletingBeansHash != null && deletingBeansHash.contains(persistingBean);
}
@@ -444,7 +444,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Unregister the persisted beans (when persisting at the top level).
*/
@Override
- public void unregisterBeans() {
+ public final void unregisterBeans() {
persistingBeans.clear();
}
@@ -453,7 +453,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* register the bean if it is not already.
*/
@Override
- public boolean isRegisteredBean(Object bean) {
+ public final boolean isRegisteredBean(Object bean) {
if (persistingBeans == null) {
persistingBeans = new IdentityHashMap<>();
}
@@ -465,7 +465,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* This is to stop m2m intersection management via both directions of a m2m.
*/
@Override
- public boolean isSaveAssocManyIntersection(String intersectionTable, String beanName) {
+ public final boolean isSaveAssocManyIntersection(String intersectionTable, String beanName) {
if (m2mIntersectionSave == null) {
// first attempt so yes allow this m2m intersection direction
m2mIntersectionSave = new HashMap<>();
@@ -500,7 +500,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* @param diff the amount to add or subtract from the depth.
*/
@Override
- public void depth(int diff) {
+ public final void depth(int diff) {
depth += diff;
}
@@ -508,12 +508,12 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Return the current depth.
*/
@Override
- public int depth() {
+ public final int depth() {
return depth;
}
@Override
- public void markNotQueryOnly() {
+ public final void markNotQueryOnly() {
this.queryOnly = false;
}
@@ -543,17 +543,17 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void setUpdateAllLoadedProperties(boolean updateAllLoadedProperties) {
+ public final void setUpdateAllLoadedProperties(boolean updateAllLoadedProperties) {
this.updateAllLoadedProperties = updateAllLoadedProperties;
}
@Override
- public Boolean isUpdateAllLoadedProperties() {
+ public final Boolean isUpdateAllLoadedProperties() {
return updateAllLoadedProperties;
}
@Override
- public void setBatchMode(boolean batchMode) {
+ public final void setBatchMode(boolean batchMode) {
if (!isActive()) {
throw new IllegalStateException(illegalStateMessage);
}
@@ -561,12 +561,12 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public boolean isBatchMode() {
+ public final boolean isBatchMode() {
return batchMode;
}
@Override
- public void setBatchOnCascade(boolean batchMode) {
+ public final void setBatchOnCascade(boolean batchMode) {
if (!isActive()) {
throw new IllegalStateException(illegalStateMessage);
}
@@ -574,17 +574,17 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public boolean isBatchOnCascade() {
+ public final boolean isBatchOnCascade() {
return batchOnCascadeMode;
}
@Override
- public Boolean getBatchGetGeneratedKeys() {
+ public final Boolean getBatchGetGeneratedKeys() {
return batchGetGeneratedKeys;
}
@Override
- public void setGetGeneratedKeys(boolean getGeneratedKeys) {
+ public final void setGetGeneratedKeys(boolean getGeneratedKeys) {
this.batchGetGeneratedKeys = getGeneratedKeys;
if (batchControl != null) {
batchControl.setGetGeneratedKeys(getGeneratedKeys);
@@ -592,7 +592,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void setFlushOnMixed(boolean batchFlushOnMixed) {
+ public final void setFlushOnMixed(boolean batchFlushOnMixed) {
this.batchFlushOnMixed = batchFlushOnMixed;
if (batchControl != null) {
batchControl.setBatchFlushOnMixed(batchFlushOnMixed);
@@ -606,12 +606,12 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
*
*/
@Override
- public int getBatchSize() {
+ public final int getBatchSize() {
return batchSize;
}
@Override
- public void setBatchSize(int batchSize) {
+ public final void setBatchSize(int batchSize) {
this.batchSize = batchSize;
if (batchControl != null) {
batchControl.setBatchSize(batchSize);
@@ -619,12 +619,12 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public boolean isFlushOnQuery() {
+ public final boolean isFlushOnQuery() {
return batchFlushOnQuery;
}
@Override
- public void setFlushOnQuery(boolean batchFlushOnQuery) {
+ public final void setFlushOnQuery(boolean batchFlushOnQuery) {
this.batchFlushOnQuery = batchFlushOnQuery;
}
@@ -633,12 +633,12 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* this request should be executed immediately.
*/
@Override
- public boolean isBatchThisRequest() {
+ public final boolean isBatchThisRequest() {
return batchMode;
}
@Override
- public void checkBatchEscalationOnCollection() {
+ public final void checkBatchEscalationOnCollection() {
if (!batchMode && batchOnCascadeMode) {
batchMode = true;
batchOnCascadeSet = true;
@@ -646,7 +646,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void flushBatchOnCollection() {
+ public final void flushBatchOnCollection() {
if (batchOnCascadeSet) {
batchFlushReset();
// restore the previous batch mode of NONE
@@ -675,7 +675,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public PersistenceException translate(String message, SQLException cause) {
+ public final PersistenceException translate(String message, SQLException cause) {
if (manager != null) {
return manager.translate(message, cause);
}
@@ -686,14 +686,14 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Flush after completing persist cascade.
*/
@Override
- public void flushBatchOnCascade() {
+ public final void flushBatchOnCascade() {
batchFlushReset();
// restore the previous batch mode
batchMode = oldBatchMode;
}
@Override
- public void flushBatchOnRollback() {
+ public final void flushBatchOnRollback() {
internalBatchClear();
// restore the previous batch mode
batchMode = oldBatchMode;
@@ -709,13 +709,11 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public boolean checkBatchEscalationOnCascade(PersistRequestBean> request) {
-
+ public final boolean checkBatchEscalationOnCascade(PersistRequestBean> request) {
if (batchMode) {
// already batching (at top level)
return false;
}
-
if (batchOnCascadeMode) {
// escalate up to batch mode for this request (and cascade)
oldBatchMode = false;
@@ -725,13 +723,12 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
request.setSkipBatchForTopLevel();
return true;
}
-
batchFlushReset();
return false;
}
@Override
- public BatchControl getBatchControl() {
+ public final BatchControl getBatchControl() {
return batchControl;
}
@@ -740,7 +737,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* on the first persist request.
*/
@Override
- public void setBatchControl(BatchControl batchControl) {
+ public final void setBatchControl(BatchControl batchControl) {
queryOnly = false;
this.batchControl = batchControl;
// in case these parameters have already been set
@@ -763,7 +760,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
*
*/
@Override
- public void flush() {
+ public final void flush() {
if (!isActive()) {
throw new IllegalStateException(illegalStateMessage);
}
@@ -771,7 +768,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void flushBatch() {
+ public final void flushBatch() {
flush();
}
@@ -797,7 +794,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Return the persistence context associated with this transaction.
*/
@Override
- public SpiPersistenceContext getPersistenceContext() {
+ public final SpiPersistenceContext getPersistenceContext() {
return persistenceContext;
}
@@ -809,7 +806,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* then set it back later to a second transaction.
*/
@Override
- public void setPersistenceContext(SpiPersistenceContext context) {
+ public final void setPersistenceContext(SpiPersistenceContext context) {
if (!isActive()) {
throw new IllegalStateException(illegalStateMessage);
}
@@ -820,7 +817,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Return the underlying TransactionEvent.
*/
@Override
- public TransactionEvent getEvent() {
+ public final TransactionEvent getEvent() {
queryOnly = false;
if (event == null) {
event = new TransactionEvent();
@@ -832,27 +829,27 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Return true if this was an explicitly created transaction.
*/
@Override
- public boolean isExplicit() {
+ public final boolean isExplicit() {
return explicit;
}
@Override
- public boolean isLogSql() {
+ public final boolean isLogSql() {
return logSql;
}
@Override
- public boolean isLogSummary() {
+ public final boolean isLogSummary() {
return logSummary;
}
@Override
- public void logSql(String msg) {
+ public final void logSql(String msg) {
manager.log().sql().debug(Str.add(logPrefix, msg));
}
@Override
- public void logSummary(String msg) {
+ public final void logSummary(String msg) {
manager.log().sum().debug(Str.add(logPrefix, msg));
}
@@ -860,17 +857,17 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Return the transaction id.
*/
@Override
- public String getId() {
+ public final String getId() {
return id;
}
@Override
- public void setTenantId(Object tenantId) {
+ public final void setTenantId(Object tenantId) {
this.tenantId = tenantId;
}
@Override
- public Object getTenantId() {
+ public final Object getTenantId() {
return tenantId;
}
@@ -926,7 +923,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
/**
* Notify the transaction manager.
*/
- void notifyCommit() {
+ final void notifyCommit() {
if (manager != null) {
if (queryOnly) {
manager.notifyOfQueryOnly(this);
@@ -1000,13 +997,13 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void postCommit() {
+ public final void postCommit() {
firePostCommit();
notifyCommit();
}
@Override
- public void preCommit() {
+ public final void preCommit() {
internalBatchFlush();
firePreCommit();
}
@@ -1081,7 +1078,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
/**
* Notify the transaction manager.
*/
- void notifyRollback(Throwable cause) {
+ final void notifyRollback(Throwable cause) {
if (manager != null) {
if (queryOnly) {
manager.notifyOfQueryOnly(this);
@@ -1095,7 +1092,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Return true if the transaction is marked as rollback only.
*/
@Override
- public boolean isRollbackOnly() {
+ public final boolean isRollbackOnly() {
return rollbackOnly;
}
@@ -1103,17 +1100,17 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Mark the transaction as rollback only.
*/
@Override
- public void setRollbackOnly() {
+ public final void setRollbackOnly() {
this.rollbackOnly = true;
}
@Override
- public boolean isNestedUseSavepoint() {
+ public final boolean isNestedUseSavepoint() {
return nestedUseSavepoint;
}
@Override
- public void setNestedUseSavepoint() {
+ public final void setNestedUseSavepoint() {
this.nestedUseSavepoint = true;
}
@@ -1159,7 +1156,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void postRollback(Throwable cause) {
+ public final void postRollback(Throwable cause) {
firePostRollback();
notifyRollback(cause);
}
@@ -1183,22 +1180,22 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public boolean isPersistCascade() {
+ public final boolean isPersistCascade() {
return persistCascade;
}
@Override
- public void setPersistCascade(boolean persistCascade) {
+ public final void setPersistCascade(boolean persistCascade) {
this.persistCascade = persistCascade;
}
@Override
- public void addModification(String tableName, boolean inserts, boolean updates, boolean deletes) {
+ public final void addModification(String tableName, boolean inserts, boolean updates, boolean deletes) {
getEvent().add(tableName, inserts, updates, deletes);
}
@Override
- public DocStoreTransaction getDocStoreTransaction() {
+ public final DocStoreTransaction getDocStoreTransaction() {
if (docStoreTxn == null) {
queryOnly = false;
docStoreTxn = manager.createDocStoreTransaction(docStoreBatchSize);
@@ -1207,7 +1204,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public void putUserObject(String name, Object value) {
+ public final void putUserObject(String name, Object value) {
if (userObjects == null) {
userObjects = new HashMap<>();
}
@@ -1215,7 +1212,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
}
@Override
- public Object getUserObject(String name) {
+ public final Object getUserObject(String name) {
if (userObjects == null) {
return null;
}
@@ -1226,7 +1223,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
* Alias for end(), which enables this class to be used in try-with-resources.
*/
@Override
- public void close() {
+ public final void close() {
end();
}
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransaction.java
index e0c33a193..cfd76c581 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransaction.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransaction.java
@@ -9,7 +9,7 @@ import java.sql.SQLException;
/**
* Jta based transaction.
*/
-public class JtaTransaction extends JdbcTransaction {
+public final class JtaTransaction extends JdbcTransaction {
private final UserTransaction userTransaction;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java
index cc9e8cdc8..2168a287b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java
@@ -18,7 +18,7 @@ import javax.transaction.UserTransaction;
/**
* Hook into external JTA transaction manager.
*/
-public class JtaTransactionManager implements ExternalTransactionManager {
+public final class JtaTransactionManager implements ExternalTransactionManager {
private static final Logger logger = LoggerFactory.getLogger(JtaTransactionManager.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java
index d435e93fd..0ed17e94f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java
@@ -19,9 +19,9 @@ import java.sql.Connection;
import java.sql.SQLException;
/**
- * Place holder for use with SUPPORTS and NEVER transactional when there really isn't a transaction.
+ * Placeholder for use with SUPPORTS and NEVER transactional when there really isn't a transaction.
*/
-class NoTransaction implements SpiTransaction {
+final class NoTransaction implements SpiTransaction {
static final NoTransaction INSTANCE = new NoTransaction();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoopProfileHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoopProfileHandler.java
index 636ad7c6a..a994987c5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoopProfileHandler.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/NoopProfileHandler.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.api.SpiProfileHandler;
/**
* A do nothing SpiProfileHandler.
*/
-public class NoopProfileHandler implements SpiProfileHandler {
+public final class NoopProfileHandler implements SpiProfileHandler {
@Override
public void collectTransactionProfile(TransactionProfile transactionProfile) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTableMod.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTableMod.java
index f963aad71..a3b97ec2a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTableMod.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTableMod.java
@@ -9,7 +9,7 @@ import java.io.IOException;
import java.util.LinkedHashSet;
import java.util.Set;
-public class RemoteTableMod implements BinaryWritable {
+public final class RemoteTableMod implements BinaryWritable {
private final long timestamp;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java
index 50480c043..8a9041eef 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java
@@ -14,7 +14,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-public class RemoteTransactionEvent implements Runnable, BinaryWritable {
+public final class RemoteTransactionEvent implements Runnable, BinaryWritable {
private final List beanPersistList = new ArrayList<>();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/SavepointTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/SavepointTransaction.java
index dafaa05b5..aa4bc978e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/SavepointTransaction.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/SavepointTransaction.java
@@ -12,7 +12,7 @@ import java.sql.Savepoint;
/**
* A nested transaction that represents a Savepoint.
*/
-class SavepointTransaction extends SpiTransactionProxy {
+final class SavepointTransaction extends SpiTransactionProxy {
private static final int STATE_COMMITTED = 1;
private static final int STATE_ROLLED_BACK = 2;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TChangeLogHolder.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TChangeLogHolder.java
index 961247bd9..b2a7269d0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TChangeLogHolder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TChangeLogHolder.java
@@ -11,7 +11,7 @@ import java.util.UUID;
* Holder of the changes handling the case when we send the changes
* prior to commit or rollback as we hit the allowed 'batch size'.
*/
-public class TChangeLogHolder {
+public final class TChangeLogHolder {
/**
* The owning transaction.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java
index e16fa6d81..d3793a8e4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java
@@ -17,7 +17,7 @@ import java.util.concurrent.ConcurrentHashMap;
* This information is used to validate entries in the L2 query caches.
*
*/
-public class TableModState implements QueryCacheEntryValidate, ServerCacheNotify {
+public final class TableModState implements QueryCacheEntryValidate, ServerCacheNotify {
private static final Logger log = LoggerFactory.getLogger("io.ebean.cache.TABLEMOD");
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java
index 9a8684982..687741654 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactory.java
@@ -33,8 +33,7 @@ abstract class TransactionFactory {
/**
* Set the Transaction Isolation level if required.
*/
- SpiTransaction setIsolationLevel(SpiTransaction t, boolean explicit, int isolationLevel) {
-
+ final SpiTransaction setIsolationLevel(SpiTransaction t, boolean explicit, int isolationLevel) {
if (isolationLevel > -1) {
Connection connection = t.getConnection();
try {
@@ -44,11 +43,9 @@ abstract class TransactionFactory {
throw new PersistenceException(e);
}
}
-
if (explicit && manager.log().txn().isTrace()) {
manager.log().txn().trace(t.getLogPrefix() + "Begin");
}
-
return t;
}
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java
index 1fd2f9e69..a190cf64e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasic.java
@@ -22,7 +22,6 @@ class TransactionFactoryBasic extends TransactionFactory {
@Override
public SpiTransaction createReadOnlyTransaction(Object tenantId) {
-
Connection connection = null;
try {
connection = dataSource.getConnection();
@@ -37,7 +36,7 @@ class TransactionFactoryBasic extends TransactionFactory {
}
@Override
- public SpiTransaction createTransaction(boolean explicit, int isolationLevel) {
+ public final SpiTransaction createTransaction(boolean explicit, int isolationLevel) {
Connection connection = null;
try {
connection = dataSource.getConnection();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java
index c942ed31e..d84361480 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBasicWithRead.java
@@ -16,7 +16,7 @@ import java.sql.SQLException;
* - Skip explicit commit (as we use AutoCommit instead)
*
*/
-class TransactionFactoryBasicWithRead extends TransactionFactoryBasic {
+final class TransactionFactoryBasicWithRead extends TransactionFactoryBasic {
private final DataSource readOnlyDataSource;
@@ -27,16 +27,13 @@ class TransactionFactoryBasicWithRead extends TransactionFactoryBasic {
@Override
public SpiTransaction createReadOnlyTransaction(Object tenantId) {
-
Connection connection = null;
try {
connection = readOnlyDataSource.getConnection();
return new ImplicitReadOnlyTransaction(manager, connection);
-
} catch (PersistenceException ex) {
JdbcClose.close(connection);
throw ex;
-
} catch (SQLException ex) {
throw new PersistenceException(ex);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBuilder.java
index 590fcec63..b2b7e875f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBuilder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryBuilder.java
@@ -5,7 +5,7 @@ import io.ebean.config.CurrentTenantProvider;
/**
* Helper to build and return the appropriate TransactionFactory.
*/
-class TransactionFactoryBuilder {
+final class TransactionFactoryBuilder {
/**
* Build and return based on multi-tenancy and read only DataSource.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java
index fd70cd47a..64c9c9511 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenant.java
@@ -29,8 +29,7 @@ class TransactionFactoryTenant extends TransactionFactory {
}
@Override
- public SpiTransaction createTransaction(boolean explicit, int isolationLevel) {
-
+ public final SpiTransaction createTransaction(boolean explicit, int isolationLevel) {
SpiTransaction t = create(explicit, null);
return setIsolationLevel(t, explicit, isolationLevel);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java
index 1aa190770..cb9f8c9c4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionFactoryTenantWithRead.java
@@ -16,7 +16,7 @@ import java.sql.SQLException;
* - Skip explicit commit (as we use AutoCommit instead)
*
*/
-class TransactionFactoryTenantWithRead extends TransactionFactoryTenant {
+final class TransactionFactoryTenantWithRead extends TransactionFactoryTenant {
TransactionFactoryTenantWithRead(TransactionManager manager, DataSourceSupplier dataSourceSupplier, CurrentTenantProvider tenantProvider) {
super(manager, dataSourceSupplier, tenantProvider);
@@ -24,7 +24,6 @@ class TransactionFactoryTenantWithRead extends TransactionFactoryTenant {
@Override
public SpiTransaction createReadOnlyTransaction(Object tenantId) {
-
Connection connection = null;
try {
if (tenantId == null) {
@@ -33,11 +32,9 @@ class TransactionFactoryTenantWithRead extends TransactionFactoryTenant {
}
connection = dataSourceSupplier.getReadOnlyConnection(tenantId);
return new ImplicitReadOnlyTransaction(manager, connection, tenantId);
-
} catch (PersistenceException ex) {
JdbcClose.close(connection);
throw ex;
-
} catch (SQLException ex) {
throw new PersistenceException(ex);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java
index e3fbdd425..37a53f680 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java
@@ -201,14 +201,14 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Return the scope manager.
*/
- public TransactionScopeManager scope() {
+ public final TransactionScopeManager scope() {
return scopeManager;
}
/**
* Set the transaction onto the scope.
*/
- public void set(SpiTransaction txn) {
+ public final void set(SpiTransaction txn) {
scopeManager.set(txn);
}
@@ -216,7 +216,7 @@ public class TransactionManager implements SpiTransactionManager {
* Return the current active transaction.
*/
@Override
- public SpiTransaction getActive() {
+ public final SpiTransaction getActive() {
return scopeManager.getActive();
}
@@ -230,18 +230,18 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Return the current transaction from thread local scope. Note that it may be inactive.
*/
- public SpiTransaction getInScope() {
+ public final SpiTransaction getInScope() {
return scopeManager.getInScope();
}
/**
* Translate the SQLException into a specific exception if possible based on the DB platform.
*/
- public PersistenceException translate(String message, SQLException cause) {
+ public final PersistenceException translate(String message, SQLException cause) {
return databasePlatform.translate(message, cause);
}
- public void shutdown(boolean shutdownDataSource, boolean deregisterDriver) {
+ public final void shutdown(boolean shutdownDataSource, boolean deregisterDriver) {
if (shutdownDataSource) {
dataSourceSupplier.shutdown(deregisterDriver);
}
@@ -250,39 +250,39 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Return true if the DB platform supports SavepointId().
*/
- boolean isSupportsSavepointId() {
+ final boolean isSupportsSavepointId() {
return supportsSavepointId;
}
- boolean isDocStoreActive() {
+ final boolean isDocStoreActive() {
return docStoreActive;
}
- DocStoreTransaction createDocStoreTransaction(int docStoreBatchSize) {
+ final DocStoreTransaction createDocStoreTransaction(int docStoreBatchSize) {
return docStoreUpdateProcessor.createTransaction(docStoreBatchSize);
}
- boolean isSkipCacheAfterWrite() {
+ final boolean isSkipCacheAfterWrite() {
return skipCacheAfterWrite;
}
- public BeanDescriptorManager getBeanDescriptorManager() {
+ public final BeanDescriptorManager getBeanDescriptorManager() {
return beanDescriptorManager;
}
- BulkEventListenerMap getBulkEventListenerMap() {
+ final BulkEventListenerMap getBulkEventListenerMap() {
return bulkEventListenerMap;
}
- boolean isAutoPersistUpdates() {
+ final boolean isAutoPersistUpdates() {
return autoPersistUpdates;
}
- boolean isPersistBatch() {
+ final boolean isPersistBatch() {
return persistBatch;
}
- boolean isPersistBatchOnCascade() {
+ final boolean isPersistBatchOnCascade() {
return persistBatchOnCascade;
}
@@ -296,7 +296,7 @@ public class TransactionManager implements SpiTransactionManager {
* If the Isolation level is higher (say SERIALIZABLE) then Connections used
* just for queries do need to be committed or rollback after the query.
*/
- OnQueryOnly initOnQueryOnly(OnQueryOnly dbPlatformOnQueryOnly) {
+ final OnQueryOnly initOnQueryOnly(OnQueryOnly dbPlatformOnQueryOnly) {
// first check for a system property 'override'
String systemPropertyValue = System.getProperty("ebean.transaction.onqueryonly");
if (systemPropertyValue != null) {
@@ -306,29 +306,29 @@ public class TransactionManager implements SpiTransactionManager {
return dbPlatformOnQueryOnly == null ? OnQueryOnly.COMMIT : dbPlatformOnQueryOnly;
}
- public String getServerName() {
+ public final String getServerName() {
return serverName;
}
@Override
- public Connection getQueryPlanConnection() throws SQLException {
+ public final Connection getQueryPlanConnection() throws SQLException {
return dataSourceSupplier.getConnection(null);
}
@Override
- public DataSource getDataSource() {
+ public final DataSource getDataSource() {
return dataSourceSupplier.getDataSource();
}
@Override
- public DataSource getReadOnlyDataSource() {
+ public final DataSource getReadOnlyDataSource() {
return dataSourceSupplier.getReadOnlyDataSource();
}
/**
* Defines the type of behavior to use when closing a transaction that was used to query data only.
*/
- OnQueryOnly getOnQueryOnly() {
+ final OnQueryOnly getOnQueryOnly() {
return onQueryOnly;
}
@@ -390,7 +390,7 @@ public class TransactionManager implements SpiTransactionManager {
* Process a local rolled back transaction.
*/
@Override
- public void notifyOfRollback(SpiTransaction transaction, Throwable cause) {
+ public final void notifyOfRollback(SpiTransaction transaction, Throwable cause) {
try {
if (txnLogger.isDebug()) {
String msg = transaction.getLogPrefix() + "Rollback";
@@ -408,7 +408,7 @@ public class TransactionManager implements SpiTransactionManager {
* Query only transaction in read committed isolation.
*/
@Override
- public void notifyOfQueryOnly(SpiTransaction transaction) {
+ public final void notifyOfQueryOnly(SpiTransaction transaction) {
// Nothing that interesting here
if (txnLogger.isTrace()) {
txnLogger.trace(transaction.getLogPrefix() + "Commit - query only");
@@ -442,7 +442,7 @@ public class TransactionManager implements SpiTransactionManager {
* Process a local committed transaction.
*/
@Override
- public void notifyOfCommit(SpiTransaction transaction) {
+ public final void notifyOfCommit(SpiTransaction transaction) {
try {
if (txnLogger.isDebug()) {
txnLogger.debug(transaction.getLogPrefix() + "Commit");
@@ -455,7 +455,7 @@ public class TransactionManager implements SpiTransactionManager {
}
}
- public void externalModification(TransactionEventTable tableEvent) {
+ public final void externalModification(TransactionEventTable tableEvent) {
SpiTransaction t = getActive();
if (t != null) {
t.getEvent().add(tableEvent);
@@ -476,7 +476,7 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Notify local BeanPersistListeners etc of events from another server in the cluster.
*/
- public void remoteTransactionEvent(RemoteTransactionEvent remoteEvent) {
+ public final void remoteTransactionEvent(RemoteTransactionEvent remoteEvent) {
if (clusterLogger.isDebugEnabled()) {
clusterLogger.debug("processing {}", remoteEvent);
}
@@ -506,14 +506,14 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Process the docstore / ElasticSearch updates.
*/
- void processDocStoreUpdates(DocStoreUpdates docStoreUpdates, int bulkBatchSize) {
+ final void processDocStoreUpdates(DocStoreUpdates docStoreUpdates, int bulkBatchSize) {
docStoreUpdateProcessor.process(docStoreUpdates, bulkBatchSize);
}
/**
* Prepare and then send/log the changeSet.
*/
- void sendChangeLog(final ChangeSet changeSet) {
+ final void sendChangeLog(final ChangeSet changeSet) {
// can set userId, userIpAddress & userContext if desired
if (changeLogPrepare.prepare(changeSet)) {
if (changeLogAsync) {
@@ -528,7 +528,7 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Invalidate the query caches for entities based on views.
*/
- void processTouchedTables(Set touchedTables) {
+ final void processTouchedTables(Set touchedTables) {
tableModState.touch(touchedTables);
if (viewInvalidation) {
beanDescriptorManager.processViewInvalidation(touchedTables);
@@ -539,32 +539,32 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Process the collected transaction profiling information.
*/
- void profileCollect(TransactionProfile transactionProfile) {
+ final void profileCollect(TransactionProfile transactionProfile) {
profileHandler.collectTransactionProfile(transactionProfile);
}
/**
* Collect execution time for an explicit transaction.
*/
- void collectMetric(long exeMicros) {
+ final void collectMetric(long exeMicros) {
txnMain.add(exeMicros);
}
/**
* Collect execution time for implicit read only transaction.
*/
- void collectMetricReadOnly(long exeMicros) {
+ final void collectMetricReadOnly(long exeMicros) {
txnReadOnly.add(exeMicros);
}
/**
* Collect execution time for a named transaction.
*/
- void collectMetricNamed(long exeMicros, String label) {
+ final void collectMetricNamed(long exeMicros, String label) {
txnNamed.add(label, exeMicros);
}
- public void visitMetrics(MetricVisitor visitor) {
+ public final void visitMetrics(MetricVisitor visitor) {
txnMain.visit(visitor);
txnReadOnly.visit(visitor);
txnNamed.visit(visitor);
@@ -576,14 +576,14 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Clear an implicit transaction from thread local scope.
*/
- public void clearServerTransaction() {
+ public final void clearServerTransaction() {
scopeManager.clear();
}
/**
* Begin an implicit transaction.
*/
- public SpiTransaction beginServerTransaction() {
+ public final SpiTransaction beginServerTransaction() {
SpiTransaction t = createTransaction(false, -1);
scopeManager.set(t);
return t;
@@ -592,7 +592,7 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Exit a scoped transaction (that can be inactive - already committed etc).
*/
- public void exitScopedTransaction(Object returnOrThrowable, int opCode) {
+ public final void exitScopedTransaction(Object returnOrThrowable, int opCode) {
SpiTransaction st = getInScope();
if (st instanceof ScopedTransaction) {
// can be null for Supports as that can start as a 'No Transaction' and then
@@ -602,7 +602,7 @@ public class TransactionManager implements SpiTransactionManager {
}
@Override
- public void externalRemoveTransaction() {
+ public final void externalRemoveTransaction() {
scopeManager.clearExternal();
}
@@ -611,7 +611,7 @@ public class TransactionManager implements SpiTransactionManager {
* (e.g. Spring managed transaction).
*/
@Override
- public ScopedTransaction externalBeginTransaction(SpiTransaction transaction, TxScope txScope) {
+ public final ScopedTransaction externalBeginTransaction(SpiTransaction transaction, TxScope txScope) {
ScopedTransaction scopedTxn = new ScopedTransaction(scopeManager);
scopedTxn.push(new ScopeTrans(rollbackOnChecked, false, transaction, txScope));
scopeManager.replace(scopedTxn);
@@ -621,7 +621,7 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Begin a scoped transaction.
*/
- public ScopedTransaction beginScopedTransaction(TxScope txScope) {
+ public final ScopedTransaction beginScopedTransaction(TxScope txScope) {
txScope = initTxScope(txScope);
ScopedTransaction txnContainer = getActiveScoped();
@@ -742,26 +742,26 @@ public class TransactionManager implements SpiTransactionManager {
/**
* Return true if Transaction debug is on.
*/
- public boolean isTxnDebug() {
+ public final boolean isTxnDebug() {
return txnDebug;
}
- public SpiLogManager log() {
+ public final SpiLogManager log() {
return logManager;
}
- public boolean isLogSql() {
+ public final boolean isLogSql() {
return logManager.sql().isDebug();
}
- public boolean isLogSummary() {
+ public final boolean isLogSummary() {
return logManager.sum().isDebug();
}
/**
* Experimental - find dirty beans in the persistence context and persist them.
*/
- public void flushTransparent(SpiPersistenceContext persistenceContext, SpiTransaction transaction) {
+ public final void flushTransparent(SpiPersistenceContext persistenceContext, SpiTransaction transaction) {
List dirtyBeans = persistenceContext.dirtyBeans(beanDescriptorManager);
if (!dirtyBeans.isEmpty()) {
server.updateAll(dirtyBeans, transaction);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManagerOptions.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManagerOptions.java
index 5d0c87794..b7d54b37e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManagerOptions.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManagerOptions.java
@@ -14,7 +14,7 @@ import io.ebeanservice.docstore.api.DocStoreUpdateProcessor;
/**
* Objects supplied for constructing the TransactionManager.
*/
-public class TransactionManagerOptions {
+public final class TransactionManagerOptions {
final SpiServer server;
final boolean notifyL2CacheInForeground;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionProfile.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionProfile.java
index 2c7006eba..cb749cd54 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionProfile.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionProfile.java
@@ -5,7 +5,7 @@ import io.ebean.ProfileLocation;
/**
* Profiling information for a single transaction that has completed.
*/
-public class TransactionProfile {
+public final class TransactionProfile {
private final ProfileLocation location;
private final String label;
From 885ba0fdd2f4b19d628587a7380c491154a15358 Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 09:18:31 +1200
Subject: [PATCH 15/68] Set autoReleaseAfterClose true
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index dc3426809..1cebb8daa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
- false
+ true7.02.12.1
From 3c6d17c9a5fe6aeae200bf5784d9a75dbc80bd9e Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 09:23:11 +1200
Subject: [PATCH 16/68] [maven-release-plugin] prepare release
ebean-parent-12.11.1
---
ebean-api/pom.xml | 2 +-
ebean-autotune/pom.xml | 6 +++---
ebean-bom/pom.xml | 30 +++++++++++++++---------------
ebean-core-type/pom.xml | 4 ++--
ebean-core/pom.xml | 10 +++++-----
ebean-ddl-generator/pom.xml | 6 +++---
ebean-externalmapping-api/pom.xml | 2 +-
ebean-externalmapping-xml/pom.xml | 10 +++++-----
ebean-postgis/pom.xml | 6 +++---
ebean-querybean/pom.xml | 10 +++++-----
ebean-redis/pom.xml | 12 ++++++------
ebean-test/pom.xml | 6 +++---
ebean/pom.xml | 8 ++++----
kotlin-querybean-generator/pom.xml | 8 ++++----
pom.xml | 4 ++--
querybean-generator/pom.xml | 2 +-
16 files changed, 63 insertions(+), 63 deletions(-)
diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml
index 72fbfe3ae..0e84c71c9 100644
--- a/ebean-api/pom.xml
+++ b/ebean-api/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean api
diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml
index c47f7fe08..5bedfbd89 100644
--- a/ebean-autotune/pom.xml
+++ b/ebean-autotune/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1
@@ -14,7 +14,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.8.0
+ ebean-parent-12.11.1ebean autotune
@@ -26,7 +26,7 @@
io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1provided
diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml
index fff064c90..9b651c8a2 100644
--- a/ebean-bom/pom.xml
+++ b/ebean-bom/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean bom
@@ -81,88 +81,88 @@
io.ebeanebean
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-api
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-core-type
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-ddl-generator
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-externalmapping-api
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-externalmapping-xml
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-autotune
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-querybean
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanquerybean-generator
- 12.11.1-SNAPSHOT
+ 12.11.1providedio.ebeankotlin-querybean-generator
- 12.11.1-SNAPSHOT
+ 12.11.1providedio.ebeanebean-test
- 12.11.1-SNAPSHOT
+ 12.11.1testio.ebeanebean-postgis
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-redis
- 12.11.1-SNAPSHOT
+ 12.11.1
diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml
index d8eab3e25..e0d543cfc 100644
--- a/ebean-core-type/pom.xml
+++ b/ebean-core-type/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean-core-type
@@ -16,7 +16,7 @@
io.ebeanebean-api
- 12.11.1-SNAPSHOT
+ 12.11.1
diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml
index 5324aec82..cface4b9e 100644
--- a/ebean-core/pom.xml
+++ b/ebean-core/pom.xml
@@ -3,7 +3,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean-core
@@ -15,7 +15,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.8.0
+ ebean-parent-12.11.1
@@ -78,19 +78,19 @@
io.ebeanebean-api
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-core-type
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-externalmapping-api
- 12.11.1-SNAPSHOT
+ 12.11.1
diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml
index f83a8b02e..2e9b2347b 100644
--- a/ebean-ddl-generator/pom.xml
+++ b/ebean-ddl-generator/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean ddl generation
@@ -28,14 +28,14 @@
io.ebeanebean-core-type
- 12.11.1-SNAPSHOT
+ 12.11.1providedio.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1provided
diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml
index e506a6841..23962062a 100644
--- a/ebean-externalmapping-api/pom.xml
+++ b/ebean-externalmapping-api/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean external mapping api
diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml
index d0226a553..821436b6b 100644
--- a/ebean-externalmapping-xml/pom.xml
+++ b/ebean-externalmapping-xml/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1
@@ -14,7 +14,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.8.0
+ ebean-parent-12.11.1ebean external mapping xml
@@ -33,7 +33,7 @@
io.ebeanebean-externalmapping-api
- 12.11.1-SNAPSHOT
+ 12.11.1
@@ -59,14 +59,14 @@
io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1testio.ebeanebean-ddl-generator
- 12.11.1-SNAPSHOT
+ 12.11.1test
diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml
index 98b44522d..eb6d6fb4c 100644
--- a/ebean-postgis/pom.xml
+++ b/ebean-postgis/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean postgis
@@ -23,7 +23,7 @@
io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1provided
@@ -74,7 +74,7 @@
io.ebeanebean-test
- 12.11.1-SNAPSHOT
+ 12.11.1test
diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml
index 059976afa..87c0c3cdf 100644
--- a/ebean-querybean/pom.xml
+++ b/ebean-querybean/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean querybean
@@ -17,7 +17,7 @@
io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1provided
@@ -57,21 +57,21 @@
io.ebeanebean-ddl-generator
- 12.11.1-SNAPSHOT
+ 12.11.1testio.ebeanquerybean-generator
- 12.11.1-SNAPSHOT
+ 12.11.1testio.ebeanebean-test
- 12.11.1-SNAPSHOT
+ 12.11.1test
diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml
index 943ab6985..eb22bf8b8 100644
--- a/ebean-redis/pom.xml
+++ b/ebean-redis/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean-redis
@@ -22,35 +22,35 @@
io.ebeanebean-api
- 12.11.1-SNAPSHOT
+ 12.11.1providedio.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1providedio.ebeanebean-querybean
- 12.11.1-SNAPSHOT
+ 12.11.1testio.ebeanquerybean-generator
- 12.11.1-SNAPSHOT
+ 12.11.1testio.ebeanebean-test
- 12.11.1-SNAPSHOT
+ 12.11.1test
diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml
index 4b9b05272..1d6ee0b9b 100644
--- a/ebean-test/pom.xml
+++ b/ebean-test/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean test
@@ -29,14 +29,14 @@
io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1providedio.ebeanebean-ddl-generator
- 12.11.1-SNAPSHOT
+ 12.11.1
diff --git a/ebean/pom.xml b/ebean/pom.xml
index db01d91a1..892b73af6 100644
--- a/ebean/pom.xml
+++ b/ebean/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1ebean composite
@@ -22,20 +22,20 @@
io.ebeanebean-api
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1io.ebeanebean-querybean
- 12.11.1-SNAPSHOT
+ 12.11.1
diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml
index 1b3f9d848..304a5e3e0 100644
--- a/kotlin-querybean-generator/pom.xml
+++ b/kotlin-querybean-generator/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1kotlin querybean generator
@@ -29,7 +29,7 @@
io.ebeanebean-querybean
- 12.11.1-SNAPSHOT
+ 12.11.1test
@@ -43,7 +43,7 @@
io.ebeanebean-core
- 12.11.1-SNAPSHOT
+ 12.11.1test
@@ -64,7 +64,7 @@
io.ebeanebean-ddl-generator
- 12.11.1-SNAPSHOT
+ 12.11.1test
diff --git a/pom.xml b/pom.xml
index 1cebb8daa..8374733c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
io.ebeanebean-parent
- 12.11.1-SNAPSHOT
+ 12.11.1pomebean parent
@@ -18,7 +18,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.8.0
+ ebean-parent-12.11.1
diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml
index a240e3b8b..238a37f1f 100644
--- a/querybean-generator/pom.xml
+++ b/querybean-generator/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1-SNAPSHOT
+ 12.11.1querybean generator
From f7a0ae8b4a3c28067789ace17bfadfd4f8dab5cb Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 09:23:18 +1200
Subject: [PATCH 17/68] [maven-release-plugin] prepare for next development
iteration
---
ebean-api/pom.xml | 2 +-
ebean-autotune/pom.xml | 6 +++---
ebean-bom/pom.xml | 30 +++++++++++++++---------------
ebean-core-type/pom.xml | 4 ++--
ebean-core/pom.xml | 10 +++++-----
ebean-ddl-generator/pom.xml | 6 +++---
ebean-externalmapping-api/pom.xml | 2 +-
ebean-externalmapping-xml/pom.xml | 10 +++++-----
ebean-postgis/pom.xml | 6 +++---
ebean-querybean/pom.xml | 10 +++++-----
ebean-redis/pom.xml | 12 ++++++------
ebean-test/pom.xml | 6 +++---
ebean/pom.xml | 8 ++++----
kotlin-querybean-generator/pom.xml | 8 ++++----
pom.xml | 4 ++--
querybean-generator/pom.xml | 2 +-
16 files changed, 63 insertions(+), 63 deletions(-)
diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml
index 0e84c71c9..b6adad05d 100644
--- a/ebean-api/pom.xml
+++ b/ebean-api/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean api
diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml
index 5bedfbd89..c244053d2 100644
--- a/ebean-autotune/pom.xml
+++ b/ebean-autotune/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOT
@@ -14,7 +14,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.11.1
+ ebean-parent-12.8.0ebean autotune
@@ -26,7 +26,7 @@
io.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTprovided
diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml
index 9b651c8a2..cb50c064c 100644
--- a/ebean-bom/pom.xml
+++ b/ebean-bom/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean bom
@@ -81,88 +81,88 @@
io.ebeanebean
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-api
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-core-type
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-ddl-generator
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-externalmapping-api
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-externalmapping-xml
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-autotune
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-querybean
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanquerybean-generator
- 12.11.1
+ 12.11.2-SNAPSHOTprovidedio.ebeankotlin-querybean-generator
- 12.11.1
+ 12.11.2-SNAPSHOTprovidedio.ebeanebean-test
- 12.11.1
+ 12.11.2-SNAPSHOTtestio.ebeanebean-postgis
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-redis
- 12.11.1
+ 12.11.2-SNAPSHOT
diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml
index e0d543cfc..10c45ea74 100644
--- a/ebean-core-type/pom.xml
+++ b/ebean-core-type/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean-core-type
@@ -16,7 +16,7 @@
io.ebeanebean-api
- 12.11.1
+ 12.11.2-SNAPSHOT
diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml
index cface4b9e..bff1574de 100644
--- a/ebean-core/pom.xml
+++ b/ebean-core/pom.xml
@@ -3,7 +3,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean-core
@@ -15,7 +15,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.11.1
+ ebean-parent-12.8.0
@@ -78,19 +78,19 @@
io.ebeanebean-api
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-core-type
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-externalmapping-api
- 12.11.1
+ 12.11.2-SNAPSHOT
diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml
index 2e9b2347b..cbc716413 100644
--- a/ebean-ddl-generator/pom.xml
+++ b/ebean-ddl-generator/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean ddl generation
@@ -28,14 +28,14 @@
io.ebeanebean-core-type
- 12.11.1
+ 12.11.2-SNAPSHOTprovidedio.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTprovided
diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml
index 23962062a..c2ea63651 100644
--- a/ebean-externalmapping-api/pom.xml
+++ b/ebean-externalmapping-api/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean external mapping api
diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml
index 821436b6b..b62c33793 100644
--- a/ebean-externalmapping-xml/pom.xml
+++ b/ebean-externalmapping-xml/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOT
@@ -14,7 +14,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.11.1
+ ebean-parent-12.8.0ebean external mapping xml
@@ -33,7 +33,7 @@
io.ebeanebean-externalmapping-api
- 12.11.1
+ 12.11.2-SNAPSHOT
@@ -59,14 +59,14 @@
io.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTtestio.ebeanebean-ddl-generator
- 12.11.1
+ 12.11.2-SNAPSHOTtest
diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml
index eb6d6fb4c..42b18f4f1 100644
--- a/ebean-postgis/pom.xml
+++ b/ebean-postgis/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean postgis
@@ -23,7 +23,7 @@
io.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTprovided
@@ -74,7 +74,7 @@
io.ebeanebean-test
- 12.11.1
+ 12.11.2-SNAPSHOTtest
diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml
index 87c0c3cdf..a91cdb4ef 100644
--- a/ebean-querybean/pom.xml
+++ b/ebean-querybean/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean querybean
@@ -17,7 +17,7 @@
io.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTprovided
@@ -57,21 +57,21 @@
io.ebeanebean-ddl-generator
- 12.11.1
+ 12.11.2-SNAPSHOTtestio.ebeanquerybean-generator
- 12.11.1
+ 12.11.2-SNAPSHOTtestio.ebeanebean-test
- 12.11.1
+ 12.11.2-SNAPSHOTtest
diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml
index eb22bf8b8..835a05812 100644
--- a/ebean-redis/pom.xml
+++ b/ebean-redis/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean-redis
@@ -22,35 +22,35 @@
io.ebeanebean-api
- 12.11.1
+ 12.11.2-SNAPSHOTprovidedio.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTprovidedio.ebeanebean-querybean
- 12.11.1
+ 12.11.2-SNAPSHOTtestio.ebeanquerybean-generator
- 12.11.1
+ 12.11.2-SNAPSHOTtestio.ebeanebean-test
- 12.11.1
+ 12.11.2-SNAPSHOTtest
diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml
index 1d6ee0b9b..894f7f1b9 100644
--- a/ebean-test/pom.xml
+++ b/ebean-test/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean test
@@ -29,14 +29,14 @@
io.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTprovidedio.ebeanebean-ddl-generator
- 12.11.1
+ 12.11.2-SNAPSHOT
diff --git a/ebean/pom.xml b/ebean/pom.xml
index 892b73af6..b17e93449 100644
--- a/ebean/pom.xml
+++ b/ebean/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTebean composite
@@ -22,20 +22,20 @@
io.ebeanebean-api
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTio.ebeanebean-querybean
- 12.11.1
+ 12.11.2-SNAPSHOT
diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml
index 304a5e3e0..7f76d5e09 100644
--- a/kotlin-querybean-generator/pom.xml
+++ b/kotlin-querybean-generator/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTkotlin querybean generator
@@ -29,7 +29,7 @@
io.ebeanebean-querybean
- 12.11.1
+ 12.11.2-SNAPSHOTtest
@@ -43,7 +43,7 @@
io.ebeanebean-core
- 12.11.1
+ 12.11.2-SNAPSHOTtest
@@ -64,7 +64,7 @@
io.ebeanebean-ddl-generator
- 12.11.1
+ 12.11.2-SNAPSHOTtest
diff --git a/pom.xml b/pom.xml
index 8374733c8..bec194354 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
io.ebeanebean-parent
- 12.11.1
+ 12.11.2-SNAPSHOTpomebean parent
@@ -18,7 +18,7 @@
scm:git:git@github.com:ebean-orm/ebean.git
- ebean-parent-12.11.1
+ ebean-parent-12.8.0
diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml
index 238a37f1f..1cf09f8be 100644
--- a/querybean-generator/pom.xml
+++ b/querybean-generator/pom.xml
@@ -4,7 +4,7 @@
ebean-parentio.ebean
- 12.11.1
+ 12.11.2-SNAPSHOTquerybean generator
From f3ec4a78c9d05494c8a035efc8967144090416ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20P=C3=B6hler=20=28JPo=29?=
Date: Mon, 29 Mar 2021 13:23:56 +0200
Subject: [PATCH 18/68] FIX: setting json values to null was throwing a NPE
when persisting
---
.../server/type/ScalarTypeJsonList.java | 3 --
.../server/type/ScalarTypeJsonSet.java | 3 --
.../org/tests/json/TestJsonNullValues.java | 42 +++++++++++++++++++
3 files changed, 42 insertions(+), 6 deletions(-)
create mode 100644 ebean-core/src/test/java/org/tests/json/TestJsonNullValues.java
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java
index 699c7ad0f..d3c700443 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java
@@ -122,9 +122,6 @@ class ScalarTypeJsonList {
@Override
public final String formatValue(List value) {
- if (value.isEmpty()) {
- return "[]";
- }
try {
return EJson.write(value);
} catch (IOException e) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java
index 86a39443e..50cc7f0b3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java
@@ -122,9 +122,6 @@ final class ScalarTypeJsonSet {
@Override
public final String formatValue(Set value) {
- if (value.isEmpty()) {
- return "[]";
- }
try {
return EJson.write(value);
} catch (IOException e) {
diff --git a/ebean-core/src/test/java/org/tests/json/TestJsonNullValues.java b/ebean-core/src/test/java/org/tests/json/TestJsonNullValues.java
new file mode 100644
index 000000000..533116fd1
--- /dev/null
+++ b/ebean-core/src/test/java/org/tests/json/TestJsonNullValues.java
@@ -0,0 +1,42 @@
+package org.tests.json;
+
+import io.ebean.BaseTestCase;
+import io.ebean.DB;
+import org.junit.Test;
+import org.tests.model.json.EBasicOldValue;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class TestJsonNullValues extends BaseTestCase {
+
+ @Test
+ public void testSetToNull() {
+ EBasicOldValue bean = new EBasicOldValue();
+ DB.save(bean);
+ bean = DB.find(EBasicOldValue.class, bean.getId());
+
+ bean.setStringList(null);
+ bean.setStringSet(null);
+ bean.setObjectMap(null);
+ bean.setLongList(null);
+ bean.setLongSet(null);
+ bean.setLongMap(null);
+ bean.setIntList(null);
+ bean.setIntSet(null);
+ bean.setIntMap(null);
+
+ DB.save(bean);
+ bean = DB.find(EBasicOldValue.class, bean.getId());
+
+ assertThat(bean.getStringList()).isEmpty();
+ assertThat(bean.getStringSet()).isEmpty();
+ assertThat(bean.getObjectMap()).isEmpty();
+ assertThat(bean.getLongList()).isEmpty();
+ assertThat(bean.getLongSet()).isEmpty();
+ assertThat(bean.getLongMap()).isEmpty();
+ assertThat(bean.getIntList()).isEmpty();
+ assertThat(bean.getIntSet()).isEmpty();
+ assertThat(bean.getIntMap()).isEmpty();
+ }
+
+}
From 14262d4c2553a69cc6ff20388f7994f9494b06ff Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 22:19:15 +1200
Subject: [PATCH 19/68] #2317 - Incorrect SQL generated for @IdClass with
fetch() on ToMany path
---
.../java/org/tests/model/bridge/BDManyId.java | 32 ++++++++++
.../org/tests/model/bridge/BSiteUserD.java | 18 ++++--
.../tests/model/bridge/BSiteUserDMany.java | 64 +++++++++++++++++++
.../tests/model/bridge/TestIdClassScalar.java | 18 ++++++
4 files changed, 128 insertions(+), 4 deletions(-)
create mode 100644 ebean-core/src/test/java/org/tests/model/bridge/BDManyId.java
create mode 100644 ebean-core/src/test/java/org/tests/model/bridge/BSiteUserDMany.java
diff --git a/ebean-core/src/test/java/org/tests/model/bridge/BDManyId.java b/ebean-core/src/test/java/org/tests/model/bridge/BDManyId.java
new file mode 100644
index 000000000..32e5e3af8
--- /dev/null
+++ b/ebean-core/src/test/java/org/tests/model/bridge/BDManyId.java
@@ -0,0 +1,32 @@
+package org.tests.model.bridge;
+
+import javax.persistence.Embeddable;
+import java.util.Objects;
+import java.util.UUID;
+
+@Embeddable
+public class BDManyId {
+
+ private final UUID siteId;
+ private final UUID userId;
+ private final String name;
+
+ public BDManyId(UUID siteId, UUID userId, String name) {
+ this.siteId = siteId;
+ this.userId = userId;
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ BDManyId bdManyId = (BDManyId) o;
+ return siteId.equals(bdManyId.siteId) && userId.equals(bdManyId.userId) && name.equals(bdManyId.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(siteId, userId, name);
+ }
+}
diff --git a/ebean-core/src/test/java/org/tests/model/bridge/BSiteUserD.java b/ebean-core/src/test/java/org/tests/model/bridge/BSiteUserD.java
index 4ff4513f4..220990cad 100644
--- a/ebean-core/src/test/java/org/tests/model/bridge/BSiteUserD.java
+++ b/ebean-core/src/test/java/org/tests/model/bridge/BSiteUserD.java
@@ -1,9 +1,7 @@
package org.tests.model.bridge;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.IdClass;
-import javax.persistence.Version;
+import javax.persistence.*;
+import java.util.List;
import java.util.UUID;
@Entity
@@ -18,6 +16,10 @@ public class BSiteUserD {
private BAccessLevel accessLevel;
+ @OneToMany(cascade = CascadeType.PERSIST)
+ @JoinColumns({@JoinColumn(name="site_id", referencedColumnName = "site_id"), @JoinColumn(name="user_id", referencedColumnName = "user_id")})
+ private List children;
+
@Version
private long version;
@@ -58,4 +60,12 @@ public class BSiteUserD {
public void setVersion(long version) {
this.version = version;
}
+
+ public List children() {
+ return children;
+ }
+
+ public void setChildren(List children) {
+ this.children = children;
+ }
}
diff --git a/ebean-core/src/test/java/org/tests/model/bridge/BSiteUserDMany.java b/ebean-core/src/test/java/org/tests/model/bridge/BSiteUserDMany.java
new file mode 100644
index 000000000..4d7a84f95
--- /dev/null
+++ b/ebean-core/src/test/java/org/tests/model/bridge/BSiteUserDMany.java
@@ -0,0 +1,64 @@
+package org.tests.model.bridge;
+
+import javax.persistence.*;
+import java.util.UUID;
+
+@Entity
+@IdClass(BDManyId.class)
+public class BSiteUserDMany {
+
+ @Id
+ private UUID siteId;
+ @Id
+ private UUID userId;
+ @Id
+ String name;
+
+ String many;
+
+ @Version
+ long version;
+
+ public UUID siteId() {
+ return siteId;
+ }
+
+ public BSiteUserDMany siteId(UUID siteId) {
+ this.siteId = siteId;
+ return this;
+ }
+
+ public UUID userId() {
+ return userId;
+ }
+
+ public BSiteUserDMany userId(UUID userId) {
+ this.userId = userId;
+ return this;
+ }
+
+ public String name() {
+ return name;
+ }
+
+ public BSiteUserDMany name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public long version() {
+ return version;
+ }
+
+ public void setVersion(long version) {
+ this.version = version;
+ }
+
+ public String many() {
+ return many;
+ }
+
+ public void setMany(String many) {
+ this.many = many;
+ }
+}
diff --git a/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java b/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java
index a06c7e173..f378dbd29 100644
--- a/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java
+++ b/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java
@@ -41,6 +41,24 @@ public class TestIdClassScalar extends BaseTestCase {
}
+ @Test
+ public void fetchMany() {
+ UUID siteId = UUID.randomUUID();
+ UUID userId = UUID.randomUUID();
+
+ BSiteUserD access = new BSiteUserD(BAccessLevel.ONE, siteId, userId);
+ DB.save(access);
+
+ final List found = DB.find(BSiteUserD.class)
+ .fetch("children")
+ .where().eq("siteId", siteId)
+ .findList();
+
+ assertThat(found).hasSize(1);
+
+ DB.delete(BSiteUserD.class, new BEmbId(siteId, userId));
+ }
+
@Test
public void insertBatch() {
UUID siteId = UUID.randomUUID();
From 12220d43222463e3745a03cca7ff92435b12518f Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 22:21:49 +1200
Subject: [PATCH 20/68] #2317 - Incorrect SQL generated for @IdClass with
fetch() on ToMany path
---
.../server/deploy/id/IdBinderEmbedded.java | 66 +++++++++----------
1 file changed, 30 insertions(+), 36 deletions(-)
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderEmbedded.java
index cf2085fa6..2edc359fc 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderEmbedded.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderEmbedded.java
@@ -26,18 +26,16 @@ import java.util.Map;
public final class IdBinderEmbedded implements IdBinder {
private final BeanPropertyAssocOne> embIdProperty;
-
private final boolean idInExpandedForm;
-
+ private final boolean idClass;
private BeanProperty[] props;
-
private BeanDescriptor> idDesc;
-
private String idInValueSql;
public IdBinderEmbedded(boolean idInExpandedForm, BeanPropertyAssocOne> embIdProperty) {
this.idInExpandedForm = idInExpandedForm;
this.embIdProperty = embIdProperty;
+ this.idClass = "_idClass".equals(embIdProperty.getName());
}
@Override
@@ -59,10 +57,7 @@ public final class IdBinderEmbedded implements IdBinder {
if (i > 0) {
sb.append(" and ");
}
- sb.append(idDesc.getBaseTableAlias());
- sb.append(".");
- sb.append(props[i].getDbColumn());
- sb.append("=?");
+ sb.append(idDesc.getBaseTableAlias()).append(".").append(props[i].getDbColumn()).append("=?");
}
sb.append(")");
return sb.toString();
@@ -95,7 +90,9 @@ public final class IdBinderEmbedded implements IdBinder {
if (pathPrefix != null) {
sb.append(pathPrefix).append(".");
}
- sb.append(embIdProperty.getName()).append(".");
+ if (!idClass) {
+ sb.append(embIdProperty.getName()).append(".");
+ }
sb.append(props[i].getName());
if (!ascending) {
sb.append(" desc");
@@ -115,7 +112,9 @@ public final class IdBinderEmbedded implements IdBinder {
@Override
public void buildRawSqlSelectChain(String prefix, List selectChain) {
- prefix = SplitName.add(prefix, embIdProperty.getName());
+ if (!idClass) {
+ prefix = SplitName.add(prefix, embIdProperty.getName());
+ }
for (BeanProperty prop : props) {
prop.buildRawSqlSelectChain(prefix, selectChain);
}
@@ -141,10 +140,11 @@ public final class IdBinderEmbedded implements IdBinder {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < props.length; i++) {
if (i > 0) {
- sb.append(",");
+ sb.append(", ");
+ }
+ if (!idClass) {
+ sb.append(embIdProperty.getName()).append(".");
}
- sb.append(embIdProperty.getName());
- sb.append(".");
sb.append(props[i].getName());
}
return sb.toString();
@@ -173,8 +173,7 @@ public final class IdBinderEmbedded implements IdBinder {
if (i > 0) {
sb.append(" and ");
}
- sb.append(props[i].getDbColumn());
- sb.append("=?");
+ sb.append(props[i].getDbColumn()).append("=?");
}
sb.append(")");
}
@@ -200,7 +199,7 @@ public final class IdBinderEmbedded implements IdBinder {
if (idInExpandedForm) {
sb.append(" or ");
} else {
- sb.append(",");
+ sb.append(", ");
}
}
sb.append(idInValueSql);
@@ -212,11 +211,11 @@ public final class IdBinderEmbedded implements IdBinder {
@Override
public Object[] getIdValues(EntityBean bean) {
Object val = embIdProperty.getValue(bean);
- Object[] bindvalues = new Object[props.length];
+ Object[] bindValues = new Object[props.length];
for (int i = 0; i < props.length; i++) {
- bindvalues[i] = props[i].getValue((EntityBean) val);
+ bindValues[i] = props[i].getValue((EntityBean) val);
}
- return bindvalues;
+ return bindValues;
}
@Override
@@ -354,11 +353,10 @@ public final class IdBinderEmbedded implements IdBinder {
sb.append("(");
for (int i = 0; i < props.length; i++) {
if (i > 0) {
- sb.append(",");
+ sb.append(", ");
}
if (prefix != null) {
- sb.append(prefix);
- sb.append(".");
+ sb.append(prefix).append(".");
}
sb.append(props[i].getName());
}
@@ -374,13 +372,12 @@ public final class IdBinderEmbedded implements IdBinder {
sb.append(" and ");
}
if (prefix != null) {
- sb.append(prefix);
- sb.append(".");
+ sb.append(prefix).append(".");
}
- sb.append(embIdProperty.getName());
- sb.append(".");
- sb.append(props[i].getName());
- sb.append(operator);
+ if (!idClass) {
+ sb.append(embIdProperty.getName()).append(".");
+ }
+ sb.append(props[i].getName()).append(operator);
}
return sb.toString();
}
@@ -393,11 +390,9 @@ public final class IdBinderEmbedded implements IdBinder {
sb.append(" and ");
}
if (baseTableAlias != null) {
- sb.append(baseTableAlias);
- sb.append(".");
+ sb.append(baseTableAlias).append(".");
}
- sb.append(props[i].getDbColumn());
- sb.append(" = ? ");
+ sb.append(props[i].getDbColumn()).append("=?");
}
return sb.toString();
}
@@ -414,8 +409,7 @@ public final class IdBinderEmbedded implements IdBinder {
sb.append(",");
}
if (baseTableAlias != null) {
- sb.append(baseTableAlias);
- sb.append(".");
+ sb.append(baseTableAlias).append(".");
}
sb.append(props[i].getDbColumn());
}
@@ -427,9 +421,9 @@ public final class IdBinderEmbedded implements IdBinder {
public Object convertId(Object idValue) {
if (idValue instanceof String) {
final EntityBean embId = idDesc.createEntityBean();
- final String[] rawVals = ((String)idValue).split("\\|");
+ final String[] rawValues = ((String)idValue).split("\\|");
for (int i = 0; i < props.length; i++) {
- props[i].setValue(embId, props[i].parse(rawVals[i]));
+ props[i].setValue(embId, props[i].parse(rawValues[i]));
}
return embId;
}
From 4163b4dc251139b43b2d65044161bea5d72acc6a Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 22:23:58 +1200
Subject: [PATCH 21/68] #2317 - Plus test changes due to tidy whitespace on sql
generation
---
.../test/java/org/tests/model/bridge/TestIdClassScalar.java | 4 ++--
.../java/org/tests/model/history/TestHistoryEmbeddedId.java | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java b/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java
index f378dbd29..2e00493fe 100644
--- a/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java
+++ b/ebean-core/src/test/java/org/tests/model/bridge/TestIdClassScalar.java
@@ -132,7 +132,7 @@ public class TestIdClassScalar extends BaseTestCase {
sql = LoggedSqlCollector.stop();
assertThat(sql).hasSize(2);
- assertSql(sql.get(0)).contains("select t0.site_id, t0.user_id, t0.site_id, t0.user_id, t0.access_level, t0.version from bsite_user_d t0 where t0.site_id = ? and t0.user_id = ?");
+ assertSql(sql.get(0)).contains("select t0.site_id, t0.user_id, t0.site_id, t0.user_id, t0.access_level, t0.version from bsite_user_d t0 where t0.site_id=? and t0.user_id=?");
assertSql(sql.get(1)).contains("update bsite_user_d set access_level=?, version=? where site_id=? and user_id=? and version=?");
}
@@ -178,7 +178,7 @@ public class TestIdClassScalar extends BaseTestCase {
sql = LoggedSqlCollector.stop();
assertThat(sql).hasSize(2);
- assertSql(sql.get(0)).contains("select t0.site_id, t0.user_id, t0.access_level, t0.site_id, t0.user_id from bsite_user_e t0 where t0.site_id = ? and t0.user_id = ?");
+ assertSql(sql.get(0)).contains("select t0.site_id, t0.user_id, t0.access_level, t0.site_id, t0.user_id from bsite_user_e t0 where t0.site_id=? and t0.user_id=?");
assertSql(sql.get(1)).contains("update bsite_user_e set access_level=? where site_id=? and user_id=?");
}
diff --git a/ebean-core/src/test/java/org/tests/model/history/TestHistoryEmbeddedId.java b/ebean-core/src/test/java/org/tests/model/history/TestHistoryEmbeddedId.java
index 0bd8ddef3..ffe82ac75 100644
--- a/ebean-core/src/test/java/org/tests/model/history/TestHistoryEmbeddedId.java
+++ b/ebean-core/src/test/java/org/tests/model/history/TestHistoryEmbeddedId.java
@@ -48,7 +48,7 @@ public class TestHistoryEmbeddedId extends BaseTestCase {
assertThat(namePair.getOldValue()).isEqualTo("ten");
assertThat(sql).hasSize(1);
- assertThat(sql.get(0)).contains("from hembi_bean_with_history t0 where t0.part = ? and t0.brand = ?");
+ assertThat(sql.get(0)).contains("from hembi_bean_with_history t0 where t0.part=? and t0.brand=?");
if (isH2()) {
assertThat(sql.get(0)).contains("order by t0.sys_period_start desc");
} else if (isPostgres()) {
From f33e54d8bac2465791e7ccaa91ad736bc09bb8e7 Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 22:53:38 +1200
Subject: [PATCH 22/68] #2318 - Refactor internals - final classes in id and
generated property packages
---
.../deploy/generatedproperty/CounterFactory.java | 7 ++-----
.../deploy/generatedproperty/GeneratedCounter.java | 2 +-
.../generatedproperty/GeneratedCounterInteger.java | 6 +-----
.../generatedproperty/GeneratedCounterLong.java | 6 +-----
.../generatedproperty/GeneratedInsertDate.java | 2 +-
.../generatedproperty/GeneratedInsertJavaTime.java | 12 ++++++------
.../generatedproperty/GeneratedInsertJodaTime.java | 8 ++++----
.../generatedproperty/GeneratedInsertLong.java | 2 +-
.../generatedproperty/GeneratedInsertTimestamp.java | 2 +-
.../generatedproperty/GeneratedPropertyFactory.java | 10 +---------
.../generatedproperty/GeneratedUpdateDate.java | 2 +-
.../generatedproperty/GeneratedUpdateJavaTime.java | 12 ++++++------
.../generatedproperty/GeneratedUpdateJodaTime.java | 8 ++++----
.../generatedproperty/GeneratedUpdateLong.java | 2 +-
.../generatedproperty/GeneratedUpdateTimestamp.java | 2 +-
.../generatedproperty/GeneratedWhoCreated.java | 2 +-
.../generatedproperty/GeneratedWhoModified.java | 2 +-
.../generatedproperty/InsertTimestampFactory.java | 2 +-
.../deploy/generatedproperty/JavaTimeUtils.java | 2 +-
.../generatedproperty/UpdateTimestampFactory.java | 2 +-
.../generatedproperty/UuidGeneratedProperty.java | 2 +-
.../server/deploy/id/IdBinderFactory.java | 3 +--
.../server/deploy/id/IdBinderSimple.java | 4 ----
.../server/deploy/id/ImportedIdEmbedded.java | 4 +---
.../server/deploy/id/ImportedIdSimple.java | 12 ------------
25 files changed, 40 insertions(+), 78 deletions(-)
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/CounterFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/CounterFactory.java
index 1bfd2542e..999deb121 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/CounterFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/CounterFactory.java
@@ -13,14 +13,13 @@ import java.sql.Types;
* Aka, Integer, Long, Short etc.
*
*/
-class CounterFactory {
+final class CounterFactory {
private final GeneratedCounterInteger integerCounter = new GeneratedCounterInteger();
private final GeneratedCounterLong longCounter = new GeneratedCounterLong();
- public void setCounter(DeployBeanProperty property) {
-
+ void setCounter(DeployBeanProperty property) {
property.setGeneratedProperty(createCounter(property));
}
@@ -28,7 +27,6 @@ class CounterFactory {
* Create the GeneratedProperty based on the property type.
*/
private GeneratedProperty createCounter(DeployBeanProperty property) {
-
Class> propType = property.getPropertyType();
if (propType.equals(Integer.class) || propType.equals(int.class)) {
return integerCounter;
@@ -36,7 +34,6 @@ class CounterFactory {
if (propType.equals(Long.class) || propType.equals(long.class)) {
return longCounter;
}
-
int type = getType(propType);
return new GeneratedCounter(type);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java
index 319e6e40a..38f0085fb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* A general number counter for various number types.
*/
-public class GeneratedCounter implements GeneratedProperty {
+final class GeneratedCounter implements GeneratedProperty {
private final int numberType;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterInteger.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterInteger.java
index 88cd3a866..4031465e8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterInteger.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterInteger.java
@@ -6,11 +6,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Used to create a counter version column for Integer.
*/
-public class GeneratedCounterInteger implements GeneratedProperty {
-
- public GeneratedCounterInteger() {
-
- }
+final class GeneratedCounterInteger implements GeneratedProperty {
/**
* Always returns a 1.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterLong.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterLong.java
index 310242465..5282bec11 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterLong.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounterLong.java
@@ -6,11 +6,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Used to create a counter version column for Long.
*/
-public class GeneratedCounterLong implements GeneratedProperty {
-
- public GeneratedCounterLong() {
-
- }
+final class GeneratedCounterLong implements GeneratedProperty {
/**
* Always returns a 1.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertDate.java
index 2bb206e3d..57ff0c9bd 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertDate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertDate.java
@@ -8,7 +8,7 @@ import java.util.Date;
/**
* Used to generate a (java.util.Date) timestamp when a bean is inserted.
*/
-public class GeneratedInsertDate implements GeneratedProperty, GeneratedWhenCreated {
+final class GeneratedInsertDate implements GeneratedProperty, GeneratedWhenCreated {
/**
* Return the current time as a Timestamp.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJavaTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJavaTime.java
index 3b95b4e0d..f71aaccfd 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJavaTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJavaTime.java
@@ -6,9 +6,9 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Support java.time types as GeneratedProperty.
*/
-public class GeneratedInsertJavaTime {
+final class GeneratedInsertJavaTime {
- public static abstract class Base implements GeneratedProperty, GeneratedWhenCreated {
+ static abstract class Base implements GeneratedProperty, GeneratedWhenCreated {
@Override
public boolean includeInUpdate() {
@@ -39,7 +39,7 @@ public class GeneratedInsertJavaTime {
/**
* Instant support.
*/
- public static class InstantDT extends Base {
+ static final class InstantDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -50,7 +50,7 @@ public class GeneratedInsertJavaTime {
/**
* LocalDateTime support.
*/
- public static class LocalDT extends Base {
+ static final class LocalDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -61,7 +61,7 @@ public class GeneratedInsertJavaTime {
/**
* OffsetDateTime support.
*/
- public static class OffsetDT extends Base {
+ static final class OffsetDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -73,7 +73,7 @@ public class GeneratedInsertJavaTime {
/**
* ZonedDateTime support.
*/
- public static class ZonedDT extends Base {
+ static final class ZonedDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJodaTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJodaTime.java
index f346be035..5a4c11550 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJodaTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertJodaTime.java
@@ -8,9 +8,9 @@ import org.joda.time.LocalDateTime;
/**
* Support joda time types as GeneratedProperty.
*/
-public class GeneratedInsertJodaTime {
+final class GeneratedInsertJodaTime {
- public static abstract class Base implements GeneratedProperty, GeneratedWhenCreated {
+ static abstract class Base implements GeneratedProperty, GeneratedWhenCreated {
@Override
public boolean includeInUpdate() {
@@ -41,7 +41,7 @@ public class GeneratedInsertJodaTime {
/**
* LocalDateTime support.
*/
- public static class LocalDT extends Base {
+ static final class LocalDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -52,7 +52,7 @@ public class GeneratedInsertJodaTime {
/**
* DateTime support.
*/
- public static class DateTimeDT extends Base {
+ static final class DateTimeDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertLong.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertLong.java
index f56f97490..5e3e0d2f1 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertLong.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertLong.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Used to generate a (Long) timestamp when a bean is inserted.
*/
-public class GeneratedInsertLong implements GeneratedProperty {
+final class GeneratedInsertLong implements GeneratedProperty {
/**
* Return the current time as a Timestamp.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertTimestamp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertTimestamp.java
index abc7f963c..028f71a10 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertTimestamp.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedInsertTimestamp.java
@@ -8,7 +8,7 @@ import java.sql.Timestamp;
/**
* Used to generate a timestamp when a bean is inserted.
*/
-public class GeneratedInsertTimestamp implements GeneratedProperty, GeneratedWhenCreated {
+final class GeneratedInsertTimestamp implements GeneratedProperty, GeneratedWhenCreated {
/**
* Return the current time as a Timestamp.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedPropertyFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedPropertyFactory.java
index b395732b0..e876fb379 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedPropertyFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedPropertyFactory.java
@@ -17,24 +17,16 @@ import java.util.Map;
/**
* Default implementation of GeneratedPropertyFactory.
*/
-public class GeneratedPropertyFactory {
+public final class GeneratedPropertyFactory {
private final CounterFactory counterFactory = new CounterFactory();
-
private final InsertTimestampFactory insertFactory;
-
private final UpdateTimestampFactory updateFactory;
-
private final HashSet numberTypes = new HashSet<>();
-
private final UuidGeneratedProperty generatedUuid = new UuidGeneratedProperty();
-
private final GeneratedWhoModified generatedWhoModified;
-
private final GeneratedWhoCreated generatedWhoCreated;
-
private final ClassLoadConfig classLoadConfig;
-
private final Map idGeneratorMap = new HashMap<>();
public GeneratedPropertyFactory(boolean offlineMode, DatabaseConfig config, List idGenerators) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateDate.java
index f9cd94659..f8ec8effe 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateDate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateDate.java
@@ -9,7 +9,7 @@ import java.util.Date;
* Generate a (java.util.Date) Timestamp whenever the bean is inserted or
* updated.
*/
-public class GeneratedUpdateDate implements GeneratedProperty {
+final class GeneratedUpdateDate implements GeneratedProperty {
/**
* Return now as a Timestamp.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJavaTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJavaTime.java
index 8592425df..6abbf2c6b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJavaTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJavaTime.java
@@ -6,9 +6,9 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Support java.time DateTime types as GeneratedProperty.
*/
-public class GeneratedUpdateJavaTime {
+final class GeneratedUpdateJavaTime {
- public static abstract class Base implements GeneratedProperty, GeneratedWhenModified {
+ static abstract class Base implements GeneratedProperty, GeneratedWhenModified {
@Override
public boolean includeInUpdate() {
@@ -34,7 +34,7 @@ public class GeneratedUpdateJavaTime {
/**
* Instant support.
*/
- public static class InstantDT extends Base {
+ static final class InstantDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -50,7 +50,7 @@ public class GeneratedUpdateJavaTime {
/**
* LocalDateTime support.
*/
- public static class LocalDT extends Base {
+ static final class LocalDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -66,7 +66,7 @@ public class GeneratedUpdateJavaTime {
/**
* OffsetDateTime support.
*/
- public static class OffsetDT extends Base {
+ static final class OffsetDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -82,7 +82,7 @@ public class GeneratedUpdateJavaTime {
/**
* ZonedDateTime support.
*/
- public static class ZonedDT extends Base {
+ static final class ZonedDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJodaTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJodaTime.java
index de4cc1878..ab95ce24a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJodaTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateJodaTime.java
@@ -8,9 +8,9 @@ import org.joda.time.LocalDateTime;
/**
* Support java.time DateTime types as GeneratedProperty.
*/
-public class GeneratedUpdateJodaTime {
+final class GeneratedUpdateJodaTime {
- public static abstract class Base implements GeneratedProperty, GeneratedWhenModified {
+ static abstract class Base implements GeneratedProperty, GeneratedWhenModified {
@Override
public boolean includeInUpdate() {
@@ -36,7 +36,7 @@ public class GeneratedUpdateJodaTime {
/**
* LocalDateTime support.
*/
- public static class LocalDT extends Base {
+ static final class LocalDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
@@ -52,7 +52,7 @@ public class GeneratedUpdateJodaTime {
/**
* OffsetDateTime support.
*/
- public static class DateTimeDT extends Base {
+ static final class DateTimeDT extends Base {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateLong.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateLong.java
index 2d4c85192..72c2b9079 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateLong.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateLong.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Generate a (Long) Timestamp whenever the bean is inserted or updated.
*/
-public class GeneratedUpdateLong implements GeneratedProperty {
+final class GeneratedUpdateLong implements GeneratedProperty {
/**
* Return now as a Timestamp.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateTimestamp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateTimestamp.java
index f493401d8..3ee658eb2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateTimestamp.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedUpdateTimestamp.java
@@ -8,7 +8,7 @@ import java.sql.Timestamp;
/**
* Generate a Timestamp whenever the bean is inserted or updated.
*/
-public class GeneratedUpdateTimestamp implements GeneratedProperty, GeneratedWhenModified {
+final class GeneratedUpdateTimestamp implements GeneratedProperty, GeneratedWhenModified {
/**
* Return now as a Timestamp.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoCreated.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoCreated.java
index cdb719014..404f31049 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoCreated.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoCreated.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Used to populate @WhoCreated bean properties.
*/
-public class GeneratedWhoCreated implements GeneratedProperty {
+final class GeneratedWhoCreated implements GeneratedProperty {
private final CurrentUserProvider currentUserProvider;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoModified.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoModified.java
index e4e68a373..c9aa65537 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoModified.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedWhoModified.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
/**
* Used to populate @WhoModified bean properties.
*/
-public class GeneratedWhoModified implements GeneratedProperty {
+final class GeneratedWhoModified implements GeneratedProperty {
private final CurrentUserProvider currentUserProvider;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/InsertTimestampFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/InsertTimestampFactory.java
index ee2c88a66..f5083c632 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/InsertTimestampFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/InsertTimestampFactory.java
@@ -15,7 +15,7 @@ import java.util.Map;
/**
* Helper for creating Insert timestamp GeneratedProperty objects.
*/
-class InsertTimestampFactory {
+final class InsertTimestampFactory {
private final Map, GeneratedProperty> map = new HashMap<>();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/JavaTimeUtils.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/JavaTimeUtils.java
index bf3f6db12..cea0a6e86 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/JavaTimeUtils.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/JavaTimeUtils.java
@@ -9,7 +9,7 @@ import java.time.ZonedDateTime;
/**
* Helper methods for Java time conversion.
*/
-class JavaTimeUtils {
+final class JavaTimeUtils {
/**
* Return the system millis time as a LocalDateTime.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UpdateTimestampFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UpdateTimestampFactory.java
index d405f2ec7..d08b75cc6 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UpdateTimestampFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UpdateTimestampFactory.java
@@ -15,7 +15,7 @@ import java.util.Map;
/**
* Helper for creating Update timestamp GeneratedProperty objects.
*/
-class UpdateTimestampFactory {
+final class UpdateTimestampFactory {
private final Map, GeneratedProperty> map = new HashMap<>();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UuidGeneratedProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UuidGeneratedProperty.java
index 2090fac13..6eff4c21a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UuidGeneratedProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/UuidGeneratedProperty.java
@@ -5,7 +5,7 @@ import io.ebeaninternal.server.deploy.BeanProperty;
import java.util.UUID;
-public class UuidGeneratedProperty implements GeneratedProperty {
+final class UuidGeneratedProperty implements GeneratedProperty {
@Override
public Object getInsertValue(BeanProperty prop, EntityBean bean, long now) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderFactory.java
index 70f8a1175..b9bf6f6e6 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderFactory.java
@@ -7,12 +7,11 @@ import io.ebeaninternal.server.persist.platform.MultiValueBind;
/**
* Creates the appropriate IdConvertSet depending on the type of Id property(s).
*/
-public class IdBinderFactory {
+public final class IdBinderFactory {
private static final IdBinderEmpty EMPTY = new IdBinderEmpty();
private final boolean idInExpandedForm;
-
private final MultiValueBind multiValueBind;
public IdBinderFactory(boolean idInExpandedForm, MultiValueBind multiValueBind) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java
index cb9e6f9aa..6541b3fa5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java
@@ -26,13 +26,9 @@ import java.util.List;
public final class IdBinderSimple implements IdBinder {
private final BeanProperty idProperty;
-
private final String bindIdSql;
-
private final Class> expectedType;
-
private final MultiValueBind multiValueBind;
-
@SuppressWarnings("rawtypes")
private final ScalarType scalarType;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java
index 537575ae8..d0f888582 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java
@@ -18,12 +18,10 @@ import java.sql.SQLException;
/**
* Imported Embedded id.
*/
-public class ImportedIdEmbedded implements ImportedId {
+public final class ImportedIdEmbedded implements ImportedId {
private final BeanPropertyAssoc> owner;
-
private final BeanPropertyAssocOne> foreignAssocOne;
-
private final ImportedIdSimple[] imported;
public ImportedIdEmbedded(BeanPropertyAssoc> owner, BeanPropertyAssocOne> foreignAssocOne, ImportedIdSimple[] imported) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java
index ea9844ec1..83f615994 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java
@@ -36,23 +36,11 @@ public final class ImportedIdSimple implements ImportedId, Comparable owner;
-
final String localDbColumn;
-
private final String localSqlFormula;
-
final BeanProperty foreignProperty;
-
private final int position;
-
- /**
- * If true include in insert.
- */
private final boolean insertable;
-
- /**
- * If true include in update.
- */
private final boolean updateable;
public ImportedIdSimple(BeanPropertyAssoc> owner, String localDbColumn, String localSqlFormula, BeanProperty foreignProperty, int position,
From 0413d89a9e8cf7a86b0acedd00578d860b8f40ce Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 23:19:02 +1200
Subject: [PATCH 23/68] #2318 - Refactor internals - final classes in
expression packages
---
.../server/expression/AbstractExpression.java | 4 +---
.../expression/AbstractTextExpression.java | 2 +-
.../expression/AbstractValueExpression.java | 2 +-
.../server/expression/AllEqualsExpression.java | 17 ++---------------
.../expression/ArrayContainsExpression.java | 4 +---
.../expression/ArrayIsEmptyExpression.java | 2 +-
.../server/expression/BetweenExpression.java | 3 +--
.../expression/BetweenPropertyExpression.java | 6 ++----
.../server/expression/BitwiseExpression.java | 9 +++------
.../CaseInsensitiveEqualExpression.java | 4 +---
.../expression/DefaultExampleExpression.java | 4 ++--
.../expression/DefaultExpressionList.java | 5 -----
.../expression/DefaultExpressionRequest.java | 11 +----------
.../expression/ExistsQueryExpression.java | 16 +++++-----------
.../server/expression/FilterExprPath.java | 2 +-
.../server/expression/FilterExpressionList.java | 4 +---
.../server/expression/IdExpression.java | 2 +-
.../server/expression/IdInExpression.java | 3 +--
.../server/expression/InExpression.java | 2 +-
.../server/expression/InPairsExpression.java | 8 +-------
.../server/expression/InQueryExpression.java | 5 +----
.../server/expression/InRangeExpression.java | 3 +--
.../server/expression/IsEmptyExpression.java | 4 +---
.../server/expression/JsonPathExpression.java | 10 +++++-----
.../server/expression/JunctionExpression.java | 7 +++----
.../server/expression/LikeExpression.java | 6 +-----
.../server/expression/LogicExpression.java | 6 ++----
.../server/expression/NamedParamHelp.java | 2 +-
.../expression/NativeILikeExpression.java | 2 +-
.../expression/NestedPathWrapperExpression.java | 7 +++----
.../server/expression/NoopExpression.java | 4 ++--
.../server/expression/NullExpression.java | 5 +----
.../server/expression/PrepareDocNested.java | 2 +-
.../server/expression/RawExpression.java | 3 +--
.../server/expression/RawExpressionBuilder.java | 2 +-
.../ebeaninternal/server/expression/Same.java | 11 +++++------
.../server/expression/SimpleExpression.java | 2 +-
.../expression/TextCommonTermsExpression.java | 3 +--
.../server/expression/TextMatchExpression.java | 5 ++---
.../expression/TextMultiMatchExpression.java | 5 ++---
.../expression/TextQueryStringExpression.java | 5 ++---
.../server/expression/TextSimpleExpression.java | 5 ++---
.../expression/platform/BaseDbExpression.java | 2 --
.../expression/platform/BasicDbExpression.java | 2 +-
.../platform/DbExpressionHandlerFactory.java | 3 +--
.../expression/platform/H2DbExpression.java | 2 +-
.../expression/platform/HanaDbExpression.java | 2 +-
.../expression/platform/MariaDbExpression.java | 2 +-
.../expression/platform/MySqlDbExpression.java | 2 +-
.../expression/platform/OracleDbExpression.java | 3 +--
.../expression/platform/PostgresCast.java | 7 +++----
.../platform/PostgresDbExpression.java | 5 +----
.../platform/SqlServerDbExpression.java | 2 +-
53 files changed, 80 insertions(+), 166 deletions(-)
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java
index c3090e38f..f3c9d5aae 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java
@@ -14,7 +14,7 @@ import io.ebeaninternal.api.NaturalKeyQueryData;
/**
* Base class for simple expressions.
*/
-public abstract class AbstractExpression implements SpiExpression {
+abstract class AbstractExpression implements SpiExpression {
protected String propName;
@@ -66,7 +66,6 @@ public abstract class AbstractExpression implements SpiExpression {
@Override
public void containsMany(BeanDescriptor> desc, ManyWhereJoins manyWhereJoin) {
-
propertyContainsMany(propName, desc, manyWhereJoin);
}
@@ -103,7 +102,6 @@ public abstract class AbstractExpression implements SpiExpression {
}
protected final ElPropertyValue getElProp(SpiExpressionRequest request) {
-
return request.getBeanDescriptor().getElGetValue(propName);
}
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java
index 363bcb08d..272e557d7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java
@@ -10,7 +10,7 @@ import io.ebeaninternal.api.SpiExpressionRequest;
* This means they can not be part of a SQL query nor do they use the built in query plan cache etc.
*
*/
-public abstract class AbstractTextExpression extends AbstractExpression {
+abstract class AbstractTextExpression extends AbstractExpression {
AbstractTextExpression(String propName) {
super(propName);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java
index 7adb2729b..a758dcd10 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java
@@ -3,7 +3,7 @@ package io.ebeaninternal.server.expression;
/**
* Abstract expression that helps with named parameter use.
*/
-public abstract class AbstractValueExpression extends AbstractExpression {
+abstract class AbstractValueExpression extends AbstractExpression {
protected final Object bindValue;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java
index 56761dcf2..fafb3bc96 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java
@@ -13,7 +13,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
-class AllEqualsExpression extends NonPrepareExpression {
+final class AllEqualsExpression extends NonPrepareExpression {
private final Map propMap;
@@ -21,7 +21,7 @@ class AllEqualsExpression extends NonPrepareExpression {
this.propMap = propMap;
}
- protected String name(String propName) {
+ String name(String propName) {
return propName;
}
@@ -56,7 +56,6 @@ class AllEqualsExpression extends NonPrepareExpression {
@Override
public void addBindValues(SpiExpressionRequest request) {
-
if (propMap.isEmpty()) {
return;
}
@@ -70,23 +69,17 @@ class AllEqualsExpression extends NonPrepareExpression {
@Override
public void addSql(SpiExpressionRequest request) {
-
if (propMap.isEmpty()) {
return;
}
-
request.append("(");
-
int count = 0;
for (Map.Entry entry : propMap.entrySet()) {
-
Object value = entry.getValue();
String propName = entry.getKey();
-
if (count > 0) {
request.append("and ");
}
-
request.append(name(propName));
if (value == null) {
request.append(" is null ");
@@ -106,7 +99,6 @@ class AllEqualsExpression extends NonPrepareExpression {
*/
@Override
public void queryPlanHash(StringBuilder builder) {
-
builder.append("AllEquals[");
for (Entry entry : propMap.entrySet()) {
Object value = entry.getValue();
@@ -135,20 +127,16 @@ class AllEqualsExpression extends NonPrepareExpression {
if (!(other instanceof AllEqualsExpression)) {
return false;
}
-
AllEqualsExpression that = (AllEqualsExpression) other;
return isSameByValue(that, true);
}
private boolean isSameByValue(AllEqualsExpression that, boolean byValue) {
-
if (propMap.size() != that.propMap.size()) {
return false;
}
-
Iterator> thisIt = propMap.entrySet().iterator();
Iterator> thatIt = that.propMap.entrySet().iterator();
-
while (thisIt.hasNext() && thatIt.hasNext()) {
Entry thisNext = thisIt.next();
Entry thatNext = thatIt.next();
@@ -160,7 +148,6 @@ class AllEqualsExpression extends NonPrepareExpression {
return false;
}
}
-
return true;
}
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java
index 7a9e903f6..34fec6037 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java
@@ -9,10 +9,9 @@ import java.io.IOException;
/**
* Contains expression for ARRAY type.
*/
-public class ArrayContainsExpression extends AbstractExpression {
+final class ArrayContainsExpression extends AbstractExpression {
private final boolean contains;
-
private final Object[] values;
ArrayContainsExpression(String propName, boolean contains, Object... values) {
@@ -26,7 +25,6 @@ public class ArrayContainsExpression extends AbstractExpression {
@Override
public void writeDocQuery(DocQueryContext context) throws IOException {
-
if (values.length == 1) {
context.writeEqualTo(propName, values[0]);
} else {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java
index f9cd530c8..2234f9500 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java
@@ -9,7 +9,7 @@ import java.io.IOException;
/**
* IsEmpty expression for ARRAY type.
*/
-public class ArrayIsEmptyExpression extends AbstractExpression {
+final class ArrayIsEmptyExpression extends AbstractExpression {
private final boolean empty;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java
index ed3d58d8b..be113e7a5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java
@@ -6,12 +6,11 @@ import io.ebeaninternal.api.SpiExpressionRequest;
import java.io.IOException;
-class BetweenExpression extends AbstractExpression {
+final class BetweenExpression extends AbstractExpression {
private static final String _BETWEEN = " between ? and ?";
private final Object valueHigh;
-
private final Object valueLow;
BetweenExpression(String propertyName, Object valueLow, Object valueHigh) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java
index 55b08380d..74129849d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java
@@ -14,7 +14,7 @@ import java.io.IOException;
/**
* Between expression where a value is between two properties.
*/
-class BetweenPropertyExpression extends NonPrepareExpression {
+final class BetweenPropertyExpression extends NonPrepareExpression {
private static final String BETWEEN = " between ";
@@ -34,7 +34,7 @@ class BetweenPropertyExpression extends NonPrepareExpression {
this.highProperty = path + "." + highProperty;
}
- protected String name(String propName) {
+ String name(String propName) {
return propName;
}
@@ -62,12 +62,10 @@ class BetweenPropertyExpression extends NonPrepareExpression {
@Override
public void containsMany(BeanDescriptor> desc, ManyWhereJoins manyWhereJoin) {
-
ElPropertyDeploy elProp = desc.getElPropertyDeploy(name(lowProperty));
if (elProp != null && elProp.containsMany()) {
manyWhereJoin.add(elProp);
}
-
elProp = desc.getElPropertyDeploy(name(highProperty));
if (elProp != null && elProp.containsMany()) {
manyWhereJoin.add(elProp);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java
index 460af37ec..aa68f2662 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java
@@ -9,14 +9,11 @@ import java.io.IOException;
/**
* Bitwise expression.
*/
-class BitwiseExpression extends AbstractExpression {
-
- protected final BitwiseOp operator;
+final class BitwiseExpression extends AbstractExpression {
+ private final BitwiseOp operator;
private final String compare;
-
- protected final long flags;
-
+ private final long flags;
private final long match;
BitwiseExpression(String propertyName, BitwiseOp operator, long flags, String compare, long match) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java
index 3a6224d9c..a8075090a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.server.el.ElPropertyValue;
import java.io.IOException;
-class CaseInsensitiveEqualExpression extends AbstractValueExpression {
+final class CaseInsensitiveEqualExpression extends AbstractValueExpression {
private final boolean not;
@@ -34,7 +34,6 @@ class CaseInsensitiveEqualExpression extends AbstractValueExpression {
@Override
public void addBindValues(SpiExpressionRequest request) {
-
ElPropertyValue prop = getElProp(request);
if (prop != null && prop.isDbEncrypted()) {
// bind the key as well as the value
@@ -47,7 +46,6 @@ class CaseInsensitiveEqualExpression extends AbstractValueExpression {
@Override
public void addSql(SpiExpressionRequest request) {
-
String pname = propName;
ElPropertyValue prop = getElProp(request);
if (prop != null && prop.isDbEncrypted()) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java
index cd8a59857..ca97b5408 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java
@@ -39,7 +39,7 @@ import java.util.ArrayList;
*
* }
*/
-public class DefaultExampleExpression implements SpiExpression, ExampleExpression {
+final class DefaultExampleExpression implements SpiExpression, ExampleExpression {
/**
* The example bean containing the properties.
@@ -75,7 +75,7 @@ public class DefaultExampleExpression implements SpiExpression, ExampleExpressio
* @param caseInsensitive if true use case insensitive expressions
* @param likeType the type of Like wild card used
*/
- public DefaultExampleExpression(EntityBean entity, boolean caseInsensitive, LikeType likeType) {
+ DefaultExampleExpression(EntityBean entity, boolean caseInsensitive, LikeType likeType) {
this.entity = entity;
this.caseInsensitive = caseInsensitive;
this.likeType = likeType;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java
index ed3f57e14..b9693df6d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java
@@ -56,15 +56,10 @@ public class DefaultExpressionList implements SpiExpressionList {
private static final String AND = " and ";
protected List list;
-
protected final Query query;
-
private final ExpressionList parentExprList;
-
protected final ExpressionFactory expr;
-
String allDocNestedPath;
-
/**
* Set to true for the "Text" root expression list.
*/
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java
index 557c53996..09ff401af 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java
@@ -13,26 +13,17 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
-public class DefaultExpressionRequest implements SpiExpressionRequest {
+public final class DefaultExpressionRequest implements SpiExpressionRequest {
private final SpiOrmQueryRequest> queryRequest;
-
private final BeanDescriptor> beanDescriptor;
-
private final StringBuilder sql = new StringBuilder();
-
private final List bindValues = new ArrayList<>();
-
private final DeployParser deployParser;
-
private final Binder binder;
-
private final SpiExpressionList> expressionList;
-
private int paramIndex;
-
private final boolean enableBindLog;
-
private StringBuilder bindLog;
public DefaultExpressionRequest(SpiOrmQueryRequest> queryRequest, DeployParser deployParser, Binder binder, SpiExpressionList> expressionList) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java
index 71ca665fe..438f1a2d5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java
@@ -16,15 +16,12 @@ import io.ebeaninternal.server.query.CQuery;
import java.io.IOException;
import java.util.List;
-class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpression {
+final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpression {
- protected final boolean not;
-
- protected final SpiQuery> subQuery;
-
- protected List bindParams;
-
- protected String sql;
+ private final boolean not;
+ private final SpiQuery> subQuery;
+ private List bindParams;
+ private String sql;
ExistsQueryExpression(SpiQuery> subQuery, boolean not) {
this.subQuery = subQuery;
@@ -67,7 +64,6 @@ class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpress
@Override
public void prepareExpression(BeanQueryRequest> request) {
-
CQuery> subQuery = compileSubQuery(request);
this.bindParams = subQuery.getPredicates().getWhereExprBindValues();
this.sql = subQuery.getGeneratedSql().replace('\n', ' ');
@@ -99,7 +95,6 @@ class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpress
@Override
public void addSql(SpiExpressionRequest request) {
-
if (not) {
request.append(" not");
}
@@ -110,7 +105,6 @@ class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpress
@Override
public void addBindValues(SpiExpressionRequest request) {
-
for (Object bindParam : bindParams) {
request.addBindValue(bindParam);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java
index d7b04de44..5765c7e43 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
* query that includes the filterMany.
*
*/
-public class FilterExprPath implements Serializable {
+public final class FilterExprPath implements Serializable {
private static final long serialVersionUID = -6420905565372842018L;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java
index b6b1874a8..0e8d4ba0b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java
@@ -18,14 +18,12 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
-public class FilterExpressionList extends DefaultExpressionList {
+public final class FilterExpressionList extends DefaultExpressionList {
private static final String notAllowedMessage = "This method is not allowed on a filter";
private final Query rootQuery;
-
private final FilterExprPath pathPrefix;
-
private int firstRow;
private int maxRows;
private String orderByClause;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java
index 94cab6de7..c61f884a4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java
@@ -12,7 +12,7 @@ import java.io.IOException;
/**
* Slightly redundant as Query.setId() ultimately also does the same job.
*/
-class IdExpression extends NonPrepareExpression implements SpiExpression {
+final class IdExpression extends NonPrepareExpression implements SpiExpression {
private final Object value;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java
index edf56b443..c1bd76db0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java
@@ -20,10 +20,9 @@ import java.util.Set;
/**
* In a collection of Id values.
*/
-public class IdInExpression extends NonPrepareExpression {
+public final class IdInExpression extends NonPrepareExpression {
private final List idCollection;
-
private boolean multiValueIdSupported;
public IdInExpression(Collection> idCollection) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java
index 0bc5a4588..1a84d87eb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java
@@ -16,7 +16,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
-class InExpression extends AbstractExpression {
+final class InExpression extends AbstractExpression {
private final boolean not;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java
index e5bd27413..b5533b7ad 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java
@@ -13,20 +13,14 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-class InPairsExpression extends AbstractExpression {
+final class InPairsExpression extends AbstractExpression {
private final boolean not;
-
private final String property0, property1;
-
private List entries;
-
private boolean multiValueSupported;
-
private final String separator;
-
private final String suffix;
-
private List concatBindValues;
InPairsExpression(Pairs pairs, boolean not) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java
index a2d6d787c..e53792550 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java
@@ -15,14 +15,11 @@ import java.util.List;
/**
* In expression using a sub query.
*/
-class InQueryExpression extends AbstractExpression implements UnsupportedDocStoreExpression {
+final class InQueryExpression extends AbstractExpression implements UnsupportedDocStoreExpression {
private final boolean not;
-
private final SpiQuery> subQuery;
-
private List bindParams;
-
private String sql;
InQueryExpression(String propertyName, SpiQuery> subQuery, boolean not) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java
index 04b242ba8..8bcdb12a8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java
@@ -6,10 +6,9 @@ import io.ebeaninternal.api.SpiExpressionRequest;
import java.io.IOException;
-class InRangeExpression extends AbstractExpression {
+final class InRangeExpression extends AbstractExpression {
private final Object valueHigh;
-
private final Object valueLow;
InRangeExpression(String propertyName, Object valueLow, Object valueHigh) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java
index d6b878bfa..fc3be3e34 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java
@@ -10,12 +10,10 @@ import io.ebean.util.SplitName;
import java.io.IOException;
-class IsEmptyExpression extends AbstractExpression {
+final class IsEmptyExpression extends AbstractExpression {
private final boolean empty;
-
private final String propertyPath;
-
private String nestedPath;
IsEmptyExpression(String propertyName, boolean empty) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java
index 1d954dcc1..a6e8f128b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java
@@ -16,27 +16,27 @@ import java.util.Objects;
* The value passed in is expected to be a valid JSON type so string, number, boolean.
*
*/
-class JsonPathExpression extends AbstractExpression {
+final class JsonPathExpression extends AbstractExpression {
/**
* The path in the JSON document in dot notation form.
*/
- protected final String path;
+ private final String path;
/**
* The expression operator.
*/
- protected final Op operator;
+ private final Op operator;
/**
* The bind value used to compare against the document path value.
*/
- protected final Object value;
+ private final Object value;
/**
* For Between this is the upper bind value.
*/
- protected final Object upperValue;
+ private final Object upperValue;
/**
* Construct for Operator (not BETWEEN though).
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java
index 5637fba7f..a408b5e74 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java
@@ -48,11 +48,10 @@ import java.util.function.Predicate;
/**
* Junction implementation.
*/
-class JunctionExpression implements SpiJunction, SpiExpression, ExpressionList {
+final class JunctionExpression implements SpiJunction, SpiExpression, ExpressionList {
- protected DefaultExpressionList exprList;
-
- protected Junction.Type type;
+ DefaultExpressionList exprList;
+ Junction.Type type;
JunctionExpression(Junction.Type type, Query query, ExpressionList parent) {
this.type = type;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java
index f40501929..bf3871c23 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java
@@ -8,10 +8,9 @@ import io.ebeaninternal.server.el.ElPropertyValue;
import java.io.IOException;
-class LikeExpression extends AbstractValueExpression {
+final class LikeExpression extends AbstractValueExpression {
private final boolean caseInsensitive;
-
private final LikeType type;
LikeExpression(String propertyName, Object value, boolean caseInsensitive, LikeType type) {
@@ -27,7 +26,6 @@ class LikeExpression extends AbstractValueExpression {
@Override
public void addBindValues(SpiExpressionRequest request) {
-
ElPropertyValue prop = getElProp(request);
if (prop != null && prop.isDbEncrypted()) {
// bind the key as well as the value
@@ -40,7 +38,6 @@ class LikeExpression extends AbstractValueExpression {
@Override
public void addSql(SpiExpressionRequest request) {
-
String pname = propName;
ElPropertyValue prop = getElProp(request);
if (prop != null && prop.isDbEncrypted()) {
@@ -98,7 +95,6 @@ class LikeExpression extends AbstractValueExpression {
return "%" + value + "%";
case EQUAL_TO:
return value;
-
default:
throw new RuntimeException("LikeType " + type + " missed?");
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java
index a66e2e88a..b0ef74f03 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java
@@ -21,7 +21,7 @@ abstract class LogicExpression implements SpiExpression {
static final String AND = " and ";
static final String OR = " or ";
- static class And extends LogicExpression {
+ static final class And extends LogicExpression {
And(Expression expOne, Expression expTwo) {
super(true, expOne, expTwo);
@@ -34,7 +34,7 @@ abstract class LogicExpression implements SpiExpression {
}
- static class Or extends LogicExpression {
+ static final class Or extends LogicExpression {
Or(Expression expOne, Expression expTwo) {
super(false, expOne, expTwo);
@@ -47,9 +47,7 @@ abstract class LogicExpression implements SpiExpression {
}
SpiExpression expOne;
-
SpiExpression expTwo;
-
private final boolean conjunction;
LogicExpression(boolean conjunction, Expression expOne, Expression expTwo) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java
index 5487cffbf..3a56ec7de 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java
@@ -8,7 +8,7 @@ import java.util.List;
/**
* Helper for evaluating named parameters.
*/
-class NamedParamHelp {
+final class NamedParamHelp {
/**
* Return the bind value taking into account named parameters.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java
index f64933df5..110442365 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java
@@ -8,7 +8,7 @@ import io.ebeaninternal.server.el.ElPropertyValue;
import java.io.IOException;
-class NativeILikeExpression extends AbstractExpression {
+final class NativeILikeExpression extends AbstractExpression {
private final String val;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java
index b76bfef4d..0bb63f1ed 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java
@@ -14,11 +14,10 @@ import java.io.IOException;
/**
* Wraps a single expression with nestedPath for document queries.
*/
-class NestedPathWrapperExpression implements SpiExpression {
+final class NestedPathWrapperExpression implements SpiExpression {
- protected final String nestedPath;
-
- protected final SpiExpression delegate;
+ final String nestedPath;
+ final SpiExpression delegate;
NestedPathWrapperExpression(String nestedPath, SpiExpression delegate) {
this.nestedPath = nestedPath;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java
index 6c8d709e7..079f26874 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java
@@ -14,9 +14,9 @@ import java.io.IOException;
/**
* Effectively an expression that has no effect.
*/
-class NoopExpression implements SpiExpression {
+final class NoopExpression implements SpiExpression {
- protected static final NoopExpression INSTANCE = new NoopExpression();
+ static final NoopExpression INSTANCE = new NoopExpression();
@Override
public void prefixProperty(String path) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java
index 2808acce7..4a4a81201 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java
@@ -17,14 +17,11 @@ import java.io.IOException;
* Note that for OneToMany/ManyToMany this effectively gets translated into isEmpty()/isNotEmpty().
*
*/
-class NullExpression extends AbstractExpression {
+final class NullExpression extends AbstractExpression {
private final boolean notNull;
-
private ElPropertyValue elProperty;
-
private boolean assocMany;
-
private String propertyPath;
NullExpression(String propertyName, boolean notNull) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java
index ebc2d794b..8f1f48d38 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java
@@ -13,7 +13,7 @@ import java.util.Map;
/**
* Prepare nested path expressions for
*/
-class PrepareDocNested {
+final class PrepareDocNested {
/**
* Prepare the top level expressions for nested path handling.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java
index 9e1c3e8dc..53571cad7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java
@@ -11,10 +11,9 @@ import io.ebeaninternal.server.persist.MultiValueWrapper;
import java.io.IOException;
import java.util.Collection;
-class RawExpression extends NonPrepareExpression {
+final class RawExpression extends NonPrepareExpression {
final String sql;
-
final Object[] values;
RawExpression(String sql, Object[] values) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java
index 73a4da911..40aa47271 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-class RawExpressionBuilder {
+final class RawExpressionBuilder {
private static final String BP_1 = "?1";
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java
index 931e3e3e3..104d27969 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java
@@ -7,26 +7,26 @@ import java.util.Objects;
/**
* Utility to help isSame methods.
*/
-public class Same {
+final class Same {
/**
* Return true if both values are null or both an not null.
*/
- public static boolean sameByNull(Object v1, Object v2) {
+ static boolean sameByNull(Object v1, Object v2) {
return (v1 == null) == (v2 == null);
}
/**
* Null safe equals check.
*/
- public static boolean sameByValue(Object v1, Object v2) {
+ static boolean sameByValue(Object v1, Object v2) {
return Objects.equals(v1, v2);
}
/**
* Return true if both collections are the same by value and order is taken into account.
*/
- public static boolean sameByValue(Collection> v1, Collection> v2) {
+ static boolean sameByValue(Collection> v1, Collection> v2) {
if (v1 == null) {
return v2 == null;
}
@@ -46,8 +46,7 @@ public class Same {
/**
* Null safe check by sameByValue or sameByNull based on byValue.
*/
- public static boolean sameBy(boolean byValue, Object value, Object value1) {
-
+ static boolean sameBy(boolean byValue, Object value, Object value1) {
if (byValue) {
return sameByValue(value, value1);
} else {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java
index bc23b84f2..87b0ed3bf 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java
@@ -11,7 +11,7 @@ import io.ebeaninternal.api.NaturalKeyQueryData;
import java.io.IOException;
import java.util.Arrays;
-public class SimpleExpression extends AbstractValueExpression {
+public final class SimpleExpression extends AbstractValueExpression {
private final Op type;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java
index 8cc5fb5bb..3f289edb5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java
@@ -7,10 +7,9 @@ import java.io.IOException;
/**
* Full text common terms expression.
*/
-class TextCommonTermsExpression extends AbstractTextExpression {
+final class TextCommonTermsExpression extends AbstractTextExpression {
private final String search;
-
private final TextCommonTerms options;
public TextCommonTermsExpression(String search, TextCommonTerms options) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java
index d36f491b7..f7cb06e6a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java
@@ -7,13 +7,12 @@ import java.io.IOException;
/**
* Full text MATCH expression.
*/
-public class TextMatchExpression extends AbstractTextExpression {
+final class TextMatchExpression extends AbstractTextExpression {
private final String search;
-
private final Match options;
- public TextMatchExpression(String propertyName, String search, Match options) {
+ TextMatchExpression(String propertyName, String search, Match options) {
super(propertyName);
this.search = search;
this.options = options;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java
index e51538e9f..f9fe1e909 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java
@@ -7,13 +7,12 @@ import java.io.IOException;
/**
* Full text Multi-Match expression.
*/
-public class TextMultiMatchExpression extends AbstractTextExpression {
+final class TextMultiMatchExpression extends AbstractTextExpression {
private final String search;
-
private final MultiMatch options;
- public TextMultiMatchExpression(String search, MultiMatch options) {
+ TextMultiMatchExpression(String search, MultiMatch options) {
super(null);
this.search = search;
this.options = options;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java
index 2a44e39d5..dcd46a240 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java
@@ -7,13 +7,12 @@ import java.io.IOException;
/**
* Full text query string expression.
*/
-class TextQueryStringExpression extends AbstractTextExpression {
+final class TextQueryStringExpression extends AbstractTextExpression {
private final String search;
-
private final TextQueryString options;
- public TextQueryStringExpression(String search, TextQueryString options) {
+ TextQueryStringExpression(String search, TextQueryString options) {
super(null);
this.search = search;
this.options = options;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java
index 9faa7d1a7..ec6702c2a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java
@@ -7,13 +7,12 @@ import java.io.IOException;
/**
* Full text Multi-Match expression.
*/
-class TextSimpleExpression extends AbstractTextExpression {
+final class TextSimpleExpression extends AbstractTextExpression {
private final String search;
-
private final TextSimple options;
- public TextSimpleExpression(String search, TextSimple options) {
+ TextSimpleExpression(String search, TextSimple options) {
super(null);
this.search = search;
this.options = options;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java
index 2c85e7963..a8d4d6adc 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java
@@ -10,7 +10,6 @@ abstract class BaseDbExpression implements DbExpressionHandler {
@Override
public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) {
-
String bitOp = bitOp(operator);
request.append("(").append(propName).append(" ").append(bitOp).append(" ? ").append(compare).append(" ?)");
}
@@ -30,7 +29,6 @@ abstract class BaseDbExpression implements DbExpressionHandler {
* Common alternative where the bitwise operation is a function (specifically bitand is used - H2 and Oracle).
*/
protected void bitwiseFunction(SpiExpressionRequest request, String propName, BitwiseOp operator, String compare) {
-
String funcName = functionName(operator);
request.append(funcName).append("(").append(propName).append(", ?) ").append(compare).append(" ?");
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java
index 8b5ab8d70..edecf8230 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op;
/**
* Not supported JSON or ARRAY expression handler.
*/
-public class BasicDbExpression extends BaseDbExpression {
+class BasicDbExpression extends BaseDbExpression {
@Override
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java
index c4b24fc84..6f773b270 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java
@@ -4,13 +4,12 @@ import io.ebean.annotation.Platform;
import io.ebean.config.dbplatform.DatabasePlatform;
-public class DbExpressionHandlerFactory {
+public final class DbExpressionHandlerFactory {
/**
* Create and return the appropriate platform specific handing of expressions.
*/
public static DbExpressionHandler from(DatabasePlatform databasePlatform) {
-
Platform platform = databasePlatform.getPlatform();
switch (platform) {
case H2:
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java
index 0c7e43b65..5eddb5d11 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.BitwiseOp;
/**
* H2 handling of platform specific expressions.
*/
-class H2DbExpression extends BasicDbExpression {
+final class H2DbExpression extends BasicDbExpression {
@Override
public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java
index a6633edfa..43919c1a0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.server.expression.Op;
/**
* HANA handling of platform specific expressions.
*/
-public class HanaDbExpression extends BaseDbExpression {
+final class HanaDbExpression extends BaseDbExpression {
@Override
public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java
index 8e4c0be1d..8116b2c4e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op;
/**
* MariaDB specific handling of platform specific expressions.
*/
-class MariaDbExpression extends BasicDbExpression {
+final class MariaDbExpression extends BasicDbExpression {
@Override
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java
index 8ea2595fe..b0721a44e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op;
/**
* MySql specific handling of platform specific expressions.
*/
-class MySqlDbExpression extends BasicDbExpression {
+final class MySqlDbExpression extends BasicDbExpression {
@Override
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java
index 3ec4b4071..f1fbaef7a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java
@@ -7,7 +7,7 @@ import io.ebeaninternal.server.expression.Op;
/**
* Oracle handling of platform specific expressions. ARRAY expressions not supported.
*/
-public class OracleDbExpression extends BaseDbExpression {
+final class OracleDbExpression extends BaseDbExpression {
@Override
public String concat(String property0, String separator, String property1, String suffix) {
@@ -16,7 +16,6 @@ public class OracleDbExpression extends BaseDbExpression {
@Override
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
-
if (operator == Op.EXISTS) {
request.append("json_exists(").append(propName).append(", '$.").append(path).append("')");
} else if (operator == Op.NOT_EXISTS) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java
index 3e833cb12..595acb6cd 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java
@@ -3,7 +3,7 @@ package io.ebeaninternal.server.expression.platform;
/**
* Helper for determining type casting for JSON and ARRAY expressions.
*/
-public class PostgresCast {
+final class PostgresCast {
/**
* Postgres CAST the type if necessary.
@@ -11,15 +11,14 @@ public class PostgresCast {
* This is generally necessary for JSON expressions as text values always returned from the json operators used.
*
*/
- protected static String cast(Object value) {
+ static String cast(Object value) {
return cast(value, false);
}
/**
* Postgres CAST the type if necessary additionally specify if DB ARRAY is used.
*/
- protected static String cast(Object value, boolean asArray) {
-
+ static String cast(Object value, boolean asArray) {
if (value == null) {
// for exists and not-exists expressions
return "";
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java
index 54270ee5c..a3f044072 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op;
/**
* Postgres JSON and ARRAY expression handler
*/
-public class PostgresDbExpression extends BaseDbExpression {
+final class PostgresDbExpression extends BaseDbExpression {
@Override
public String concat(String property0, String separator, String property1, String suffix) {
@@ -15,7 +15,6 @@ public class PostgresDbExpression extends BaseDbExpression {
@Override
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
-
StringBuilder sb = new StringBuilder(50);
String[] paths = path.split("\\.");
if (paths.length == 1) {
@@ -41,7 +40,6 @@ public class PostgresDbExpression extends BaseDbExpression {
@Override
public void arrayContains(SpiExpressionRequest request, String propName, boolean contains, Object... values) {
-
if (!contains) {
request.append("not (");
}
@@ -58,7 +56,6 @@ public class PostgresDbExpression extends BaseDbExpression {
@Override
public void arrayIsEmpty(SpiExpressionRequest request, String propName, boolean empty) {
-
request.append("coalesce(cardinality(").append(propName).append("),0)");
if (empty) {
request.append(" = 0");
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java
index 98d76ec43..78838a81e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java
@@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op;
/**
* Microsoft SQL Server JSON. ARRAY expressions not supported.
*/
-public class SqlServerDbExpression extends BaseDbExpression {
+final class SqlServerDbExpression extends BaseDbExpression {
@Override
public void json(final SpiExpressionRequest request, final String propName,
From 9ee63144e57721ec49a9cd3c54c5de88f99678e6 Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 23:32:05 +1200
Subject: [PATCH 24/68] #2318 - Refactor internals - final classes in core
packages
---
.../server/core/DScriptRunner.java | 2 +-
.../server/core/DefaultBeanLoader.java | 19 +-
.../server/core/DefaultBeanState.java | 2 +-
.../server/core/DefaultCallOriginFactory.java | 2 +-
.../server/core/DefaultCallableSql.java | 2 +-
.../server/core/DefaultContainer.java | 2 +-
.../server/core/DefaultMetaInfoManager.java | 2 +-
.../server/core/DefaultQueryPlanListener.java | 2 +-
.../server/core/DefaultSlowQueryListener.java | 3 +-
.../ebeaninternal/server/core/DiffHelp.java | 6 +-
.../server/core/DumpMetrics.java | 4 +-
.../server/core/DumpMetricsData.java | 4 +-
.../server/core/DumpMetricsJson.java | 7 +-
.../server/core/InitDataSource.java | 3 +-
.../server/core/InternalConfigXmlMap.java | 2 +-
.../server/core/InternalConfiguration.java | 2 +-
.../server/core/JndiDataSourceLookup.java | 6 +-
.../core/MultiTenantDbCatalogSupplier.java | 3 +-
.../core/MultiTenantDbSchemaSupplier.java | 3 +-
.../server/core/MultiTenantDbSupplier.java | 3 +-
.../server/core/NoopCallOriginFactory.java | 2 +-
.../core/PersistDeferredRelationship.java | 2 +-
.../server/core/RefreshHelp.java | 215 ------------------
.../server/core/SimpleDataSourceProvider.java | 3 +-
.../server/core/SpiResultSet.java | 2 +-
25 files changed, 24 insertions(+), 279 deletions(-)
delete mode 100644 ebean-core/src/main/java/io/ebeaninternal/server/core/RefreshHelp.java
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java
index 8bf649438..cb78076bc 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java
@@ -17,7 +17,7 @@ import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
-class DScriptRunner implements ScriptRunner {
+final class DScriptRunner implements ScriptRunner {
private static final String NEWLINE = "\n";
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java
index 34417ed14..4d0409d4c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java
@@ -26,12 +26,11 @@ import java.util.List;
/**
* Helper to handle lazy loading and refreshing of beans.
*/
-class DefaultBeanLoader {
+final class DefaultBeanLoader {
private static final Logger logger = LoggerFactory.getLogger(DefaultBeanLoader.class);
private final DefaultServer server;
-
private final boolean onIterateUseExtraTxn;
DefaultBeanLoader(DefaultServer server) {
@@ -40,17 +39,14 @@ class DefaultBeanLoader {
}
void loadMany(LoadManyRequest loadRequest) {
-
SpiQuery> query = loadRequest.createQuery(server);
executeQuery(loadRequest, query);
loadRequest.postLoad();
}
void loadMany(BeanCollection> bc, boolean onlyIds) {
-
EntityBean parentBean = bc.getOwnerBean();
String propertyName = bc.getPropertyName();
-
loadManyInternal(parentBean, propertyName, null, false, onlyIds);
}
@@ -59,13 +55,10 @@ class DefaultBeanLoader {
}
private void loadManyInternal(EntityBean parentBean, String propertyName, Transaction t, boolean refresh, boolean onlyIds) {
-
EntityBeanIntercept ebi = parentBean._ebean_getIntercept();
PersistenceContext pc = ebi.getPersistenceContext();
-
BeanDescriptor> parentDesc = server.getBeanDescriptor(parentBean.getClass());
BeanPropertyAssocMany> many = (BeanPropertyAssocMany>) parentDesc.getBeanProperty(propertyName);
-
BeanCollection> beanCollection = null;
ExpressionList> filterMany = null;
@@ -126,7 +119,6 @@ class DefaultBeanLoader {
}
server.findOne(query, t);
-
if (beanCollection != null) {
if (beanCollection.checkEmptyLazyLoad()) {
if (logger.isDebugEnabled()) {
@@ -142,7 +134,6 @@ class DefaultBeanLoader {
* Load a batch of beans for +query or +lazy loading.
*/
void loadBean(LoadBeanRequest loadRequest) {
-
List batch = loadRequest.getBatch();
if (batch.isEmpty()) {
throw new RuntimeException("Nothing in batch?");
@@ -190,7 +181,6 @@ class DefaultBeanLoader {
}
private void refreshBeanInternal(EntityBean bean, SpiQuery.Mode mode, int embeddedOwnerIndex) {
-
EntityBeanIntercept ebi = bean._ebean_getIntercept();
PersistenceContext pc = ebi.getPersistenceContext();
if (Mode.REFRESH_BEAN == mode) {
@@ -203,12 +193,10 @@ class DefaultBeanLoader {
// lazy loading on an embedded bean property
EntityBean embeddedOwner = (EntityBean) ebi.getEmbeddedOwner();
int ownerIndex = ebi.getEmbeddedOwnerIndex();
-
refreshBeanInternal(embeddedOwner, mode, ownerIndex);
}
Object id = desc.getId(bean);
-
if (pc == null) {
// a reference with no existing persistenceContext
pc = new DefaultPersistenceContext();
@@ -216,7 +204,6 @@ class DefaultBeanLoader {
ebi.setPersistenceContext(pc);
}
boolean draft = desc.isDraftInstance(bean);
-
if (embeddedOwnerIndex == -1) {
if (desc.lazyLoadMany(ebi)) {
return;
@@ -246,16 +233,13 @@ class DefaultBeanLoader {
query.setPersistenceContext(pc);
query.setMode(mode);
query.setId(id);
-
if (embeddedOwnerIndex > -1 || mode == Mode.REFRESH_BEAN) {
// make sure the query doesn't use the cache
query.setUseCache(false);
}
-
if (ebi.isReadOnly()) {
query.setReadOnly(true);
}
-
if (Mode.REFRESH_BEAN == mode) {
// explicitly state to load all properties on REFRESH.
// Lobs default to fetch lazy so this forces lobs to be
@@ -268,7 +252,6 @@ class DefaultBeanLoader {
String msg = "Bean not found during lazy load or refresh." + " id[" + id + "] type[" + desc.getBeanType() + "]";
throw new EntityNotFoundException(msg);
}
-
desc.resetManyProperties(dbBean);
}
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanState.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanState.java
index 22f2b7ae8..332b4fc0d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanState.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanState.java
@@ -11,7 +11,7 @@ import java.util.Set;
/**
* Default implementation of BeanState.
*/
-public class DefaultBeanState implements BeanState {
+public final class DefaultBeanState implements BeanState {
private final EntityBeanIntercept intercept;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallOriginFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallOriginFactory.java
index 249f4dbdb..233a2a920 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallOriginFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallOriginFactory.java
@@ -8,7 +8,7 @@ import java.util.Arrays;
/**
* Default CallStackFactory where the Hash function for StackTraceElement includes the line number.
*/
-public class DefaultCallOriginFactory implements CallOriginFactory {
+public final class DefaultCallOriginFactory implements CallOriginFactory {
private static final int IGNORE_LEADING_ELEMENTS = 5;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallableSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallableSql.java
index f41919ce2..fe7b18392 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallableSql.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultCallableSql.java
@@ -12,7 +12,7 @@ import java.sql.CallableStatement;
import java.sql.SQLException;
-public class DefaultCallableSql implements Serializable, SpiCallableSql {
+public final class DefaultCallableSql implements Serializable, SpiCallableSql {
private static final long serialVersionUID = 8984272253185424701L;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java
index e912b8cbb..348fd2f32 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java
@@ -32,7 +32,7 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* Default Server side implementation of ServerFactory.
*/
-public class DefaultContainer implements SpiContainer {
+public final class DefaultContainer implements SpiContainer {
private static final Logger logger = LoggerFactory.getLogger("io.ebean.DB");
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java
index a6a65e19d..a1775e818 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java
@@ -19,7 +19,7 @@ import java.util.List;
/**
* DefaultServer based implementation of MetaInfoManager.
*/
-public class DefaultMetaInfoManager implements MetaInfoManager {
+final class DefaultMetaInfoManager implements MetaInfoManager {
private final DefaultServer server;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java
index 20d7ec223..ba2e99bda 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java
@@ -6,7 +6,7 @@ import io.ebean.meta.MetaQueryPlan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-class DefaultQueryPlanListener implements QueryPlanListener {
+final class DefaultQueryPlanListener implements QueryPlanListener {
static final QueryPlanListener INSTANT = new DefaultQueryPlanListener();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java
index b271a513e..64c813213 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java
@@ -9,13 +9,12 @@ import org.slf4j.LoggerFactory;
/**
* Default slow query listener implementation that logs a warning message.
*/
-class DefaultSlowQueryListener implements SlowQueryListener {
+final class DefaultSlowQueryListener implements SlowQueryListener {
private static final Logger log = LoggerFactory.getLogger("io.ebean.SlowQuery");
@Override
public void process(SlowQueryEvent event) {
-
String firstStack = "";
ObjectGraphNode node = event.getOriginNode();
if (node != null) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DiffHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DiffHelp.java
index b879727db..9eca59e19 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DiffHelp.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DiffHelp.java
@@ -12,7 +12,7 @@ import java.util.Map;
* This intentionally does not include any OneToMany or ManyToMany properties.
*
*/
-public class DiffHelp {
+public final class DiffHelp {
private DiffHelp() {
}
@@ -28,11 +28,9 @@ public class DiffHelp {
*
*/
public static Map diff(Object newBean, Object oldBean, BeanDescriptor> desc) {
-
if (!(newBean instanceof EntityBean)) {
throw new IllegalArgumentException("First bean expected to be an enhanced EntityBean? bean:" + newBean);
}
-
if (oldBean != null) {
if (!(oldBean instanceof EntityBean)) {
throw new IllegalArgumentException("Second bean expected to be an enhanced EntityBean? bean:" + oldBean);
@@ -41,11 +39,9 @@ public class DiffHelp {
throw new IllegalArgumentException("Second bean not assignable to the first bean?");
}
}
-
if (oldBean == null) {
return ((EntityBean) newBean)._ebean_getIntercept().getDirtyValues();
}
-
return desc.diff((EntityBean) newBean, (EntityBean) oldBean);
}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java
index 5274b4ced..9b5a1afa7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java
@@ -10,14 +10,12 @@ import io.ebeaninternal.api.SpiEbeanServer;
import java.util.Comparator;
import java.util.List;
-class DumpMetrics {
+final class DumpMetrics {
private final SpiEbeanServer server;
private final String options;
-
private final String nameFormat;
private final String nameFormatTimed;
-
private boolean dumpHash;
private boolean dumpSql;
private boolean dumpLoc;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsData.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsData.java
index 4bc1e5035..712521ce0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsData.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsData.java
@@ -14,10 +14,9 @@ import java.util.List;
/**
* Dump the metrics into a list of MetricData.
*/
-class DumpMetricsData {
+final class DumpMetricsData {
private final Database database;
-
private final List list = new ArrayList<>();
DumpMetricsData(Database database) {
@@ -30,7 +29,6 @@ class DumpMetricsData {
}
private void collect(ServerMetrics serverMetrics) {
-
final List timedMetrics = serverMetrics.timedMetrics();
final List countMetrics = serverMetrics.countMetrics();
final List queryMetrics = serverMetrics.queryMetrics();
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsJson.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsJson.java
index 90200f79b..190af0af4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsJson.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsJson.java
@@ -14,23 +14,18 @@ import java.io.StringWriter;
import java.util.Comparator;
import java.util.List;
-class DumpMetricsJson implements ServerMetricsAsJson {
+final class DumpMetricsJson implements ServerMetricsAsJson {
private final Database database;
-
private Appendable writer;
-
/**
* By default include sql and location attributes for the initial collection only.
*/
private int includeExtraAttributes = 1;
-
private boolean withHeader = true;
private boolean withHash = true;
private String newLine = "\n";
-
private Comparator sortBy = SortMetric.NAME;
-
private int listCounter;
private int objKeyCounter;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java
index 3a03c7361..f65cb0823 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java
@@ -12,10 +12,9 @@ import javax.sql.DataSource;
/**
* Initialise the main DataSource and read-only DataSource.
*/
-class InitDataSource {
+final class InitDataSource {
private final JndiDataSourceLookup jndiDataSourceFactory = new JndiDataSourceLookup();
-
private final DatabaseConfig config;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java
index ccfa08de3..594a9f29d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java
@@ -14,7 +14,7 @@ import java.util.Map;
/**
* Reads the Xml deployment information.
*/
-class InternalConfigXmlMap {
+final class InternalConfigXmlMap {
private static final Logger log = LoggerFactory.getLogger(InternalConfigXmlMap.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java
index dca8e3059..96ab21aa2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java
@@ -113,7 +113,7 @@ import java.util.ServiceLoader;
* Used to extend the DatabaseConfig with additional objects used to configure and
* construct an Database.
*/
-public class InternalConfiguration {
+public final class InternalConfiguration {
private static final Logger logger = LoggerFactory.getLogger(InternalConfiguration.class);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/JndiDataSourceLookup.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/JndiDataSourceLookup.java
index 0e541fadd..09b2f7a9c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/JndiDataSourceLookup.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/JndiDataSourceLookup.java
@@ -9,10 +9,7 @@ import javax.sql.DataSource;
/**
* Helper to lookup a DataSource from JNDI.
*/
-public class JndiDataSourceLookup {
-
- public JndiDataSourceLookup() {
- }
+class JndiDataSourceLookup {
/**
* Return the DataSource by JNDI lookup.
@@ -21,7 +18,6 @@ public class JndiDataSourceLookup {
*
*/
public DataSource lookup(String jndiName) {
-
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(jndiName);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java
index 8b369d25a..abe20b1ca 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbCatalogSupplier.java
@@ -15,11 +15,10 @@ import java.util.logging.Logger;
/**
* DataSource supplier that changes DB catalog based on current Tenant Id.
*/
-public class MultiTenantDbCatalogSupplier implements DataSourceSupplier {
+final class MultiTenantDbCatalogSupplier implements DataSourceSupplier {
private final DataSource dataSource;
private final DataSource readOnlyDataSource;
-
private final CatalogDataSource catalogDataSource;
private final CatalogDataSource readOnly;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java
index f37ce202e..2a1af6016 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSchemaSupplier.java
@@ -15,11 +15,10 @@ import java.util.logging.Logger;
/**
* DataSource supplier that changes DB schema based on current Tenant Id.
*/
-class MultiTenantDbSchemaSupplier implements DataSourceSupplier {
+final class MultiTenantDbSchemaSupplier implements DataSourceSupplier {
private final DataSource dataSource;
private final DataSource readOnlyDataSource;
-
private final SchemaDataSource schemaDataSource;
private final SchemaDataSource readOnly;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSupplier.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSupplier.java
index b985c7864..e6237abfa 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSupplier.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/MultiTenantDbSupplier.java
@@ -11,10 +11,9 @@ import java.sql.SQLException;
/**
* DataSource supplier based on DataSource per Tenant.
*/
-class MultiTenantDbSupplier implements DataSourceSupplier {
+final class MultiTenantDbSupplier implements DataSourceSupplier {
private final CurrentTenantProvider tenantProvider;
-
private final TenantDataSourceProvider dataSourceProvider;
MultiTenantDbSupplier(CurrentTenantProvider tenantProvider, TenantDataSourceProvider dataSourceProvider) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/NoopCallOriginFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/NoopCallOriginFactory.java
index eee313bc3..a95e507ea 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/NoopCallOriginFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/NoopCallOriginFactory.java
@@ -6,7 +6,7 @@ import io.ebean.bean.CallStack;
/**
* A CallOriginFactory we can use when we don't use AutoTune.
*/
-class NoopCallOriginFactory implements CallOriginFactory {
+final class NoopCallOriginFactory implements CallOriginFactory {
private static final StackTraceElement E0 = new StackTraceElement("none", "none", "none", 0);
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistDeferredRelationship.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistDeferredRelationship.java
index ff81f49da..41bbb20ef 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistDeferredRelationship.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistDeferredRelationship.java
@@ -11,7 +11,7 @@ import io.ebeaninternal.server.deploy.id.ImportedId;
* Deferred update of a relationship where an Id value is not initially available
* so instead we execute this later as a SqlUpdate statement.
*/
-public class PersistDeferredRelationship {
+public final class PersistDeferredRelationship {
private final SpiEbeanServer ebeanServer;
private final BeanDescriptor> beanDescriptor;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/RefreshHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/RefreshHelp.java
deleted file mode 100644
index 24ff1d117..000000000
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/RefreshHelp.java
+++ /dev/null
@@ -1,215 +0,0 @@
-package io.ebeaninternal.server.core;
-
-
-/**
- * Helper for performing a 'refresh' on an Entity bean.
- *
- * Note that this does not 'refresh' any OnetoMany or ManyToMany properties. It
- * refreshes all the other properties though.
- *
- */
-public class RefreshHelp {
-//
-// /**
-// * Helper for debug of lazy loading.
-// */
-// private final DebugLazyLoad debugLazyLoad;
-//
-// private final MAdminLoggingMBean logControl;
-//
-// public RefreshHelp(MAdminLoggingMBean logControl, boolean debugLazyLoad){
-// this.logControl = logControl;
-// this.debugLazyLoad = new DebugLazyLoad(debugLazyLoad);
-// }
-//
-// /**
-// * Refresh the bean from property values in dbBean.
-// */
-// public void refresh(Object o, Object dbBean, BeanDescriptor> desc, EntityBeanIntercept ebi, Object id, boolean isLazyLoad) {
-//
-// Object originalOldValues = null;
-// boolean setOriginalOldValues = false;
-//
-// // set of properties to exclude from the refresh because it is
-// // not a refresh but rather a lazyLoading event.
-// Set excludes = null;
-//
-// // turn off intercepting so lazy loading is
-// // not invoked when populating the bean
-// // with PropertyChangeSupport
-// ebi.setIntercepting(false);
-//
-// boolean readOnly = ebi.isReadOnly();
-// boolean sharedInstance = ebi.isSharedInstance();
-//
-// if (isLazyLoad){
-// excludes = ebi.getLoadedProps();
-// if (excludes != null){
-// // lazy loading a "Partial Object"... which already
-// // contains some properties and perhaps some oldValues
-// // and these will need to be maintained...
-// originalOldValues = ebi.getOldValues();
-// setOriginalOldValues = originalOldValues != null;
-// }
-//
-// if (logControl.isDebugLazyLoad()){
-// debug(desc, ebi, id, excludes);
-// }
-// }
-//
-//
-// BeanProperty[] props = desc.propertiesBaseScalar();
-// for (int i = 0; i < props.length; i++) {
-// BeanProperty prop = props[i];
-// if (excludes != null && excludes.contains(prop.getName())){
-// // ignore this property (partial bean lazy loading)
-//
-// } else {
-// Object dbVal = prop.getValue(dbBean);
-// if (isLazyLoad) {
-// prop.setValue(o, dbVal);
-// } else {
-// prop.setValueIntercept(o, dbVal);
-// }
-// if (setOriginalOldValues){
-// // maintain original oldValues for partially loaded bean
-// prop.setValue(originalOldValues, dbVal);
-// }
-// }
-// }
-//
-// BeanPropertyAssocOne>[] ones = desc.propertiesOne();
-// for (int i = 0; i < ones.length; i++) {
-// BeanProperty prop = ones[i];
-// if (excludes != null && excludes.contains(prop.getName())){
-// // ignore this property (partial bean lazy loading)
-//
-// } else {
-// Object dbVal = prop.getValue(dbBean);
-// if (isLazyLoad){
-// prop.setValue(o, dbVal);
-// } else {
-// prop.setValueIntercept(o, dbVal);
-// }
-// if (setOriginalOldValues){
-// // maintain original oldValues for partially loaded bean
-// prop.setValue(originalOldValues, dbVal);
-// }
-// if (dbVal != null){
-// if (sharedInstance){
-// // propagate sharedInstance status to associated beans
-// ((EntityBean)dbVal)._ebean_getIntercept().setSharedInstance();
-// } else if (readOnly) {
-// // propagate readOnly status to associated beans
-// ((EntityBean)dbVal)._ebean_getIntercept().setReadOnly(true);
-// }
-// }
-//
-// }
-// }
-//
-// refreshEmbedded(o, dbBean, desc, excludes, readOnly);
-//
-// // set a lazy loading many proxy if required
-// BeanPropertyAssocMany>[] manys = desc.propertiesMany();
-// for (int i = 0; i < manys.length; i++) {
-// BeanPropertyAssocMany> prop = manys[i];
-// if (excludes != null && excludes.contains(prop.getName())){
-// // the many already existed on the bean
-//
-// } else {
-// // set a lazy loading proxy
-// prop.createReference(o, null, readOnly, sharedInstance);
-// }
-// }
-//
-// // the refreshed/lazy loaded bean is always fully
-// // populated so set loadedProps to null
-// ebi.setLoadedProps(null);
-//
-//
-// // reset the loaded status
-// ebi.setLoaded();
-// }
-//
-// /**
-// * Refresh the Embedded beans.
-// */
-// private void refreshEmbedded(Object o, Object dbBean, BeanDescriptor> desc, Set excludes, boolean propagateReadOnly) {
-//
-// BeanPropertyAssocOne>[] embeds = desc.propertiesEmbedded();
-// for (int i = 0; i < embeds.length; i++) {
-// BeanPropertyAssocOne> prop = embeds[i];
-// if (excludes != null && excludes.contains(prop.getName())){
-// // ignore this property
-// } else {
-// // the original embedded bean
-// Object oEmb = prop.getValue(o);
-//
-// // the new one from the database
-// Object dbEmb = prop.getValue(dbBean);
-//
-// if (oEmb == null){
-// // original embedded bean was null
-// // so just replace the entire embedded bean
-// prop.setValueIntercept(o, dbEmb);
-// if (propagateReadOnly && dbEmb != null){
-// // propagate readOnly status to embedded beans
-// ((EntityBean)dbEmb)._ebean_getIntercept().setReadOnly(true);
-// }
-//
-// } else {
-// // refresh each property of the original
-// // embedded bean
-// if (oEmb instanceof EntityBean){
-// // turn off interception to stop invoking lazy loading
-// // but allow PropertyChangeSupport
-// ((EntityBean) oEmb)._ebean_getIntercept().setIntercepting(false);
-// }
-//
-// BeanProperty[] props = prop.getProperties();
-// for (int j = 0; j < props.length; j++) {
-// Object v = props[j].getValue(dbEmb);
-// props[j].setValueIntercept(oEmb, v);
-// }
-//
-// // No longer calling setLoaded() on embedded bean
-// // as the EntityBean itself
-// // .. calls setEmbeddedLoaded() on each of
-// // .. its embedded beans itself.
-// }
-// }
-// }
-// }
-//
-//
-// /**
-// * Output some debug to describe the lazy loading event.
-// */
-// private void debug(BeanDescriptor> desc, EntityBeanIntercept ebi, Object id, Set excludes) {
-//
-//
-// Class> beanType = desc.getBeanType();
-//
-// StackTraceElement cause = debugLazyLoad.getStackTraceElement(beanType);
-//
-// String lazyLoadProperty = ebi.getLazyLoadProperty();
-// String msg = "debug.lazyLoad ["+desc+"] id["+id+"] lazyLoadProperty["+lazyLoadProperty+"]";
-// if (excludes != null){
-// msg += " partialProps"+excludes;
-// }
-// if (cause != null){
-// String causeLine = cause.toString();
-// if (causeLine.indexOf(".groovy:") > -1){
-// // eclipse console does not like finding groovy source at the moment
-// causeLine = StringHelper.replaceString(causeLine, ".groovy:", ".groovy :");
-// }
-// msg += " at: "+causeLine;
-// }
-// System.err.println(msg);
-// }
-//
-//
-//
-
-}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java
index f9a11f14d..7680dd086 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/SimpleDataSourceProvider.java
@@ -10,10 +10,9 @@ import java.sql.SQLException;
/**
* Simple DataSource supplier when no multi-tenancy used.
*/
-class SimpleDataSourceProvider implements DataSourceSupplier {
+final class SimpleDataSourceProvider implements DataSourceSupplier {
private final DataSource dataSource;
-
private final DataSource readOnlyDataSource;
SimpleDataSourceProvider(DataSource dataSource, DataSource readOnlyDataSource) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/SpiResultSet.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/SpiResultSet.java
index 6c539e564..e95c0d461 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/SpiResultSet.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/SpiResultSet.java
@@ -8,7 +8,7 @@ import java.sql.ResultSet;
*
* These both must be closed properly when done.
*/
-public class SpiResultSet {
+public final class SpiResultSet {
private final PreparedStatement statement;
From cd407ee467ffc18321dc517b4bae8069e1149141 Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Mon, 16 Aug 2021 23:32:26 +1200
Subject: [PATCH 25/68] #2318 - Refactor internals - final classes in changelog
packages
---
.../server/changelog/ChangeJsonBuilder.java | 18 ++----------------
.../changelog/DefaultChangeLogListener.java | 5 ++---
.../changelog/DefaultChangeLogPrepare.java | 2 +-
.../changelog/DefaultChangeLogRegister.java | 3 +--
.../changelog/ChangeJsonBuilderTest.java | 3 +--
5 files changed, 7 insertions(+), 24 deletions(-)
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java
index 372de9589..f399b78ad 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/ChangeJsonBuilder.java
@@ -14,21 +14,14 @@ import java.util.Map;
/**
* Builds JSON document for a bean change.
*/
-class ChangeJsonBuilder {
+final class ChangeJsonBuilder {
- protected final JsonFactory jsonFactory = new JsonFactory();
-
- protected final JsonContext json;
-
- ChangeJsonBuilder(JsonContext json) {
- this.json = json;
- }
+ private final JsonFactory jsonFactory = new JsonFactory();
/**
* Write the bean change as JSON.
*/
void writeBeanJson(Writer writer, BeanChange bean, ChangeSet changeSet) throws IOException {
-
try (JsonGenerator generator = jsonFactory.createGenerator(writer)) {
writeBeanChange(generator, bean, changeSet);
generator.flush();
@@ -39,9 +32,7 @@ class ChangeJsonBuilder {
* Write the bean change as JSON document containing the transaction header details.
*/
private void writeBeanChange(JsonGenerator gen, BeanChange bean, ChangeSet changeSet) throws IOException {
-
gen.writeStartObject();
-
gen.writeNumberField("ts", bean.getEventTime());
gen.writeStringField("change", bean.getEvent().getCode());
gen.writeStringField("type", bean.getType());
@@ -49,9 +40,7 @@ class ChangeJsonBuilder {
if (bean.getTenantId() != null) {
gen.writeStringField("tenantId", bean.getTenantId().toString());
}
-
writeBeanTransactionDetails(gen, changeSet);
-
writeBeanValues(gen, bean);
gen.writeEndObject();
}
@@ -60,7 +49,6 @@ class ChangeJsonBuilder {
* Denormalise by writing the transaction header details.
*/
private void writeBeanTransactionDetails(JsonGenerator gen, ChangeSet changeSet) throws IOException {
-
String source = changeSet.getSource();
if (source != null) {
gen.writeStringField("source", source);
@@ -87,12 +75,10 @@ class ChangeJsonBuilder {
* For insert and update write the new/old values.
*/
private void writeBeanValues(JsonGenerator gen, BeanChange bean) throws IOException {
-
if (bean.getEvent() != ChangeType.DELETE) {
gen.writeFieldName("data");
gen.writeRaw(":");
gen.writeRaw(bean.getData());
-
String oldData = bean.getOldData();
if (oldData != null) {
gen.writeRaw(",\"oldData\":");
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java
index 0168fa222..ee8e75424 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java
@@ -15,7 +15,7 @@ import java.util.Properties;
/**
* Simply logs the change sets in JSON form to logger named io.ebean.ChangeLog.
*/
-public class DefaultChangeLogListener implements ChangeLogListener, Plugin {
+public final class DefaultChangeLogListener implements ChangeLogListener, Plugin {
/**
* The usual application specific logger.
@@ -45,8 +45,7 @@ public class DefaultChangeLogListener implements ChangeLogListener, Plugin {
*/
@Override
public void configure(SpiServer server) {
- jsonBuilder = new ChangeJsonBuilder(server.json());
-
+ jsonBuilder = new ChangeJsonBuilder();
Properties properties = server.getServerConfig().getProperties();
if (properties != null) {
String bufferSize = properties.getProperty("ebean.changeLog.bufferSize");
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogPrepare.java b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogPrepare.java
index 16af27424..596d4d331 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogPrepare.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogPrepare.java
@@ -11,7 +11,7 @@ import io.ebean.event.changelog.ChangeSet;
* on the changeSet.
*
*/
-public class DefaultChangeLogPrepare implements ChangeLogPrepare {
+public final class DefaultChangeLogPrepare implements ChangeLogPrepare {
/**
* Just return true to send change set through to the logger.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogRegister.java b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogRegister.java
index a6208a703..d9f962969 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogRegister.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogRegister.java
@@ -14,10 +14,9 @@ import java.util.Set;
/**
* Default implementation of ChangeLogRegister.
*/
-public class DefaultChangeLogRegister implements ChangeLogRegister {
+public final class DefaultChangeLogRegister implements ChangeLogRegister {
private static final BasicFilter INCLUDE_INSERTS = new BasicFilter(true);
-
private static final BasicFilter EXCLUDE_INSERTS = new BasicFilter(false);
private final boolean defaultInsertsInclude;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/changelog/ChangeJsonBuilderTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/changelog/ChangeJsonBuilderTest.java
index f87405087..0e608f3e1 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/changelog/ChangeJsonBuilderTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/changelog/ChangeJsonBuilderTest.java
@@ -20,8 +20,7 @@ public class ChangeJsonBuilderTest extends BaseTestCase {
@Test
public void testToJson() throws Exception {
- JsonContext jsonContext = Ebean.getDefaultServer().json();
- ChangeJsonBuilder builder = new ChangeJsonBuilder(jsonContext);
+ ChangeJsonBuilder builder = new ChangeJsonBuilder();
ChangeSet changeSet = helper.createChangeSet("ABCD", 10);
changeSet.getUserContext().put("altUser", "role user");
From b4f4ef3c1b307926956f8c85e58170506e96ade0 Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Tue, 17 Aug 2021 18:24:28 +1200
Subject: [PATCH 26/68] #2318 - Refactor internals - final classes in server
packages
---
.../server/DContainerFactory.java | 2 +-
.../server/loadcontext/DLoadBeanContext.java | 4 +---
.../server/loadcontext/DLoadContext.java | 10 +---------
.../server/loadcontext/DLoadManyContext.java | 7 ++-----
.../server/logger/DLogManager.java | 2 +-
.../server/logger/DLoggerFactory.java | 2 +-
.../server/logger/DSpiLogger.java | 2 +-
.../server/profile/DCountMetric.java | 3 +--
.../server/profile/DMetricFactory.java | 2 +-
.../server/profile/DProfileLocation.java | 1 -
.../profile/DProfileLocationFactory.java | 2 +-
.../server/profile/DQueryPlanMeta.java | 2 +-
.../server/profile/DQueryPlanMetric.java | 2 +-
.../server/profile/DTimeMetricStats.java | 3 +--
.../server/profile/DTimedMetric.java | 6 +-----
.../server/profile/DTimedProfileLocation.java | 5 +----
.../profile/TimedProfileLocationRegistry.java | 2 +-
.../properties/BeanPropertiesReader.java | 1 -
.../properties/EnhanceBeanPropertyAccess.java | 19 ++++++++----------
.../ebeaninternal/server/rawsql/DRawSql.java | 4 +---
.../server/rawsql/DRawSqlBuilder.java | 4 +---
.../server/rawsql/DRawSqlColumnsParser.java | 1 -
.../server/rawsql/DRawSqlParser.java | 7 +------
.../server/rawsql/DRawSqlService.java | 6 +-----
.../server/text/json/DJsonBeanReader.java | 3 +--
.../server/text/json/DJsonContext.java | 6 +-----
.../server/text/json/DJsonScalar.java | 3 +--
.../server/text/json/PathStack.java | 4 +---
.../server/text/json/ReadJson.java | 20 +------------------
.../server/text/json/WriteJson.java | 9 +--------
.../ebeaninternal/server/util/ArrayStack.java | 4 +---
.../server/util/BindParamsParser.java | 6 +-----
.../server/util/DSelectColumnsParser.java | 2 --
.../io/ebeaninternal/server/util/Str.java | 2 +-
.../ebeaninternal/util/ParamTypeHelper.java | 11 ++--------
.../io/ebeaninternal/util/SortByClause.java | 6 +-----
.../java/io/ebeaninternal/util/UrlHelper.java | 3 +--
.../java/io/ebeaninternal/util/ValueUtil.java | 2 +-
.../docstore/none/NoneDocStore.java | 2 +-
.../none/NoneDocStoreBeanAdapter.java | 2 +-
.../docstore/none/NoneDocStoreFactory.java | 4 ++--
.../none/NoneDocStoreUpdateProcessor.java | 2 +-
42 files changed, 48 insertions(+), 142 deletions(-)
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/DContainerFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/DContainerFactory.java
index ea9f0b109..77d0a1f72 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/DContainerFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/DContainerFactory.java
@@ -8,7 +8,7 @@ import io.ebeaninternal.server.core.DefaultContainer;
/**
* Default container factory found via service loader.
*/
-public class DContainerFactory implements SpiContainerFactory {
+public final class DContainerFactory implements SpiContainerFactory {
@Override
public SpiContainer create(ContainerConfig containerConfig) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java
index 25fffe5b7..ac871e5eb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadBeanContext.java
@@ -23,12 +23,10 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* ToOne bean load context.
*/
-class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext {
+final class DLoadBeanContext extends DLoadBaseContext implements LoadBeanContext {
private final boolean cache;
-
private List bufferList;
-
private LoadBuffer currentBuffer;
DLoadBeanContext(DLoadContext parent, BeanDescriptor> desc, String path, OrmQueryProperties queryProps) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java
index 060633073..a7ec0e0c8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java
@@ -31,17 +31,13 @@ import java.util.Map;
/**
* Default implementation of LoadContext.
*/
-public class DLoadContext implements LoadContext {
+public final class DLoadContext implements LoadContext {
private final SpiEbeanServer ebeanServer;
-
private final BeanDescriptor> rootDescriptor;
-
private final Map beanMap = new HashMap<>();
private final Map manyMap = new HashMap<>();
-
private final DLoadBeanContext rootBeanContext;
-
private final boolean asDraft;
private final Timestamp asOf;
private final Boolean readOnly;
@@ -60,13 +56,9 @@ public class DLoadContext implements LoadContext {
private final String planLabel;
private final ProfileLocation profileLocation;
private final ProfilingListener profilingListener;
-
private final Map