public DefaultWorkflowActionSpecification(String name, String description, Map<String, String> properties) {
this(null, name, description, properties);
}
public DefaultWorkflowActionSpecification(WorkflowAction action) {
WorkflowActionSpecification spec = action.configure();
Map<String, String> properties = Maps.newHashMap(spec.getProperties());
Reflections.visit(action, TypeToken.of(action.getClass()),
new PropertyFieldExtractor(properties));
this.className = action.getClass().getName();
this.name = spec.getName();
this.description = spec.getDescription();
this.properties = ImmutableMap.copyOf(properties);
}