package org.openbel.framework.common.index;
import java.util.List;
import java.util.Set;
/**
* Index encapsulates the information in a Resource Index file.
*
* @author Anthony Bargnesi <abargnesi@selventa.com>
*/
public final class Index {
private final List<ResourceLocation> adResources;
private final List<ResourceLocation> nsResources;
private final List<Equivalence> eqResources;
private final ResourceLocation pfResource;
private final ResourceLocation ncResource;
private final ResourceLocation gsResource;
private Set<ResourceLocation> orthoResources;
/**
* Constructs the Index with the namespace resources,
* equivalence resources, protein family resource, named
* complex resource, and gene scaffolding resource.
*
* @param adResources {@link List} of {@link ResourceLocation}, the
* annotation definition resource locations
* @param nsResources {@link List} of {@link ResourceLocation}, the
* namespace resource locations
* @param eqResources {@link List} of {@link Equivalence}, the equivalence
* resource locations
* @param pfResource {@link ResourceLocation}, the protein family resource
* @param ncResource {@link ResourceLocation}, the named complex resource
* @param gsResource {@link ResourceLocation}, the gene scaffolding resource
* @param orthoResources {@link Set} of {@link ResourceLocation}, the
* orthology resources
*/
protected Index(
List<ResourceLocation> adResources,
List<ResourceLocation> nsResources,
List<Equivalence> eqResources,
ResourceLocation pfResource,
ResourceLocation ncResource,
ResourceLocation gsResource,
Set<ResourceLocation> orthoResources) {
this.adResources = adResources;
this.nsResources = nsResources;
this.eqResources = eqResources;
this.pfResource = pfResource;
this.ncResource = ncResource;
this.gsResource = gsResource;
this.orthoResources = orthoResources;
}
/**
* Returns the annotation definition {@link ResourceLocation} list.
*
* @return {@link List} of {@link ResourceLocation}, which can be null
*/
public List<ResourceLocation> getAnnotationDefinitionResources() {
return adResources;
}
/**
* Returns the namespace {@link ResourceLocation} list.
*
* @return {@link List} of {@link ResourceLocation}, which can be null
*/
public List<ResourceLocation> getNamespaceResources() {
return nsResources;
}
/**
* Returns the list of {@link Equivalence} objects.
*
* @return {@link List} of {@link Equivalence}, which can be null
*/
public List<Equivalence> getEquivalenceResources() {
return eqResources;
}
/**
* Return the protein family {@link ResourceLocation}.
*
* @return {@link ResourceLocation} the protein family resource which
* can be null
*/
public ResourceLocation getProteinFamilyResource() {
return pfResource;
}
/**
* Return the named complexes {@link ResourceLocation}.
*
* @return {@link ResourceLocation} the named complexes resource which
* can be null
*/
public ResourceLocation getNamedComplexesResource() {
return ncResource;
}
/**
* Return the gene scaffolding {@link ResourceLocation}.
*
* @return {@link ResourceLocation} the gene scaffolding resource which
* can be null
*/
public ResourceLocation getGeneScaffoldingResource() {
return gsResource;
}
/**
* Return the orthology document's {@link ResourceLocation}.
*
* @return the orthology resources, which may be {@code null}
*/
public Set<ResourceLocation> getOrthologyResources() {
return orthoResources;
}
}