}
public Object resolve() {
Form form = formService.getForm();
Group group = form.getGroup(groupName, groupInstanceKey);
Field field = group.getField(fieldName);
boolean valid = isValidatedAndValid(form);
if (context.getTypeInfo().getRawType().isAssignableFrom(Field.class)) {
skipModuleExecutionIfNecessary(valid, field);
return field;
} else {
skipModuleExecutionIfNecessary(valid, null);
if (valid) {
try {
return field.getValueOfType(context.getTypeInfo().getRawType(),
context.getExtraObject(MethodParameter.class), null);
} catch (TypeMismatchException e) {
if (!isConverterQuiet(form)) {
throw e;
}