package org.icij.task; import java.net.URI; import java.nio.charset.Charset; import java.nio.file.Path; import java.time.Duration; import java.util.Optional; import java.util.function.Function; public interface OptionParser<V> { Optional<Duration> asDuration(); Optional<Path> asPath(); Optional<URI> asURI(); Optional<Integer> asInteger(); Optional<Boolean> asBoolean(); Optional<Charset> asCharset(); boolean isOn(); boolean isOff(); <E extends Enum<E>> Optional<E> asEnum(final Function<V, E> valueOf); }