public List<Class<Enum>> getOptionGroups() {
        return getOptions().stream().<Class<Enum>>map(Enum::getDeclaringClass).distinct()
                .sorted(Comparator.comparing(Class::getSimpleName))
                .collect(Collectors.toList());
    }
public List < Class < Enum > > getOptionGroups ( ) { return getOptions ( ) . stream ( ) . < Class < Enum > > map ( Enum :: getDeclaringClass ) . distinct ( ) . sorted ( Comparator . comparing ( Class :: getSimpleName ) ) . collect ( Collectors . toList ( ) ) ; }
In contrast to {@link #getOptions()} returns only enum types of used options.
For example, {@link ru.vyarus.dropwizard.guice.GuiceyOptions} is enum type for core guicey options.

@return list of used option enums sorted by name