Class AnnotatedConfig

  • All Implemented Interfaces:

    public class AnnotatedConfig
    extends java.lang.Object
    implements Config
    A form of Config that is generated by looking at fields in the constructor arg that are annotated with ConfigValue. The class hierarchy is walked from closest to Object to the constructor argument's type, null values are ignored, and the order in which fields are read is not stable (meaning duplicate config values may give different values each time).

    The main use of this class is to allow an object configured using (for example) jcommander to be used directly within the app, without requiring intermediate support classes to transform flags to config values.

    • Constructor Summary

      Constructor Description
      AnnotatedConfig​(java.lang.Object obj)  
      AnnotatedConfig​(java.lang.Object obj, java.util.Set<java.lang.String> cliArgs, boolean includeCliArgs)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Optional<java.util.List<java.lang.String>> getAll​(java.lang.String section, java.lang.String option)  
      java.util.Set<java.lang.String> getOptions​(java.lang.String section)  
      java.util.Set<java.lang.String> getSectionNames()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AnnotatedConfig

        public AnnotatedConfig​(java.lang.Object obj)
      • AnnotatedConfig

        public AnnotatedConfig​(java.lang.Object obj,
                               java.util.Set<java.lang.String> cliArgs,
                               boolean includeCliArgs)
    • Method Detail

      • getAll

        public java.util.Optional<java.util.List<java.lang.String>> getAll​(java.lang.String section,
                                                                           java.lang.String option)
        Specified by:
        getAll in interface Config
      • getSectionNames

        public java.util.Set<java.lang.String> getSectionNames()
        Specified by:
        getSectionNames in interface Config
      • getOptions

        public java.util.Set<java.lang.String> getOptions​(java.lang.String section)
        Specified by:
        getOptions in interface Config