final List<ParameterDefinition> parameterDefinitions) {
String name = actionMethod.value();
if (StringUtils.isEmpty(name)) {
name = String.format("%s.%s", ClassUtils.getShortName(method.getDeclaringClass()), method.getName());
}
final ActionDefinitionImpl actionDefinition = new ActionDefinitionImpl(name);
actionDefinition.setParameterDefinitions(parameterDefinitions);
actionDefinition.setAdhocPropertiesAllowed(actionMethod.adhocPropertiesAllowed());
ApiCompatibilityUtil.setApplicableTypes(actionDefinition,
Arrays.asList(parseQNames(actionMethod.applicableTypes(), actionMethod)));
actionDefinition.setTitleKey(nullForEmptyString(actionMethod.titleKey()));
actionDefinition.setDescriptionKey(nullForEmptyString(actionMethod.descriptionKey()));
actionDefinition.setRuleActionExecutor(nullForEmptyString(actionMethod.ruleActionExecutor()));
return actionDefinition;
}