package io.dropwizard.jersey.params;
import com.google.common.base.Strings;
import java.util.Optional;
/**
* A parameter encapsulating optional string values with the condition that empty string inputs are
* interpreted as being absent. This class is useful when it is desired for empty parameters to be
* synonymous with absent parameters instead of empty parameters evaluating to
* {@code Optional.of("")}.
*/
public class NonEmptyStringParam extends AbstractParam<Optional<String>> {
public NonEmptyStringParam(String input) {
super(input);
}
public NonEmptyStringParam(String input, String parameterName) {
super(input, parameterName);
}
@Override
protected Optional<String> parse(String input) throws Exception {
return Optional.ofNullable(Strings.emptyToNull(input));
}
}