25 lines
739 B
Java
25 lines
739 B
Java
public class ExorGate extends LogicGate {
|
|
public ExorGate(final int inputnr) {
|
|
super(inputnr);
|
|
if (inputnr > 2)
|
|
throw (new TooManyInputsException());
|
|
}
|
|
|
|
public ExorGate(final DigitalInput... inputvals) {
|
|
super(inputvals);
|
|
if (inputvals.length > 2)
|
|
throw (new TooManyInputsException());
|
|
}
|
|
|
|
@Override
|
|
public boolean getOutput() {
|
|
boolean first = getInput(0).getValue();
|
|
for (int i = 1; i < getInputNumber(); i++) {
|
|
if (getInput(i).getValue() != first)
|
|
return true; // if there is one change return true
|
|
first = getInput(i).getValue();
|
|
}
|
|
return false; // all values are the same...
|
|
}
|
|
}
|