From 2e4ef2e252117bc8be2fd852e7def0e4d4888112 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Wed, 10 Apr 2024 16:18:23 +0200 Subject: [PATCH] get rid of raw types and extract methods eliminates compiler warnings Signed-off-by: Gavin King --- .../boot/model/internal/FilterDefBinder.java | 15 +++++++++------ .../hibernate/engine/spi/FilterDefinition.java | 11 ++++++----- .../org/hibernate/internal/FilterImpl.java | 18 +++++++++++++----- .../ast/tree/predicate/FilterPredicate.java | 5 +---- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/FilterDefBinder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/FilterDefBinder.java index 802ab589a5..62c609496f 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/FilterDefBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/FilterDefBinder.java @@ -60,7 +60,7 @@ public static void bindFilterDef(FilterDef filterDef, MetadataBuildingContext co } final Map explicitParamJaMappings; - final Map> parameterResolvers; + final Map>> parameterResolvers; if ( filterDef.parameters().length == 0 ) { explicitParamJaMappings = emptyMap(); parameterResolvers = emptyMap(); @@ -98,12 +98,15 @@ public static void bindFilterDef(FilterDef filterDef, MetadataBuildingContext co context.getMetadataCollector().addFilterDefinition( filterDefinition ); } - private static ManagedBean resolveParamResolver(ParamDef paramDef, MetadataBuildingContext context) { - Class clazz = paramDef.resolver(); + @SuppressWarnings({"rawtypes", "unchecked"}) + private static ManagedBean> resolveParamResolver(ParamDef paramDef, MetadataBuildingContext context) { + final Class clazz = paramDef.resolver(); assert clazz != Supplier.class; - - final ManagedBeanRegistry beanRegistry = context.getBootstrapContext().getServiceRegistry().getService( ManagedBeanRegistry.class ); - return beanRegistry.getBean( clazz, context.getBootstrapContext().getCustomTypeProducer() ); + final BootstrapContext bootstrapContext = context.getBootstrapContext(); + return (ManagedBean>) + bootstrapContext.getServiceRegistry() + .requireService(ManagedBeanRegistry.class) + .getBean(clazz, bootstrapContext.getCustomTypeProducer()); } @SuppressWarnings("unchecked") diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/FilterDefinition.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/FilterDefinition.java index 106fbf1b9b..f597441c9d 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/FilterDefinition.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/FilterDefinition.java @@ -35,7 +35,7 @@ public class FilterDefinition implements Serializable { private final String filterName; private final String defaultFilterCondition; private final Map explicitParamJaMappings = new HashMap<>(); - private final Map> parameterResolverMap = new HashMap<>(); + private final Map>> parameterResolverMap = new HashMap<>(); private final boolean autoEnabled; /** @@ -47,8 +47,9 @@ public FilterDefinition(String name, String defaultCondition, @Nullable Map explicitParamJaMappings, - Map> parameterResolverMap, boolean autoEnabled) { + public FilterDefinition( + String name, String defaultCondition, @Nullable Map explicitParamJaMappings, + Map>> parameterResolverMap, boolean autoEnabled) { this.filterName = name; this.defaultFilterCondition = defaultCondition; if ( explicitParamJaMappings != null ) { @@ -91,8 +92,8 @@ public Set getParameterNames() { return explicitParamJaMappings.get( parameterName ); } - public @Nullable Supplier getParameterResolver(String parameterName) { - final ManagedBean resolver = parameterResolverMap.get( parameterName ); + public @Nullable Supplier getParameterResolver(String parameterName) { + final ManagedBean> resolver = parameterResolverMap.get( parameterName ); return resolver == null ? null : resolver.getBeanInstance(); } diff --git a/hibernate-core/src/main/java/org/hibernate/internal/FilterImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/FilterImpl.java index 0a6013aeeb..61970b47a1 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/FilterImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/FilterImpl.java @@ -148,7 +148,7 @@ public Object getParameter(String name) { return parameters.get( name ); } - public Supplier getParameterResolver(String name) { + public Supplier getParameterResolver(String name) { return definition.getParameterResolver(name); } @@ -159,15 +159,23 @@ public Supplier getParameterResolver(String name) { * @throws HibernateException If the state is not currently valid. */ public void validate() throws HibernateException { - // for each of the defined parameters, make sure its value + // for each of the defined parameters, make sure its argument // has been set or a resolver has been implemented and specified - for ( final String parameterName : definition.getParameterNames() ) { - if ( parameters.get( parameterName ) == null && - (getParameterResolver( parameterName ) == null || getParameterResolver( parameterName ).getClass().isInterface()) ) { + if ( !hasArgument(parameterName) && !hasResolver(parameterName)) { throw new HibernateException( "Filter parameter '" + getName() + "' has neither an argument nor a resolver" ); } } } + + private boolean hasResolver(String parameterName) { + final Supplier resolver = getParameterResolver(parameterName); + return resolver != null + && !resolver.getClass().isInterface(); + } + + private boolean hasArgument(String parameterName) { + return parameters.containsKey(parameterName); + } } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/predicate/FilterPredicate.java b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/predicate/FilterPredicate.java index 1b8505f356..562c34f0de 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/predicate/FilterPredicate.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/ast/tree/predicate/FilterPredicate.java @@ -10,15 +10,12 @@ import java.util.List; import java.util.function.Supplier; -import org.hibernate.MappingException; import org.hibernate.engine.spi.FilterDefinition; import org.hibernate.internal.FilterImpl; import org.hibernate.internal.FilterJdbcParameter; import org.hibernate.internal.util.collections.CollectionHelper; import org.hibernate.metamodel.mapping.JdbcMapping; import org.hibernate.metamodel.mapping.JdbcMappingContainer; -import org.hibernate.resource.beans.container.spi.BeanContainer; -import org.hibernate.resource.beans.internal.FallbackBeanInstanceProducer; import org.hibernate.sql.ast.SqlAstWalker; /** @@ -166,7 +163,7 @@ private Object retrieveParamValue(FilterImpl filter, String paramName) { return value; } - final Supplier filterParamResolver = filter.getParameterResolver( paramName ); + final Supplier filterParamResolver = filter.getParameterResolver( paramName ); return filterParamResolver == null ? null : filterParamResolver.get(); } }