1 /*
2  * Hibernate Validator, declare and validate application constraints
3  *
4  * License: Apache License, Version 2.0
5  * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
6  */

7 package org.hibernate.validator.internal.engine.valueextraction;
8
9 import java.util.Optional;
10
11 import javax.validation.valueextraction.ExtractedValue;
12 import javax.validation.valueextraction.ValueExtractor;
13
14 /**
15  * @author Gunnar Morling
16  */

17 class OptionalValueExtractor implements ValueExtractor<Optional<@ExtractedValue ?>> {
18
19     static final ValueExtractorDescriptor DESCRIPTOR = new ValueExtractorDescriptor( new OptionalValueExtractor() );
20
21     private OptionalValueExtractor() {
22     }
23
24     @Override
25     public void extractValues(Optional<?> originalValue, ValueExtractor.ValueReceiver receiver) {
26         receiver.value( null, originalValue.isPresent() ? originalValue.get() : null );
27     }
28 }
29