package automatvgi.components;

import partition.Partition;
import partition.TablePartition;
import road.DeterministicAutomaton;
import road.ImpDetAutomaton;
import road.Quotient;

public class RoadAutomatonPair {
	protected RoadAutomaton qa;
	protected RoadAutomaton qo;
	protected Quotient q;
	
	public RoadAutomatonPair(Quotient q) {
		super();
		this.q = q;
		qo = new RoadAutomaton(q);
		qo.updateRoadAutomaton();
		int n = q.getG().size();
		int l = q.getG().arity();
		Partition partition = new TablePartition(q.getG().size());
		DeterministicAutomaton det = new ImpDetAutomaton(n,l);
		det.setEdges(q.getG().getEdges());
	    Quotient init = new Quotient(det,partition); // data separees
	    init.update();
	    qa = new RoadAutomaton(init);
	    qa.updateRoadAutomaton();
	}

	public RoadAutomaton getQa() {
		return qa;
	}

	public void setQa(RoadAutomaton qa) {
		this.qa = qa;
	}

	public RoadAutomaton getQo() {
		return qo;
	}

	public void setQo(RoadAutomaton qo) {
		this.qo = qo;
	}


 
	
}
