package edu.harvard.iq.dataverse.search; import edu.harvard.iq.dataverse.DatasetVersion; public class IndexableDataset extends IndexableObject { DatasetState datasetState; boolean filesShouldBeIndexed; private final DatasetVersion datasetVersion; public IndexableDataset(DatasetVersion datasetVersion) { this.datasetVersion = datasetVersion; super.setType(IndexableObject.IndexableTypes.DATASET.getName()); if (datasetVersion.isWorkingCopy()) { this.datasetState = DatasetState.WORKING_COPY; this.filesShouldBeIndexed = true; } else if (datasetVersion.isReleased()) { this.datasetState = DatasetState.PUBLISHED; this.filesShouldBeIndexed = true; } else if (datasetVersion.isDeaccessioned()) { this.datasetState = DatasetState.DEACCESSIONED; this.filesShouldBeIndexed = false; } } public boolean isFilesShouldBeIndexed() { return filesShouldBeIndexed; } public DatasetVersion getDatasetVersion() { return datasetVersion; } public String getSolrDocId() { return super.getType() + "_" + datasetVersion.getDataset().getId() + datasetState.suffix; } public DatasetState getDatasetState() { return datasetState; } public enum DatasetState { WORKING_COPY(IndexServiceBean.draftSuffix), PUBLISHED(""), DEACCESSIONED(IndexServiceBean.deaccessionedSuffix); private String suffix; private DatasetState(String string) { suffix = string; } public void setSuffix(String suffix) { this.suffix = suffix; } public String getSuffix() { return suffix; } } }