51 lines
2.0 KiB
Java
51 lines
2.0 KiB
Java
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<String, String> 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);
|
|
|
|
}
|
|
|
|
}
|