ExceptionHelper.checkNotNullArgument(validator, "validator");
ExceptionHelper.checkNotNullArgument(input, "input");
ExceptionHelper.checkNotNullArgument(inputReaderExecutor, "inputReaderExecutor");
final UpdateTaskExecutor updateReader = new GenericUpdateTaskExecutor(inputReaderExecutor);
final AtomicReference<InputType> valueRef = new AtomicReference<>(input.getValue());
final Runnable updateValueTask = new Runnable() {
@Override
public void run() {
valueRef.set(input.getValue());
performValidation();
}
};
ListenerRef ref1 = input.addChangeListener(new Runnable() {
@Override
public void run() {
updateReader.execute(updateValueTask);
}
});
ListenerRef ref2 = this.validator.addValidator(new Validator<Void>() {
@Override
public Problem validateInput(Void inputType) {