All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.broadinstitute.hellbender.engine.ShardToMultiIntervalShardAdapter Maven / Gradle / Ivy

The newest version!
package org.broadinstitute.hellbender.engine;

import org.broadinstitute.hellbender.engine.MultiIntervalShard;
import org.broadinstitute.hellbender.engine.Shard;
import org.broadinstitute.hellbender.utils.SimpleInterval;
import org.broadinstitute.hellbender.utils.Utils;

import java.io.Serializable;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

/**
 * adapts a normal Shard into a MultiIntervalShard that contains only the single wrapped shard
 *
 * this is a temporary shim until we can fully adopt MultiIntervalShard in HaplotypeCallerSpark
 */
public class ShardToMultiIntervalShardAdapter implements MultiIntervalShard, Shard, Serializable {
    private static final long serialVersionUID = 0L;
    private final Shard shard;

    public ShardToMultiIntervalShardAdapter(final Shard shard) {
        this.shard = Utils.nonNull(shard);
    }

    @Override
    public List getIntervals() {
        return Collections.singletonList(shard.getInterval());
    }

    @Override
    public List getPaddedIntervals() {
        return Collections.singletonList(shard.getPaddedInterval());
    }

    @Override
    public Iterator iterator() {
        return shard.iterator();
    }

    @Override
    public SimpleInterval getInterval() {
        return shard.getInterval();
    }

    @Override
    public SimpleInterval getPaddedInterval() {
        return shard.getPaddedInterval();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy