
io.dropwizard.java8.validation.valuehandling.OptionalValidatedValueUnwrapper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dropwizard-java8 Show documentation
Show all versions of dropwizard-java8 Show documentation
Addon bundle for Dropwizard to support Java 8 features
The newest version!
package io.dropwizard.java8.validation.valuehandling;
import com.fasterxml.classmate.ResolvedType;
import com.fasterxml.classmate.TypeResolver;
import org.hibernate.validator.spi.valuehandling.ValidatedValueUnwrapper;
import java.lang.reflect.Type;
import java.util.Optional;
/**
* A {@link ValidatedValueUnwrapper} for {@link Optional}.
*
* Extracts the value contained by the {@link Optional} for validation, or produces {@code null}.
*/
public class OptionalValidatedValueUnwrapper extends ValidatedValueUnwrapper> {
private final TypeResolver resolver = new TypeResolver();
@Override
public Object handleValidatedValue(final Optional> optional) {
return optional.orElse(null);
}
@Override
public Type getValidatedValueType(final Type type) {
ResolvedType resolvedType = resolver.resolve(type);
return resolvedType.typeParametersFor(Optional.class).get(0).getErasedType();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy