package edu.umd.rhsmith.diads.meater.core.config.setup.ops.unit; import java.util.List; import edu.umd.rhsmith.diads.meater.core.config.ConfigUnit; import edu.umd.rhsmith.diads.meater.core.config.props.ConfigProperty; import edu.umd.rhsmith.diads.meater.core.config.setup.MEaterSetupConsole; import edu.umd.rhsmith.diads.meater.core.config.setup.ops.SetupConsoleOperation; public class SetupPropertiesOperation extends SetupConsoleOperation { public static final String OP_SHORTNAME = "setup-props"; public static final String OP_UINAME = "Set up current selection's properties"; private final ConfigUnit owner; public SetupPropertiesOperation(String uiName, String shortName, ConfigUnit owner) { super(uiName, shortName); this.owner = owner; } public SetupPropertiesOperation(ConfigUnit owner) { this(OP_UINAME, OP_SHORTNAME, owner); } @Override public void go(MEaterSetupConsole setup) { List<ConfigProperty<?>> props = this.owner.getConfigProperties(); if (props.isEmpty()) { setup.getConsole().say(MSG_NO_FIELDS_FMT, this.owner.getUiName()); return; } for (ConfigProperty<?> prop : props) { prop.setup(setup); } } /* * -------------------------------- * Messages * -------------------------------- */ private static final String MSG_NO_FIELDS_FMT = "Component %s had no fields to set up"; }