package org.codemap.commands; import org.codemap.MapPerProject; public abstract class CheckedCommand extends Command { private MapPerProject map; public CheckedCommand(MapPerProject mapPerProject) { map = mapPerProject; enabled = getMyMap().getPropertyOrDefault(getKey(), getDefaultChecked()); } protected MapPerProject getMyMap() { return map; } protected boolean getDefaultChecked() { return true; } protected void applyState() { getMyMap().setProperty(getKey(), isEnabled()); } protected abstract String getKey(); }