if (!editable) {
decodedValue = this.getDecodedValue(value, charEncoding);
}
// Get actual IState
IState state = this.getStatesStack().peek();
IParameter parameter = state.getParameter(parameterName);
if (parameter != null) {
if (parameter.isEditable() != editable) {
// A parameter can be created as editable but if a new non editable value is added, the parameter is
// changed to non editable. This is required in some frameworks like Struts 2.
parameter.setEditable(editable);
}
parameter.addValue(decodedValue);
} else {
// create a new parameter and add to the request
parameter = createParameter(parameterName, decodedValue, editable, editableDataType, isActionParam,
charEncoding);
state.addParameter(parameter);
}
return parameter;
}