@Override public final boolean canExecute() { if (domain != null && !isPrepared) { Command newOverrideCommand = domain.createOverrideCommand(this); setOverride(newOverrideCommand); } boolean result = overrideCommand != null ? overrideCommand.canExecute() : doCanExecute(); return result; }