All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.camunda.bpm.extension.graphql.resolvers.ProcessDefinitionResolver Maven / Gradle / Ivy

The newest version!
package org.camunda.bpm.extension.graphql.resolvers;

import graphql.kickstart.tools.GraphQLResolver;
import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.RepositoryService;
import org.camunda.bpm.engine.repository.ProcessDefinition;
import org.camunda.bpm.engine.rest.util.ApplicationContextPathUtil;
import org.camunda.bpm.model.bpmn.BpmnModelInstance;
import org.camunda.bpm.model.bpmn.instance.StartEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Collection;

/**
 * Created by danielvogel on 20.06.17.
 */

@Component
public class ProcessDefinitionResolver implements GraphQLResolver {

    @Autowired
    ProcessEngine processEngine;

    @Autowired
    RepositoryService repositoryService;


    public ProcessDefinitionResolver() {
    }

    public String getId(ProcessDefinition processDefinition) {
        return processDefinition.getId();
    }

    public String getName(ProcessDefinition processDefinition) {
        return processDefinition.getName();
    }

    public String getKey(ProcessDefinition processDefinition) {
        return processDefinition.getKey();
    }

    public String startFormKey(ProcessDefinition processDefinition) {
        BpmnModelInstance bpmnModelInstance = repositoryService.getBpmnModelInstance(processDefinition.getId());
        Collection startEvents = bpmnModelInstance.getModelElementsByType(StartEvent.class);
        StartEvent startEvent = startEvents.iterator().next();
        return startEvent.getCamundaFormKey();
    }

    public String contextPath(ProcessDefinition processDefinition) {
        String pdid = processDefinition.getId();
        if (pdid != null) {
            return ApplicationContextPathUtil.getApplicationPathByProcessDefinitionId(processEngine, pdid);
        } else
            return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy