Search in sources :

Example 6 with ParameterDefinitionImpl

use of org.jbpm.process.core.impl.ParameterDefinitionImpl in project drools-wb by kiegroup.

the class WorkDefinitionsParser method parse.

/**
 * Parse a MVEL String into WorkDefinitions
 * @param workItemDefinitions
 * @return
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
public static Map<String, WorkDefinition> parse(final List<String> workItemDefinitions) {
    final Map<String, WorkDefinition> workDefinitions = new HashMap<String, WorkDefinition>();
    // Add Data-type imports, in-case they are missing from definition
    final ParserContext context = new ParserContext();
    // Compile expression and convert String
    for (String workItemDefinition : workItemDefinitions) {
        final List<Map<String, Object>> workDefinitionsMap = (List<Map<String, Object>>) WidMVELEvaluator.eval(workItemDefinition);
        // Populate model
        if (workDefinitionsMap != null) {
            for (Map<String, Object> workDefinitionMap : workDefinitionsMap) {
                if (workDefinitionMap != null) {
                    final WorkDefinitionImpl workDefinition = new WorkDefinitionImpl();
                    workDefinition.setName((String) workDefinitionMap.get("name"));
                    workDefinition.setDisplayName((String) workDefinitionMap.get("displayName"));
                    workDefinition.setIcon((String) workDefinitionMap.get("icon"));
                    workDefinition.setCustomEditor((String) workDefinitionMap.get("customEditor"));
                    final Set<ParameterDefinition> parameters = new HashSet<ParameterDefinition>();
                    if (workDefinitionMap.get("parameters") != null) {
                        final Map<String, DataType> parameterMap = (Map<String, DataType>) workDefinitionMap.get("parameters");
                        if (parameterMap != null) {
                            for (Map.Entry<String, DataType> entry : parameterMap.entrySet()) {
                                parameters.add(new ParameterDefinitionImpl(entry.getKey(), entry.getValue()));
                            }
                        }
                        workDefinition.setParameters(parameters);
                    }
                    if (workDefinitionMap.get("parameterValues") != null) {
                        workDefinition.setParameterValues((Map<String, Object>) workDefinitionMap.get("parameterValues"));
                    }
                    if (workDefinitionMap.get("results") != null) {
                        final Set<ParameterDefinition> results = new HashSet<ParameterDefinition>();
                        final Map<String, DataType> resultMap = (Map<String, DataType>) workDefinitionMap.get("results");
                        if (resultMap != null) {
                            for (Map.Entry<String, DataType> entry : resultMap.entrySet()) {
                                results.add(new ParameterDefinitionImpl(entry.getKey(), entry.getValue()));
                            }
                        }
                        workDefinition.setResults(results);
                    }
                    if (workDefinitionMap.get("defaultHandler") != null) {
                        workDefinition.setDefaultHandler((String) workDefinitionMap.get("defaultHandler"));
                    }
                    if (workDefinitionMap.get("dependencies") != null) {
                        workDefinition.setDependencies(((List<String>) workDefinitionMap.get("dependencies")).toArray(new String[0]));
                    }
                    if (workDefinitionMap.get("documentation") != null) {
                        workDefinition.setDocumentation((String) workDefinitionMap.get("documentation"));
                    }
                    if (workDefinitionMap.get("version") != null) {
                        workDefinition.setVersion((String) workDefinitionMap.get("version"));
                    }
                    if (workDefinitionMap.get("description") != null) {
                        workDefinition.setDescription((String) workDefinitionMap.get("description"));
                    }
                    if (workDefinitionMap.get("mavenDependencies") != null) {
                        workDefinition.setMavenDependencies(((List<String>) workDefinitionMap.get("mavenDependencies")).toArray(new String[0]));
                    }
                    workDefinitions.put(workDefinition.getName(), workDefinition);
                }
            }
        }
    }
    return workDefinitions;
}
Also used : WorkDefinitionImpl(org.jbpm.process.workitem.WorkDefinitionImpl) HashMap(java.util.HashMap) ParameterDefinitionImpl(org.jbpm.process.core.impl.ParameterDefinitionImpl) WorkDefinition(org.jbpm.process.core.WorkDefinition) DataType(org.jbpm.process.core.datatype.DataType) List(java.util.List) ParserContext(org.mvel2.ParserContext) Map(java.util.Map) HashMap(java.util.HashMap) ParameterDefinition(org.jbpm.process.core.ParameterDefinition) HashSet(java.util.HashSet)

Example 7 with ParameterDefinitionImpl

use of org.jbpm.process.core.impl.ParameterDefinitionImpl in project jbpm by kiegroup.

the class ParameterHandler method start.

public Object start(final String uri, final String localName, final Attributes attrs, final ExtensibleXmlParser parser) throws SAXException {
    parser.startElementBuilder(localName, attrs);
    final String name = attrs.getValue("name");
    emptyAttributeCheck(localName, "name", name, parser);
    Work work = (Work) parser.getParent();
    ParameterDefinition parameterDefinition = new ParameterDefinitionImpl();
    parameterDefinition.setName(name);
    work.addParameterDefinition(parameterDefinition);
    return new ParameterWrapper(parameterDefinition, work);
}
Also used : Work(org.jbpm.process.core.Work) ParameterDefinitionImpl(org.jbpm.process.core.impl.ParameterDefinitionImpl) ParameterDefinition(org.jbpm.process.core.ParameterDefinition)

Aggregations

ParameterDefinition (org.jbpm.process.core.ParameterDefinition)7 ParameterDefinitionImpl (org.jbpm.process.core.impl.ParameterDefinitionImpl)7 HashSet (java.util.HashSet)5 Work (org.jbpm.process.core.Work)5 WorkImpl (org.jbpm.process.core.impl.WorkImpl)4 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 Variable (org.jbpm.process.core.context.variable.Variable)3 IntegerDataType (org.jbpm.process.core.datatype.impl.type.IntegerDataType)3 ObjectDataType (org.jbpm.process.core.datatype.impl.type.ObjectDataType)3 StringDataType (org.jbpm.process.core.datatype.impl.type.StringDataType)3 RuleFlowProcess (org.jbpm.ruleflow.core.RuleFlowProcess)3 EndNode (org.jbpm.workflow.core.node.EndNode)3 StartNode (org.jbpm.workflow.core.node.StartNode)3 Map (java.util.Map)2 DataType (org.jbpm.process.core.datatype.DataType)2 HumanTaskNode (org.jbpm.workflow.core.node.HumanTaskNode)2 WorkItemNode (org.jbpm.workflow.core.node.WorkItemNode)2 StringReader (java.io.StringReader)1 List (java.util.List)1