import java.util.*; public class Wire { public Wire() { this(""); } public Wire(String name) { mySignal = false; myName = name; myGates = new Vector(); myNumber = ourCount++; } public boolean getSignal() { return mySignal; } public int number() { return myNumber; } public String toString() { return myName + " (wire " + myNumber + ")"; } public void setSignal(boolean signal) { if (signal != mySignal) { mySignal = signal; int k; for(k=0; k < myGates.size(); k++) { ((Gate) myGates.get(k)).act(); } } } public void addGate(Gate g) { myGates.add(g); g.act(); } public void removeGate(Gate g) { myGates.remove(g); } private List myGates; private boolean mySignal; private String myName; private int myNumber; private static int ourCount; }