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 nodePathMap = new HashMap<>(); - private PersistenceContext persistenceContext; - private List secQuery; - private Object tenantId; /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadManyContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadManyContext.java index 5d2b781c7..b830dc96d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadManyContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/loadcontext/DLoadManyContext.java @@ -21,14 +21,11 @@ import java.util.concurrent.locks.ReentrantLock; /** * ToMany bean load context. */ -class DLoadManyContext extends DLoadBaseContext implements LoadManyContext { - - protected final BeanPropertyAssocMany property; +final class DLoadManyContext extends DLoadBaseContext implements LoadManyContext { + private final BeanPropertyAssocMany property; private final boolean docStoreMapped; - private List bufferList; - private LoadBuffer currentBuffer; DLoadManyContext(DLoadContext parent, BeanPropertyAssocMany property, String path, OrmQueryProperties queryProps) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLogManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLogManager.java index 79ece19fc..31c42f2fd 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLogManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLogManager.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.logger; import io.ebeaninternal.api.SpiLogManager; import io.ebeaninternal.api.SpiLogger; -public class DLogManager implements SpiLogManager { +public final class DLogManager implements SpiLogManager { private final SpiLogger sql; private final SpiLogger summary; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java index 65dbef013..90f6cbafa 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java @@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory; /** * Default SpiLoggerFactory implementation. */ -public class DLoggerFactory implements SpiLoggerFactory { +public final class DLoggerFactory implements SpiLoggerFactory { /** * Just use a standard slf4j Logger. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java index 87b78052f..e921d5aa3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.logger; import io.ebeaninternal.api.SpiLogger; import org.slf4j.Logger; -public class DSpiLogger implements SpiLogger { +public final class DSpiLogger implements SpiLogger { private final Logger logger; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DCountMetric.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DCountMetric.java index d93e0dbdb..693aa5de8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DCountMetric.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DCountMetric.java @@ -9,10 +9,9 @@ import java.util.concurrent.atomic.LongAdder; /** * Used to collect counter metrics. */ -class DCountMetric implements CountMetric { +final class DCountMetric implements CountMetric { private final String name; - private final LongAdder count = new LongAdder(); DCountMetric(String name) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DMetricFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DMetricFactory.java index 633c4c505..d51ff2198 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DMetricFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DMetricFactory.java @@ -10,7 +10,7 @@ import io.ebean.metric.TimedMetricMap; /** * Default metric factory implementation. */ -public class DMetricFactory implements MetricFactory { +public final class DMetricFactory implements MetricFactory { @Override public TimedMetricMap createTimedMetricMap(String name) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocation.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocation.java index 63fa0e11a..df4c44c56 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocation.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocation.java @@ -13,7 +13,6 @@ class DProfileLocation implements ProfileLocation { private String fullLocation; private String location; private String label; - private final int lineNumber; private int traceCount; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocationFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocationFactory.java index ebf5e78c0..cc6e19bd3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocationFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DProfileLocationFactory.java @@ -8,7 +8,7 @@ import io.ebean.service.SpiProfileLocationFactory; /** * Default implementation of the profile location factory. */ -public class DProfileLocationFactory implements SpiProfileLocationFactory { +public final class DProfileLocationFactory implements SpiProfileLocationFactory { @Override public ProfileLocation create() { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMeta.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMeta.java index 67f724051..879d2ee6c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMeta.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMeta.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.profile; import io.ebean.ProfileLocation; import io.ebeaninternal.server.util.Md5; -class DQueryPlanMeta { +final class DQueryPlanMeta { private final Class type; private final String label; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMetric.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMetric.java index e24da73c7..723c24511 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMetric.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DQueryPlanMetric.java @@ -6,7 +6,7 @@ import io.ebean.metric.QueryPlanMetric; import io.ebean.metric.TimedMetric; import io.ebean.metric.TimedMetricStats; -class DQueryPlanMetric implements QueryPlanMetric { +final class DQueryPlanMetric implements QueryPlanMetric { private final DQueryPlanMeta meta; private final DTimedMetric metric; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimeMetricStats.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimeMetricStats.java index a4243e31a..900f47aae 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimeMetricStats.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimeMetricStats.java @@ -5,13 +5,12 @@ import io.ebean.metric.TimedMetricStats; /** * Snapshot of the current statistics for a Counter or TimeCounter. */ -class DTimeMetricStats implements TimedMetricStats { +final class DTimeMetricStats implements TimedMetricStats { private final boolean collected; private final long count; private final long total; private final long max; - private String name; private String location; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedMetric.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedMetric.java index cc344c3e6..a62fef911 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedMetric.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedMetric.java @@ -12,16 +12,12 @@ import java.util.concurrent.atomic.LongAdder; * It is intended for high concurrent updates to the statistics and relatively infrequent reads. *

*/ -class DTimedMetric implements TimedMetric { +final class DTimedMetric implements TimedMetric { private final String name; - private final LongAdder count = new LongAdder(); - private final LongAdder total = new LongAdder(); - private final LongAccumulator max = new LongAccumulator(Math::max, Long.MIN_VALUE); - private boolean collected; DTimedMetric(String name) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedProfileLocation.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedProfileLocation.java index 27537737f..2164f86c7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedProfileLocation.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/DTimedProfileLocation.java @@ -7,14 +7,11 @@ import io.ebean.metric.TimedMetricStats; /** * Default profile location that uses stack trace. */ -class DTimedProfileLocation extends DProfileLocation implements TimedProfileLocation { +final class DTimedProfileLocation extends DProfileLocation implements TimedProfileLocation { private final String label; - private final TimedMetric timedMetric; - private final boolean overrideMetricName; - private String fullName; DTimedProfileLocation(int lineNumber, String label, TimedMetric timedMetric) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/profile/TimedProfileLocationRegistry.java b/ebean-core/src/main/java/io/ebeaninternal/server/profile/TimedProfileLocationRegistry.java index 1a5f8ff07..350dd6688 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/profile/TimedProfileLocationRegistry.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/profile/TimedProfileLocationRegistry.java @@ -7,7 +7,7 @@ import java.util.List; /** * Global registry of the TimedProfileLocation instances created. */ -public class TimedProfileLocationRegistry { +public final class TimedProfileLocationRegistry { private static final List list = Collections.synchronizedList(new ArrayList<>()); 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 a283a42ea..ec56da19d 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 @@ -37,7 +37,6 @@ public final class BeanPropertiesReader { try { Field field = clazz.getField("_ebean_props"); return (String[]) field.get(null); - } catch (Exception e) { throw new IllegalStateException("Error getting _ebean_props field on type " + clazz, e); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/properties/EnhanceBeanPropertyAccess.java b/ebean-core/src/main/java/io/ebeaninternal/server/properties/EnhanceBeanPropertyAccess.java index e4d9e9839..e7e48b6f0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/properties/EnhanceBeanPropertyAccess.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/properties/EnhanceBeanPropertyAccess.java @@ -9,23 +9,20 @@ public final class EnhanceBeanPropertyAccess implements BeanPropertyAccess { private static final int CACHE_SIZE = 30; - private final BeanPropertyGetter[] getters = initGetters(CACHE_SIZE); - private final BeanPropertySetter[] setters = initSetters(CACHE_SIZE); + private final BeanPropertyGetter[] getters = initGetters(); + private final BeanPropertySetter[] setters = initSetters(); - public EnhanceBeanPropertyAccess() { - } - - private BeanPropertyGetter[] initGetters(int count) { - BeanPropertyGetter[] getters = new BeanPropertyGetter[count]; - for (int i = 0; i < count; i++) { + private BeanPropertyGetter[] initGetters() { + BeanPropertyGetter[] getters = new BeanPropertyGetter[CACHE_SIZE]; + for (int i = 0; i < CACHE_SIZE; i++) { getters[i] = new Getter(i); } return getters; } - private BeanPropertySetter[] initSetters(int count) { - BeanPropertySetter[] setters = new BeanPropertySetter[count]; - for (int i = 0; i < count; i++) { + private BeanPropertySetter[] initSetters() { + BeanPropertySetter[] setters = new BeanPropertySetter[CACHE_SIZE]; + for (int i = 0; i < CACHE_SIZE; i++) { setters[i] = new Setter(i); } return setters; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSql.java index 9f7e6627d..c58b8bc11 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSql.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSql.java @@ -8,9 +8,7 @@ import java.sql.ResultSet; public final class DRawSql implements SpiRawSql { private final ResultSet resultSet; - private final Sql sql; - private final ColumnMapping columnMapping; /** @@ -22,7 +20,7 @@ public final class DRawSql implements SpiRawSql { this.columnMapping = new ColumnMapping(propertyNames); } - protected DRawSql(ResultSet resultSet, Sql sql, ColumnMapping columnMapping) { + DRawSql(ResultSet resultSet, Sql sql, ColumnMapping columnMapping) { this.resultSet = resultSet; this.sql = sql; this.columnMapping = columnMapping; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlBuilder.java index 40160e873..a42c8035d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlBuilder.java @@ -5,12 +5,10 @@ import io.ebean.RawSqlBuilder; import java.sql.ResultSet; -public class DRawSqlBuilder implements RawSqlBuilder { +public final class DRawSqlBuilder implements RawSqlBuilder { private final ResultSet resultSet; - private final SpiRawSql.Sql sql; - private final SpiRawSql.ColumnMapping columnMapping; DRawSqlBuilder(SpiRawSql.Sql sql, SpiRawSql.ColumnMapping columnMapping) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlColumnsParser.java b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlColumnsParser.java index 74c02badd..48e61789b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlColumnsParser.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlColumnsParser.java @@ -17,7 +17,6 @@ final class DRawSqlColumnsParser { private static final Pattern COLINFO_SPLIT = Pattern.compile("\\s(?=[^\\)]*(?:\\(|$))"); private final String sqlSelect; - private int indexPos; public static ColumnMapping parse(String sqlSelect) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java index 0e46cbe10..033aa0755 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java @@ -7,20 +7,15 @@ import io.ebeaninternal.server.rawsql.SpiRawSql.Sql; * Parses sql-select queries to try and determine the location where WHERE and * HAVING clauses can be added dynamically to the sql. */ -class DRawSqlParser { +final class DRawSqlParser { private static final String $_AND_HAVING = "${andHaving}"; - private static final String $_HAVING = "${having}"; - private static final String $_AND_WHERE = "${andWhere}"; - private static final String $_WHERE = "${where}"; private final SimpleTextParser textParser; - private String sql; - private int placeHolderWhere; private int placeHolderAndWhere; private int placeHolderHaving; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java index 5a405dbc4..11b80da38 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java @@ -11,7 +11,7 @@ import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Types; -public class DRawSqlService implements SpiRawSqlService { +final class DRawSqlService implements SpiRawSqlService { @Override public RawSql resultSet(ResultSet resultSet, String... propertyNames) { @@ -20,10 +20,8 @@ public class DRawSqlService implements SpiRawSqlService { @Override public RawSqlBuilder parsed(String sql) { - SpiRawSql.Sql sql2 = DRawSqlParser.parse(sql); String select = sql2.getPreFrom(); - SpiRawSql.ColumnMapping mapping = DRawSqlColumnsParser.parse(select); return new DRawSqlBuilder(sql2, mapping); } @@ -36,7 +34,6 @@ public class DRawSqlService implements SpiRawSqlService { @Override public SqlRow sqlRow(ResultSet resultSet, String dbTrueValue, boolean binaryOptimizedUUID) throws SQLException { - ResultSetMetaData meta = resultSet.getMetaData(); int estCap = (int) (meta.getColumnCount() / 0.7f) + 1; DefaultSqlRow ret = new DefaultSqlRow(estCap, 0.75f, dbTrueValue, binaryOptimizedUUID); @@ -77,7 +74,6 @@ public class DRawSqlService implements SpiRawSqlService { * Combine schema table and column names allowing for null schema and table. */ String combine(String schemaName, String tableName, String name) { - StringBuilder sb = new StringBuilder(); if (schemaName != null) { sb.append(schemaName).append("."); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonBeanReader.java b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonBeanReader.java index ecfa3af8c..8193d397c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonBeanReader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonBeanReader.java @@ -15,10 +15,9 @@ import java.io.IOException; * This is used such that a load context and persistence context can be used to span multiple marshalling requests. *

*/ -public class DJsonBeanReader implements JsonBeanReader { +public final class DJsonBeanReader implements JsonBeanReader { private final BeanDescriptor desc; - private final SpiJsonReader readJson; public DJsonBeanReader(BeanDescriptor desc, SpiJsonReader readJson) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java index 6a94bd31d..b0706173c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java @@ -43,18 +43,14 @@ import java.util.Set; /** * Default implementation of JsonContext. */ -public class DJsonContext implements SpiJsonContext { +public final class DJsonContext implements SpiJsonContext { private static final PrettyPrinter PRETTY_PRINTER = new Pretty(); private final SpiEbeanServer server; - private final JsonFactory jsonFactory; - private final Object defaultObjectMapper; - private final JsonConfig.Include defaultInclude; - private final DJsonScalar jsonScalar; private static class Pretty extends DefaultPrettyPrinter { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java index fed4c5945..d0ef82204 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java @@ -10,7 +10,7 @@ import java.util.List; /** * Default implementation of JsonScalar. */ -public class DJsonScalar { +public final class DJsonScalar { private final TypeManager typeManager; @@ -20,7 +20,6 @@ public class DJsonScalar { @SuppressWarnings({ "unchecked", "rawtypes" }) public void write(JsonGenerator gen, Object value) throws IOException { - if (value instanceof String) { gen.writeString((String) value); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/PathStack.java b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/PathStack.java index 7da49f6ad..6cb3b2b67 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/PathStack.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/PathStack.java @@ -2,10 +2,9 @@ package io.ebeaninternal.server.text.json; import io.ebeaninternal.server.util.ArrayStack; -public class PathStack extends ArrayStack { +public final class PathStack extends ArrayStack { public String peekFullPath(String key) { - String prefix = peekWithNull(); if (prefix != null) { return prefix + "." + key; @@ -15,7 +14,6 @@ public class PathStack extends ArrayStack { } public void pushPathKey(String key) { - String prefix = peekWithNull(); if (prefix != null) { key = prefix + "." + key; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/ReadJson.java b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/ReadJson.java index 74c85a770..f685188b6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/ReadJson.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/ReadJson.java @@ -20,42 +20,28 @@ import java.util.Map; /** * Context for JSON read processing. */ -public class ReadJson implements SpiJsonReader { +public final class ReadJson implements SpiJsonReader { private final BeanDescriptor rootDesc; - - /** - * Jackson parser. - */ private final JsonParser parser; - - /** - * Stack of the path - used to find the appropriate JsonReadBeanVisitor. - */ private final PathStack pathStack; - /** * Map of the JsonReadBeanVisitor keyed by path. */ private final Map> visitorMap; - private final Object objectMapper; - private final PersistenceContext persistenceContext; - private final LoadContext loadContext; /** * Construct with parser and readOptions. */ public ReadJson(BeanDescriptor desc, JsonParser parser, JsonReadOptions readOptions, Object objectMapper) { - this.rootDesc = desc; this.parser = parser; this.objectMapper = objectMapper; this.persistenceContext = initPersistenceContext(readOptions); this.loadContext = initLoadContext(desc, readOptions); - // only create visitorMap, pathStack if needed ... this.visitorMap = (readOptions == null) ? null : readOptions.getVisitorMap(); this.pathStack = (visitorMap == null && loadContext == null) ? null : new PathStack(); @@ -119,7 +105,6 @@ public class ReadJson implements SpiJsonReader { */ @Override public void persistenceContextPut(Object beanId, T currentBean) { - persistenceContextPutIfAbsent(beanId, (EntityBean) currentBean, rootDesc); } @@ -129,16 +114,13 @@ public class ReadJson implements SpiJsonReader { */ @Override public Object persistenceContextPutIfAbsent(Object id, EntityBean bean, BeanDescriptor beanDesc) { - if (persistenceContext == null) { // no persistenceContext means no lazy loading either return null; } - Object existing = beanDesc.contextPutIfAbsent(persistenceContext, id, bean); if (existing != null) { beanDesc.merge(bean, (EntityBean) existing); - } else { if (loadContext != null) { EntityBeanIntercept ebi = bean._ebean_getIntercept(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/WriteJson.java b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/WriteJson.java index d7914f587..4ae521e16 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/WriteJson.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/WriteJson.java @@ -21,22 +21,15 @@ import java.util.Collection; import java.util.Map; import java.util.Set; -public class WriteJson implements SpiJsonWriter { +public final class WriteJson implements SpiJsonWriter { private final SpiEbeanServer server; - private final JsonGenerator generator; - private final FetchPath fetchPath; - private final Map> visitors; - private final PathStack pathStack; - private final ArrayStack parentBeans; - private final Object objectMapper; - private final JsonConfig.Include include; /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/util/ArrayStack.java b/ebean-core/src/main/java/io/ebeaninternal/server/util/ArrayStack.java index 9e1107ee5..8e824f664 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/util/ArrayStack.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/util/ArrayStack.java @@ -6,10 +6,8 @@ import java.util.List; /** * Stack based on ArrayList. - * - * @author rbygrave */ -public class ArrayStack { +public final class ArrayStack { private final List list; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/util/BindParamsParser.java b/ebean-core/src/main/java/io/ebeaninternal/server/util/BindParamsParser.java index c7ae703d5..b28f6b80f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/util/BindParamsParser.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/util/BindParamsParser.java @@ -15,19 +15,16 @@ import java.util.Collection; * This is a thread safe implementation. *

*/ -public class BindParamsParser { +public final class BindParamsParser { private static final String ENCRYPTKEY_PREFIX = "encryptkey_"; private static final String ENCRYPTKEY_GAP = "___"; - private static final int ENCRYPTKEY_PREFIX_LEN = ENCRYPTKEY_PREFIX.length(); private static final int ENCRYPTKEY_GAP_LEN = ENCRYPTKEY_GAP.length(); - /** * Used to parse sql looking for named parameters. */ private static final String quote = "'"; - /** * Used to parse sql looking for named parameters. */ @@ -35,7 +32,6 @@ public class BindParamsParser { private final BindParams params; private final String sql; - private final BeanDescriptor beanDescriptor; public static String parse(BindParams params, String sql) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/util/DSelectColumnsParser.java b/ebean-core/src/main/java/io/ebeaninternal/server/util/DSelectColumnsParser.java index b4ec33a67..9ec13815b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/util/DSelectColumnsParser.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/util/DSelectColumnsParser.java @@ -9,9 +9,7 @@ import java.util.Set; public final class DSelectColumnsParser { private final int end; - private final String selectClause; - private int pos; public static Set parse(String sqlSelect) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/util/Str.java b/ebean-core/src/main/java/io/ebeaninternal/server/util/Str.java index 56788dc98..c49032c86 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/util/Str.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/util/Str.java @@ -5,7 +5,7 @@ package io.ebeaninternal.server.util; *

* Predicts a decent buffer size to append the strings into. */ -public class Str { +public final class Str { /** * Append strings together. diff --git a/ebean-core/src/main/java/io/ebeaninternal/util/ParamTypeHelper.java b/ebean-core/src/main/java/io/ebeaninternal/util/ParamTypeHelper.java index 85de3d4d5..68f8de4a4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/util/ParamTypeHelper.java +++ b/ebean-core/src/main/java/io/ebeaninternal/util/ParamTypeHelper.java @@ -6,13 +6,13 @@ import java.util.List; import java.util.Map; import java.util.Set; -public class ParamTypeHelper { +public final class ParamTypeHelper { public enum ManyType { LIST, SET, MAP, NONE } - public static class TypeInfo { + public static final class TypeInfo { private final ManyType manyType; private final Class beanType; @@ -46,11 +46,9 @@ public class ParamTypeHelper { } public static TypeInfo getTypeInfo(Type genericType) { - if (genericType instanceof ParameterizedType) { return getParamTypeInfo((ParameterizedType) genericType); } - Class entityType = getBeanType(genericType); if (entityType != null) { return new TypeInfo(ManyType.NONE, entityType); @@ -62,16 +60,12 @@ public class ParamTypeHelper { * For Lists Sets and Maps of beans. */ private static TypeInfo getParamTypeInfo(ParameterizedType paramType) { - Type rawType = paramType.getRawType(); - ManyType manyType = getManyType(rawType); if (ManyType.NONE == manyType) { return null; } - Type[] typeArguments = paramType.getActualTypeArguments(); - if (typeArguments.length == 1) { Type argType = typeArguments[0]; Class beanType = getBeanType(argType); @@ -79,7 +73,6 @@ public class ParamTypeHelper { return new TypeInfo(manyType, beanType); } } - return null; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/util/SortByClause.java b/ebean-core/src/main/java/io/ebeaninternal/util/SortByClause.java index 02884990e..764e67b8a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/util/SortByClause.java +++ b/ebean-core/src/main/java/io/ebeaninternal/util/SortByClause.java @@ -10,23 +10,19 @@ import java.util.List; * Primarily used to support sorting of Lists. *

*/ -public class SortByClause { +public final class SortByClause { static final String NULLSHIGH = "nullshigh"; - static final String NULLSLOW = "nullslow"; - /** * The ascending keyword. */ static final String ASC = "asc"; - /** * The descending keyword. */ static final String DESC = "desc"; - private final List properties = new ArrayList<>(); /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/util/UrlHelper.java b/ebean-core/src/main/java/io/ebeaninternal/util/UrlHelper.java index 443273c6b..0779908c9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/util/UrlHelper.java +++ b/ebean-core/src/main/java/io/ebeaninternal/util/UrlHelper.java @@ -8,13 +8,12 @@ import java.net.URLConnection; /** * Helper to open URL content without file descriptor caching (by underlying JDK JarURLConnection). */ -public class UrlHelper { +public final class UrlHelper { /** * Open the URL content without using caching returning the resulting InputStream. */ public static InputStream openNoCache(URL url) throws IOException { - URLConnection urlConnection = url.openConnection(); urlConnection.setUseCaches(false); return urlConnection.getInputStream(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/util/ValueUtil.java b/ebean-core/src/main/java/io/ebeaninternal/util/ValueUtil.java index a93da76cf..2cf7f73ba 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/util/ValueUtil.java +++ b/ebean-core/src/main/java/io/ebeaninternal/util/ValueUtil.java @@ -3,7 +3,7 @@ package io.ebeaninternal.util; import java.math.BigDecimal; import java.net.URL; -public class ValueUtil { +public final class ValueUtil { /** * Helper method to check if two objects are equal. diff --git a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStore.java b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStore.java index a7dda71d4..d4932791e 100644 --- a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStore.java +++ b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStore.java @@ -16,7 +16,7 @@ import java.util.function.Predicate; /** * DocumentStore that barfs it is used. */ -public class NoneDocStore implements DocumentStore { +public final class NoneDocStore implements DocumentStore { public static IllegalStateException implementationNotInClassPath() { throw new IllegalStateException("DocStore implementation not included in the classPath. You need to add the maven dependency for io.ebean:ebean-elastic"); diff --git a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreBeanAdapter.java b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreBeanAdapter.java index d187af169..2be5d1c13 100644 --- a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreBeanAdapter.java +++ b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreBeanAdapter.java @@ -12,7 +12,7 @@ import java.io.IOException; /** * DocStoreBeanBaseAdapter that barfs if it is used. */ -public class NoneDocStoreBeanAdapter extends DocStoreBeanBaseAdapter { +public final class NoneDocStoreBeanAdapter extends DocStoreBeanBaseAdapter { public NoneDocStoreBeanAdapter(BeanDescriptor desc, DeployBeanDescriptor deploy) { super(desc, deploy); diff --git a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreFactory.java b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreFactory.java index 7a9d18568..8f0244cb5 100644 --- a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreFactory.java +++ b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreFactory.java @@ -12,7 +12,7 @@ import io.ebeanservice.docstore.api.DocStoreUpdateProcessor; /** * A stub implementation of DocStoreFactory that will barf if the docStore features are used. */ -public class NoneDocStoreFactory implements DocStoreFactory { +public final class NoneDocStoreFactory implements DocStoreFactory { @Override public DocStoreIntegration create(SpiServer server) { @@ -24,7 +24,7 @@ public class NoneDocStoreFactory implements DocStoreFactory { return new NoneDocStoreBeanAdapter<>(desc, deploy); } - static class NoneIntegration implements DocStoreIntegration { + static final class NoneIntegration implements DocStoreIntegration { @Override public DocStoreUpdateProcessor updateProcessor() { diff --git a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreUpdateProcessor.java b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreUpdateProcessor.java index c5c3d7854..b6a642718 100644 --- a/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreUpdateProcessor.java +++ b/ebean-core/src/main/java/io/ebeanservice/docstore/none/NoneDocStoreUpdateProcessor.java @@ -11,7 +11,7 @@ import java.io.IOException; /** * DocStoreUpdateProcessor that barfs if it is used. */ -class NoneDocStoreUpdateProcessor implements DocStoreUpdateProcessor { +final class NoneDocStoreUpdateProcessor implements DocStoreUpdateProcessor { @Override public DocStoreQueryUpdate createQueryUpdate(BeanType beanType, int bulkBatchSize) throws IOException {