public class DigitalInput { private boolean value = false; public DigitalInput(boolean value) { this.value = value; } /** * default value is false! */ public DigitalInput() { } public void setValue(boolean value) { this.value = value; } public void setValue(LogicGate gate) { this.value = gate.getOutput(); // todo validation stuff } public void setValue(int value) { this.value = value > 0; } public void setValue(char value) { this.value = value == 'H'; } public boolean getValue() { return value; } }