package ru.naumen.gintonic.guice;
import java.io.Serializable;
import java.util.List;
import ru.naumen.gintonic.guice.statements.BindingDefinition;
import ru.naumen.gintonic.guice.statements.InstallModuleStatement;
import ru.naumen.gintonic.project.source.references.IReferencable;
import ru.naumen.gintonic.project.source.references.SourceCodeReference;
/**
* A guice module.
*
* @author tmajunke
*/
public class GuiceModule implements Serializable, IReferencable{
private static final long serialVersionUID = -5175606018524563987L;
private SourceCodeReference sourceCodeReference;
/**
* The AbstractModule#install(Module) instructions found in the guice
* module.
*/
private List<InstallModuleStatement> installedModules;
public GuiceModule(SourceCodeReference sourceCodeReference,
List<InstallModuleStatement> installedModules,
List<BindingDefinition> bindingDefinitions) {
this.sourceCodeReference = sourceCodeReference;
this.installedModules = installedModules;
this.bindingDefinitions = bindingDefinitions;
}
/**
* The bindings found in the guice module.
*/
private List<BindingDefinition> bindingDefinitions;
public List<BindingDefinition> getBindingDefinitions() {
return bindingDefinitions;
}
/**
* Returns the list of installed module statements.
*/
public List<InstallModuleStatement> getInstalledModules() {
return installedModules;
}
@Override
public SourceCodeReference getSourceCodeReference() {
return sourceCodeReference;
}
public String getPrimaryTypeNameFullyQualified() {
return getSourceCodeReference().getPrimaryTypeNameFullyQualified();
}
public String getProjectName() {
return getSourceCodeReference().getProjectName();
}
public String getPackageNameComponentsFullyQualified() {
return getSourceCodeReference().getPackageNameComponentsFullyQualified();
}
public String getPrimaryTypeName() {
return getSourceCodeReference().getPrimaryTypeName();
}
}