package road;

import java.util.ArrayList;
import java.util.List;


public class ImpNonDetAutomaton implements NonDeterministicAutomaton {
	
	private final List<List<List<Integer>>> edges;

	
	public ImpNonDetAutomaton(int n, int l){
		edges = new ArrayList<List<List<Integer>>>();
		for (int c = 0; c < l; c++) {
			edges.add(new ArrayList<List<Integer>>());
		}
		for (int c = 0; c < l; c++) {
			for (int x = 0; x < n; x++) {
			      edges.get(c).add(new ArrayList<Integer>());
			}
		}
	}
	

	@Override
	public int arity() {
       return edges.get(0).size();
	}

	@Override
	public List<Integer> edges(int x, int c) {
		return edges.get(c).get(x);
	}

	@Override
	public List<List<List<Integer>>> getEdges() {
		return edges;
	}
	@Override
	public int size() {
		return edges.size();
	}

	@Override
	public String toString() {
		return "ImpNonDetAutomaton [edges=" + edges + "]";
	}

	
}
