package org.opencb.opencga.storage.core.variant.dummy; import org.opencb.biodata.models.variant.VariantSource; import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.opencga.storage.core.config.StorageConfiguration; import org.opencb.opencga.storage.core.exceptions.StorageEngineException; import org.opencb.opencga.storage.core.metadata.BatchFileOperation; import org.opencb.opencga.storage.core.metadata.StudyConfiguration; import org.opencb.opencga.storage.core.variant.VariantStoragePipeline; import org.opencb.opencga.storage.core.variant.VariantStorageEngine; import org.opencb.opencga.storage.core.variant.adaptors.VariantDBAdaptor; import org.opencb.opencga.storage.core.variant.io.VariantReaderUtils; import org.slf4j.Logger; import java.io.IOException; import java.net.URI; import java.util.List; /** * Created on 28/11/16. * * @author Jacobo Coll <jacobo167@gmail.com> */ public class DummyVariantStoragePipeline extends VariantStoragePipeline { public static final String VARIANTS_LOAD_FAIL = "dummy.variants.load.fail"; public DummyVariantStoragePipeline(StorageConfiguration configuration, String storageEngineId, Logger logger, VariantDBAdaptor dbAdaptor, VariantReaderUtils variantReaderUtils) { super(configuration, storageEngineId, logger, dbAdaptor, variantReaderUtils); } public void init(ObjectMap options) { getOptions().clear(); getOptions().putAll(options); } @Override protected void securePreLoad(StudyConfiguration studyConfiguration, VariantSource source) throws StorageEngineException { super.securePreLoad(studyConfiguration, source); List<Integer> fileIds = getOptions().getAsIntegerList(VariantStorageEngine.Options.FILE_ID.key()); BatchFileOperation op = new BatchFileOperation("load", fileIds, 1, BatchFileOperation.Type.LOAD); op.addStatus(BatchFileOperation.Status.RUNNING); studyConfiguration.getBatches().add(op); } @Override public URI load(URI input) throws IOException, StorageEngineException { logger.info("Loading file " + input); List<Integer> fileIds = getOptions().getAsIntegerList(VariantStorageEngine.Options.FILE_ID.key()); if (getOptions().getBoolean(VARIANTS_LOAD_FAIL)) { setStatus(BatchFileOperation.Status.ERROR, "load", fileIds); } else { setStatus(BatchFileOperation.Status.DONE, "load", fileIds); } return input; } @Override public URI postLoad(URI input, URI output) throws StorageEngineException { logger.info("Post load file " + input); return super.postLoad(input, output); } @Override public void securePostLoad(List<Integer> fileIds, StudyConfiguration studyConfiguration) throws StorageEngineException { super.securePostLoad(fileIds, studyConfiguration); BatchFileOperation.Status status = secureSetStatus(studyConfiguration, BatchFileOperation.Status.READY, "load", fileIds); if (status != BatchFileOperation.Status.DONE) { logger.warn("Unexpected status " + status); } } @Override protected void checkLoadedVariants(URI input, int fileId, StudyConfiguration studyConfiguration) throws StorageEngineException { } }