package com.forter.contracts.validation; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import org.hibernate.validator.internal.util.TypeResolutionHelper; /** * Unwraps an {@code Optional} and returns the wrapped value and type. * */ public class OptionalUnwrapper extends TypeResolverBasedValueUnwrapper<Optional<?>> { public OptionalUnwrapper(TypeResolutionHelper typeResolutionHelper) { super(typeResolutionHelper); } @Override public Object handleValidatedValue(Optional<?> value) { Preconditions.checkNotNull(value, "Value cannot be null"); return value.orNull(); } }