package afryca.consensusmodel.command.parameter; import static afryca.consensusmodel.Configuration.*; import java.util.Map; import afryca.consensusmodel.Configuration; import afryca.parametervalueconverterhelper.ParameterValueConverterHelper; import afryca.parametervalueconverterhelper.ParameterValueConverterHelperException; /** * Configuration parameter value converter helper * * @author Sinbad² * @version 3.0 */ public class ConfigurationParameterValueConverterHelper extends ParameterValueConverterHelper { public static final String KEY_MARK = "configurationValueKey"; //$NON-NLS-1$ public static final String VALUE_MARK = "configurationValueValue"; //$NON-NLS-1$ @Override public Object convertToObject(String parameterValue) throws ParameterValueConverterHelperException { Configuration result = new Configuration(); setElements(result, parameterValue); return result; } private void setElements(Configuration configuration, String parameterValue) throws ParameterValueConverterHelperException { Map fields = extractFieldsValue(parameterValue, new String[] { FIELD_FILE, FIELD_CONSENSUS_MODEL, FIELD_VALUES }); configuration.setFile(getString(fields, FIELD_FILE)); configuration.setConsensusModel(getString(fields, FIELD_CONSENSUS_MODEL)); configuration.setValues(getObjectMap(fields, FIELD_VALUES, singular(FIELD_VALUES), KEY_MARK, VALUE_MARK, ValueParameterValueConverterHelper.class, Object.class)); } @Override public String convertToString(Object parameterValue) throws ParameterValueConverterHelperException { Configuration configuration = (Configuration) parameterValue; String file = marker(configuration.getFile(), FIELD_FILE); String consensusModel = marker(configuration.getConsensusModel(), FIELD_CONSENSUS_MODEL); String values = markMap(configuration.getValues(), FIELD_VALUES, singular(FIELD_VALUES), KEY_MARK, VALUE_MARK, ValueParameterValueConverterHelper.class); return marker(new String[] { file, consensusModel, values }, ID); } }