diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanDescriptor.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanDescriptor.java index 10f2a2cdc..041ac7d45 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanDescriptor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanDescriptor.java @@ -8,14 +8,11 @@ import java.util.concurrent.ConcurrentHashMap; /** * Manages the query plans for a given DTO bean type. */ -public class DtoBeanDescriptor { +public final class DtoBeanDescriptor { private final Map plans = new ConcurrentHashMap<>(); - private final Class dtoType; - private final DtoMeta meta; - private final Map namedQueries; DtoBeanDescriptor(Class dtoType, DtoMeta meta, Map namedQueries) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanManager.java index 4388a180d..c11f79843 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoBeanManager.java @@ -10,14 +10,13 @@ import java.util.concurrent.ConcurrentHashMap; /** * Manages all the DTO bean descriptors. */ -public class DtoBeanManager { +@SuppressWarnings("rawtypes") +public final class DtoBeanManager { private static final Map EMPTY_NAMED_QUERIES = new HashMap<>(); private final TypeManager typeManager; - private final Map, DtoNamedQueries> namedQueries; - private final Map descriptorMap = new ConcurrentHashMap<>(); public DtoBeanManager(TypeManager typeManager, Map, DtoNamedQueries> namedQueries) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoColumn.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoColumn.java index 187caf97f..9f42f2d0f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoColumn.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoColumn.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.dto; /** * A column in the resultSet that we want to map to a bean property. */ -public class DtoColumn { +public final class DtoColumn { private final String label; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMappingRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMappingRequest.java index b2a72db61..8c882599c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMappingRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMappingRequest.java @@ -8,18 +8,13 @@ import io.ebeaninternal.api.SpiDtoQuery; /** * Request to map a resultSet columns for a query into a DTO bean. */ -public class DtoMappingRequest { +public final class DtoMappingRequest { private final Class type; - private final String label; - private final ProfileLocation profileLocation; - private final String sql; - private final boolean relaxedMode; - private final DtoColumn[] columnMeta; public DtoMappingRequest(SpiDtoQuery query, String sql, DtoColumn[] columnMeta) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java index 09bc441e9..9582c160e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java @@ -10,23 +10,19 @@ import java.util.Map; * * Uses this to map a mapping request (columns) to a 'query plan' (constructor and setters). */ -class DtoMeta { +final class DtoMeta { private final Class dtoType; private final Map propMap = new LinkedHashMap<>(); - private final Map constructorMap = new LinkedHashMap<>(); - private final DtoMetaConstructor defaultConstructor; private final DtoMetaConstructor maxArgConstructor; DtoMeta(Class dtoType, List constructors, List properties) { this.dtoType = dtoType; - for (DtoMetaProperty property : properties) { propMap.put(property.getName().toUpperCase(), property); } - int maxArg = 0; DtoMetaConstructor defaultConstructor = null; @@ -47,9 +43,7 @@ class DtoMeta { } public DtoQueryPlan match(DtoMappingRequest request) { - DtoColumn[] cols = request.getColumnMeta(); - int colLen = cols.length; DtoMetaConstructor constructor = constructorMap.get(colLen); if (constructor != null) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java index bc5f900ed..0241c2747 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java @@ -15,16 +15,13 @@ import java.util.List; *

* Use TypeManager to map bean property types to ScalarTypes. */ -class DtoMetaBuilder { +final class DtoMetaBuilder { private static final Logger log = LoggerFactory.getLogger(DtoMetaBuilder.class); private final TypeManager typeManager; - private final Class dtoType; - private final List properties = new ArrayList<>(); - private final List constructorList = new ArrayList<>(); DtoMetaBuilder(Class dtoType, TypeManager typeManager) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java index 35a736346..efd7c97d2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java @@ -10,22 +10,19 @@ import java.lang.invoke.MethodType; import java.lang.reflect.Constructor; import java.sql.SQLException; -class DtoMetaConstructor { +final class DtoMetaConstructor { private final Class[] types; private final MethodHandle handle; - private static final MethodHandles.Lookup LOOKUP = MethodHandles.lookup(); private final ScalarType[] scalarTypes; DtoMetaConstructor(TypeManager typeManager, Constructor constructor, Class someClass) throws NoSuchMethodException, IllegalAccessException { - this.types = constructor.getParameterTypes(); this.scalarTypes = new ScalarType[types.length]; for (int i = 0; i < types.length; i++) { scalarTypes[i] = typeManager.getScalarType(types[i]); } - this.handle = LOOKUP.findConstructor(someClass, typeFor(types)); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java index c4beae172..fe7d794a1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java @@ -10,7 +10,7 @@ import java.lang.invoke.MethodType; import java.lang.reflect.Method; import java.sql.SQLException; -class DtoMetaProperty implements DtoReadSet { +final class DtoMetaProperty implements DtoReadSet { private static final MethodHandles.Lookup LOOKUP = MethodHandles.lookup(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoNamedQueries.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoNamedQueries.java index 7b455de3d..6e92b010a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoNamedQueries.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoNamedQueries.java @@ -6,9 +6,9 @@ import java.util.Map; /** * Collection of named queries for a single Dto bean type. */ -public class DtoNamedQueries { +public final class DtoNamedQueries { - private Map namedRawSql = new HashMap<>(); + private final Map namedRawSql = new HashMap<>(); /** * Add the named query from deployment XML. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java index 1bc530b78..3ea144604 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java @@ -7,10 +7,9 @@ import java.sql.SQLException; /** * Plan based on Constructor plus some setter methods. */ -class DtoQueryPlanConPlus extends DtoQueryPlanBase { +final class DtoQueryPlanConPlus extends DtoQueryPlanBase { private final DtoMetaConstructor maxArgConstructor; - private final DtoReadSet[] setterProps; DtoQueryPlanConPlus(DtoMappingRequest request, DtoMetaConstructor maxArgConstructor, DtoReadSet[] setterProps) { @@ -21,7 +20,6 @@ class DtoQueryPlanConPlus extends DtoQueryPlanBase { @Override public Object readRow(DataReader dataReader) throws SQLException { - Object bean = maxArgConstructor.process(dataReader); for (DtoReadSet setterProp : setterProps) { setterProp.readSet(bean, dataReader); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java index 70629e8da..a5aa905a9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java @@ -7,10 +7,9 @@ import java.sql.SQLException; /** * Plan based on default constructor and setter methods. */ -class DtoQueryPlanConSetter extends DtoQueryPlanBase { +final class DtoQueryPlanConSetter extends DtoQueryPlanBase { private final DtoMetaConstructor defaultConstructor; - private final DtoReadSet[] setterProps; DtoQueryPlanConSetter(DtoMappingRequest request, DtoMetaConstructor defaultConstructor, DtoReadSet[] setterProps) { @@ -21,7 +20,6 @@ class DtoQueryPlanConSetter extends DtoQueryPlanBase { @Override public Object readRow(DataReader dataReader) throws SQLException { - Object bean = defaultConstructor.defaultConstructor(); for (DtoReadSet setterProp : setterProps) { setterProp.readSet(bean, dataReader); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java index 912b41cd2..e0d39faa7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java @@ -7,7 +7,7 @@ import java.sql.SQLException; /** * Plan based on mapping via single constructor only. */ -class DtoQueryPlanConstructor extends DtoQueryPlanBase { +final class DtoQueryPlanConstructor extends DtoQueryPlanBase { private final DtoMetaConstructor constructor; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java index 9fda8b81f..d2743e59d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java @@ -5,7 +5,7 @@ import io.ebean.core.type.DataReader; /** * Placeholder to skip reading a column that isn't mapped to a bean property. */ -class DtoReadSetColumnSkip implements DtoReadSet { +final class DtoReadSetColumnSkip implements DtoReadSet { static final DtoReadSet INSTANCE = new DtoReadSetColumnSkip();