import java.util.*;

public abstract class DigitalComponent {
	protected List<Wire> inputs = new ArrayList<Wire>();
	protected List<Wire> outputs = new ArrayList<Wire>();
	
	public void addInput(Wire w) {
		inputs.add(w);
	}
	
	public void addOutput(Wire w) {
		outputs.add(w);
	}
	
	public Wire getInput(int i) {
		if (i < inputs.size()) {
			return inputs.get(i);
		} else {
			return null;
		}
	}
	
	public Wire getOutput(int i) {
		if (i < outputs.size()) {
			return outputs.get(i);
		} else {
			return null;
		}
	}
	
	
	
	public abstract void eval();

}
