package org.opencb.opencga.storage.hadoop.variant.stats;
import org.opencb.commons.datastore.core.QueryOptions;
import org.opencb.opencga.storage.core.metadata.StudyConfiguration;
import org.opencb.opencga.storage.core.variant.adaptors.VariantDBAdaptor;
import org.opencb.opencga.storage.core.variant.io.db.VariantStatsDBWriter;
import org.opencb.opencga.storage.core.variant.stats.DefaultVariantStatisticsManager;
import org.opencb.opencga.storage.hadoop.variant.adaptors.VariantHadoopDBAdaptor;
import java.sql.SQLException;
/**
* Created on 07/12/16.
*
* @author Jacobo Coll <jacobo167@gmail.com>
*/
public class HadoopDefaultVariantStatisticsManager extends DefaultVariantStatisticsManager {
public HadoopDefaultVariantStatisticsManager(VariantDBAdaptor dbAdaptor) {
super(dbAdaptor);
}
@Override
protected VariantStatsDBWriter newVariantStatisticsDBWriter(VariantDBAdaptor dbAdaptor, StudyConfiguration studyConfiguration,
QueryOptions options) {
if (!(dbAdaptor instanceof VariantHadoopDBAdaptor)) {
throw new IllegalStateException("Expected " + VariantHadoopDBAdaptor.class + " dbAdaptor");
}
return new VariantStatsDBWriter(dbAdaptor, studyConfiguration, options) {
@Override
public boolean pre() {
super.pre();
try {
((VariantHadoopDBAdaptor) dbAdaptor).updateStatsColumns(studyConfiguration);
} catch (SQLException e) {
throw new RuntimeException(e);
}
return true;
}
};
}
}