/** * Add a config to the bottom of the Config hierarchy. Use this when configuration is added * through code. Can be called multiple times as ConfigReader is added to a multibinding. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindDefaultConfig().to(MyDefaultConfig.class); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<Config> bindDefaultConfig() { return Multibinder.newSetBinder(binder(), Config.class, DefaultLayer.class).addBinding(); }
/** * Add support for a new configuration format. Can be called multiple times to add support for * multiple file format. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindConfigReader().to(SomeConfigFormatReader.class); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<Config> bindConfigReader() { return Multibinder.newSetBinder(binder(), Config.class, DefaultLayer.class).addBinding(); }
/** * Set application overrides to a particular resource. This is normally done for unit tests. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindApplicationConfigurationOverrideResource("laptop"); * } * }); * </code> * * @return */ protected void bindApplicationConfigurationOverrideResource(String overrideResource) { Multibinder.newSetBinder(binder(), String.class, ApplicationOverrideResources.class).permitDuplicates().addBinding().toInstance(overrideResource); }