package aligner;

public class Factory {

	public static IDAligner makeIDAligner() {
		return makeIDAligner(type);
	}

	public static IDAligner makeIDAligner(int type) {
		if(type==GLOCAL) {return new GlocalAligner();}
		if(type==BANDED) {return new BandedAligner();}
		if(type==DRIFTING) {return new DriftingAligner();}
		if(type==QUANTUM) {return new QuantumAligner();}
		if(type==SSA2) {return new SingleStateAlignerFlat2();}
		if(type==SSA3) {return new SingleStateAlignerFlat3();}
		if(type==WAVE) {return new WaveFrontAligner();}
		assert(false) : type;
		return null;
	}
	
	public static final int GLOCAL=1, BANDED=2, DRIFTING=3, QUANTUM=4, SSA2=5, SSA3=6, WAVE=7;
	public static int type=QUANTUM;
	
}
