package ru.vyarus.dropwizard.guice.module.context.info.impl;
import ru.vyarus.dropwizard.guice.module.context.ConfigItem;
import ru.vyarus.dropwizard.guice.module.context.info.ExtensionItemInfo;
import ru.vyarus.dropwizard.guice.module.installer.FeatureInstaller;
import ru.vyarus.dropwizard.guice.module.installer.scanner.ClasspathScanner;
/**
* Extension item info implementation.
*
* @author Vyacheslav Rusakov
* @since 06.07.2016
*/
public class ExtensionItemInfoImpl extends ItemInfoImpl implements ExtensionItemInfo {
private Class<? extends FeatureInstaller> installedBy;
private boolean lazy;
private boolean hk2Managed;
public ExtensionItemInfoImpl(final Class<?> type) {
super(ConfigItem.Extension, type);
}
@Override
public Class<? extends FeatureInstaller> getInstalledBy() {
return installedBy;
}
@Override
public boolean isFromScan() {
return getRegisteredBy().contains(ClasspathScanner.class);
}
@Override
public boolean isLazy() {
return lazy;
}
@Override
public boolean isHk2Managed() {
return hk2Managed;
}
public void setLazy(final boolean lazy) {
this.lazy = lazy;
}
public void setHk2Managed(final boolean hk2Managed) {
this.hk2Managed = hk2Managed;
}
public void setInstalledBy(final Class<? extends FeatureInstaller> installedBy) {
this.installedBy = installedBy;
}
}