get rid of raw types and extract methods

eliminates compiler warnings

Signed-off-by: Gavin King <gavin@hibernate.org>
This commit is contained in:
Gavin King 2024-04-10 16:18:23 +02:00 committed by Christian Beikov
parent 85e764ee3b
commit 2e4ef2e252
4 changed files with 29 additions and 20 deletions

View File

@ -60,7 +60,7 @@ public static void bindFilterDef(FilterDef filterDef, MetadataBuildingContext co
}
final Map<String, JdbcMapping> explicitParamJaMappings;
final Map<String, ManagedBean<? extends Supplier>> parameterResolvers;
final Map<String, ManagedBean<? extends Supplier<?>>> 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<? extends Supplier> resolveParamResolver(ParamDef paramDef, MetadataBuildingContext context) {
Class<? extends Supplier> clazz = paramDef.resolver();
@SuppressWarnings({"rawtypes", "unchecked"})
private static ManagedBean<? extends Supplier<?>> resolveParamResolver(ParamDef paramDef, MetadataBuildingContext context) {
final Class<? extends Supplier> 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<? extends Supplier<?>>)
bootstrapContext.getServiceRegistry()
.requireService(ManagedBeanRegistry.class)
.getBean(clazz, bootstrapContext.getCustomTypeProducer());
}
@SuppressWarnings("unchecked")

View File

@ -35,7 +35,7 @@ public class FilterDefinition implements Serializable {
private final String filterName;
private final String defaultFilterCondition;
private final Map<String, JdbcMapping> explicitParamJaMappings = new HashMap<>();
private final Map<String, ManagedBean<? extends Supplier>> parameterResolverMap = new HashMap<>();
private final Map<String, ManagedBean<? extends Supplier<?>>> parameterResolverMap = new HashMap<>();
private final boolean autoEnabled;
/**
@ -47,8 +47,9 @@ public FilterDefinition(String name, String defaultCondition, @Nullable Map<Stri
this( name, defaultCondition, explicitParamJaMappings, Collections.emptyMap(), false);
}
public FilterDefinition(String name, String defaultCondition, @Nullable Map<String, JdbcMapping> explicitParamJaMappings,
Map<String, ManagedBean<? extends Supplier>> parameterResolverMap, boolean autoEnabled) {
public FilterDefinition(
String name, String defaultCondition, @Nullable Map<String, JdbcMapping> explicitParamJaMappings,
Map<String, ManagedBean<? extends Supplier<?>>> parameterResolverMap, boolean autoEnabled) {
this.filterName = name;
this.defaultFilterCondition = defaultCondition;
if ( explicitParamJaMappings != null ) {
@ -91,8 +92,8 @@ public Set<String> getParameterNames() {
return explicitParamJaMappings.get( parameterName );
}
public @Nullable Supplier getParameterResolver(String parameterName) {
final ManagedBean<? extends Supplier> resolver = parameterResolverMap.get( parameterName );
public @Nullable Supplier<?> getParameterResolver(String parameterName) {
final ManagedBean<? extends Supplier<?>> resolver = parameterResolverMap.get( parameterName );
return resolver == null ? null : resolver.getBeanInstance();
}

View File

@ -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);
}
}

View File

@ -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();
}
}