package org.opencb.opencga.storage.mongodb.variant.io.db; import org.opencb.commons.datastore.core.QueryOptions; import org.opencb.opencga.storage.core.variant.io.db.VariantAnnotationDBWriter; import org.opencb.opencga.storage.mongodb.variant.adaptors.VariantMongoDBAdaptor; /** * Basic functionality of VariantAnnotationDBWriter. Creates MongoDB indexes at the post step (if needed). * Created on 05/01/17. * * @author Jacobo Coll <jacobo167@gmail.com> */ public class VariantMongoDBAnnotationDBWriter extends VariantAnnotationDBWriter { private static final String INDEXES_CREATED = "indexes.created"; private final VariantMongoDBAdaptor dbAdaptor; public VariantMongoDBAnnotationDBWriter(QueryOptions options, VariantMongoDBAdaptor dbAdaptor) { super(dbAdaptor, options, null); this.dbAdaptor = dbAdaptor; } @Override public void pre() { super.pre(); options.put(INDEXES_CREATED, false); } @Override public synchronized void post() { super.post(); if (!options.getBoolean(INDEXES_CREATED)) { dbAdaptor.createIndexes(new QueryOptions()); options.put(INDEXES_CREATED, true); } } }