use of org.camunda.bpm.engine.variable.value.TypedValue in project camunda-bpm-platform by camunda.
the class FormFieldHandler method createFormField.
public FormField createFormField(ExecutionEntity executionEntity) {
FormFieldImpl formField = new FormFieldImpl();
// set id
formField.setId(id);
// set label (evaluate expression)
VariableScope variableScope = executionEntity != null ? executionEntity : StartProcessVariableScope.getSharedInstance();
if (label != null) {
Object labelValueObject = label.getValue(variableScope);
if (labelValueObject != null) {
formField.setLabel(labelValueObject.toString());
}
}
formField.setBusinessKey(businessKey);
// set type
formField.setType(type);
// set default value (evaluate expression)
Object defaultValue = null;
if (defaultValueExpression != null) {
defaultValue = defaultValueExpression.getValue(variableScope);
if (defaultValue != null) {
formField.setDefaultValue(type.convertFormValueToModelValue(defaultValue));
} else {
formField.setDefaultValue(null);
}
}
// value
TypedValue value = variableScope.getVariableTyped(id);
if (value != null) {
formField.setValue(type.convertToFormValue(value));
} else {
// first, need to convert to model value since the default value may be a String Constant specified in the model xml.
TypedValue typedDefaultValue = type.convertToModelValue(Variables.untypedValue(defaultValue));
// now convert to form value
formField.setValue(type.convertToFormValue(typedDefaultValue));
}
// properties
formField.setProperties(properties);
// validation
List<FormFieldValidationConstraint> validationConstraints = formField.getValidationConstraints();
for (FormFieldValidationConstraintHandler validationHandler : validationHandlers) {
// do not add custom validators
if (!"validator".equals(validationHandler.name)) {
validationConstraints.add(validationHandler.createValidationConstraint(executionEntity));
}
}
return formField;
}
use of org.camunda.bpm.engine.variable.value.TypedValue in project camunda-bpm-platform by camunda.
the class FormFieldHandler method handleSubmit.
// submit /////////////////////////////////////////////
public void handleSubmit(VariableScope variableScope, VariableMap values, VariableMap allValues) {
TypedValue submittedValue = (TypedValue) values.getValueTyped(id);
values.remove(id);
// perform validation
for (FormFieldValidationConstraintHandler validationHandler : validationHandlers) {
Object value = null;
if (submittedValue != null) {
value = submittedValue.getValue();
}
validationHandler.validate(value, allValues, this, variableScope);
}
// update variable(s)
TypedValue modelValue = null;
if (submittedValue != null) {
if (type != null) {
modelValue = type.convertToModelValue(submittedValue);
} else {
modelValue = submittedValue;
}
} else if (defaultValueExpression != null) {
final TypedValue expressionValue = Variables.untypedValue(defaultValueExpression.getValue(variableScope));
if (type != null) {
// first, need to convert to model value since the default value may be a String Constant specified in the model xml.
modelValue = type.convertToModelValue(Variables.untypedValue(expressionValue));
} else if (expressionValue != null) {
modelValue = Variables.stringValue(expressionValue.getValue().toString());
}
}
if (modelValue != null) {
if (id != null) {
variableScope.setVariable(id, modelValue);
}
}
}
use of org.camunda.bpm.engine.variable.value.TypedValue in project camunda-bpm-platform by camunda.
the class TaskAuthorizationTest method testProcessTaskGetVariableTypedWithReadPermissionOnTask.
public void testProcessTaskGetVariableTypedWithReadPermissionOnTask() {
// given
startProcessInstanceByKey(PROCESS_KEY, getVariables());
String taskId = selectSingleTask().getId();
createGrantAuthorization(TASK, taskId, userId, READ);
// when
TypedValue typedValue = taskService.getVariableTyped(taskId, VARIABLE_NAME);
// then
assertNotNull(typedValue);
assertEquals(VARIABLE_VALUE, typedValue.getValue());
}
use of org.camunda.bpm.engine.variable.value.TypedValue in project camunda-bpm-platform by camunda.
the class TaskAuthorizationTest method testProcessTaskGetVariableLocalTypedWithReadPermissionOnAnyTask.
public void testProcessTaskGetVariableLocalTypedWithReadPermissionOnAnyTask() {
// given
startProcessInstanceByKey(PROCESS_KEY);
String taskId = selectSingleTask().getId();
createGrantAuthorization(TASK, ANY, userId, READ);
disableAuthorization();
taskService.setVariablesLocal(taskId, getVariables());
enableAuthorization();
// when
TypedValue typedValue = taskService.getVariableLocalTyped(taskId, VARIABLE_NAME);
// then
assertNotNull(typedValue);
assertEquals(VARIABLE_VALUE, typedValue.getValue());
}
use of org.camunda.bpm.engine.variable.value.TypedValue in project camunda-bpm-platform by camunda.
the class TaskAuthorizationTest method testProcessTaskGetVariableLocalTypedWithReadInstancePermissionOnProcessDefinition.
public void testProcessTaskGetVariableLocalTypedWithReadInstancePermissionOnProcessDefinition() {
// given
startProcessInstanceByKey(PROCESS_KEY);
String taskId = selectSingleTask().getId();
createGrantAuthorization(PROCESS_DEFINITION, PROCESS_KEY, userId, READ_TASK);
disableAuthorization();
taskService.setVariablesLocal(taskId, getVariables());
enableAuthorization();
// when
TypedValue typedValue = taskService.getVariableLocalTyped(taskId, VARIABLE_NAME);
// then
assertNotNull(typedValue);
assertEquals(VARIABLE_VALUE, typedValue.getValue());
}
Aggregations