package ru.vyarus.dropwizard.guice.module.context.info; import ru.vyarus.dropwizard.guice.module.context.info.sign.ScanSupport; import ru.vyarus.dropwizard.guice.module.installer.FeatureInstaller; /** * Extension configuration information. * * @author Vyacheslav Rusakov * @since 09.07.2016 */ public interface ExtensionItemInfo extends ItemInfo, ScanSupport { /** * Each extension is always registered by single installer. If extension is recognizable by multiple installers * then it will be installed by first matching installer. * * @return installer installed this extension */ Class<? extends FeatureInstaller> getInstalledBy(); /** * Lazy beans are not registered in guice by default. Some installers could support this flag in a special way. * * @return true if extension annotated with * {@link ru.vyarus.dropwizard.guice.module.installer.install.binding.LazyBinding}, false otherwise */ boolean isLazy(); /** * Indicates extension management by HK2 instead of guice. * * @return true if extension annotated with * {@link ru.vyarus.dropwizard.guice.module.installer.feature.jersey.HK2Managed}, false otherwise */ boolean isHk2Managed(); }