Example usage for com.liferay.portal.workflow.kaleo.model KaleoInstanceToken getCurrentKaleoNode

List of usage examples for com.liferay.portal.workflow.kaleo.model KaleoInstanceToken getCurrentKaleoNode

Introduction

In this page you can find the example usage for com.liferay.portal.workflow.kaleo.model KaleoInstanceToken getCurrentKaleoNode.

Prototype

public KaleoNode getCurrentKaleoNode() throws com.liferay.portal.kernel.exception.PortalException;

Source Link

Usage

From source file:de.hofuniversity.iisys.liferay.workflows.LoggingWorkflowEngine.java

License:Open Source License

@Override
public ExecutionContext executeTimerWorkflowInstance(long kaleoTimerInstanceTokenId,
        ServiceContext serviceContext, Map<String, Serializable> workflowContext) throws WorkflowException {

    try {/*from  w  ww. j ava2  s.com*/
        fLogger.println("WorkflowEngine.executeTimerWorkflowInstance");
        fLogger.println("\tkaleoTimerInstanceTokenId: " + kaleoTimerInstanceTokenId);
        fLogger.println("\tserviceContext:");
        logServiceContext(serviceContext, "\t\t");
        fLogger.println("\tworkflowContext:");
        logMap(workflowContext, "\t\t");

        KaleoTimerInstanceToken kaleoTimerInstanceToken = kaleoTimerInstanceTokenLocalService
                .getKaleoTimerInstanceToken(kaleoTimerInstanceTokenId);

        KaleoInstanceToken kaleoInstanceToken = kaleoTimerInstanceToken.getKaleoInstanceToken();

        final ExecutionContext executionContext = new ExecutionContext(kaleoInstanceToken,
                kaleoTimerInstanceToken, workflowContext, serviceContext);

        KaleoTaskInstanceToken kaleoTaskInstanceToken = kaleoTimerInstanceToken.getKaleoTaskInstanceToken();

        executionContext.setKaleoTaskInstanceToken(kaleoTaskInstanceToken);

        final KaleoNode currentKaleoNode = kaleoInstanceToken.getCurrentKaleoNode();

        NodeExecutor nodeExecutor = _nodeExecutorFactory.getNodeExecutor(currentKaleoNode.getType());

        nodeExecutor.executeTimer(currentKaleoNode, executionContext);

        TransactionCommitCallbackUtil.registerCallback(new Callable<Void>() {

            @Override
            public Void call() throws Exception {
                _kaleoSignaler.signalExecute(currentKaleoNode, executionContext);

                return null;
            }

        });

        fLogger.println("\tRETURN executionContext:");
        logExecContext(executionContext, "\t\t");
        fLogger.flush();

        return executionContext;
    } catch (Exception e) {
        throw new WorkflowException(e);
    }
}

From source file:de.hofuniversity.iisys.liferay.workflows.LoggingWorkflowEngine.java

License:Open Source License

@Override
public WorkflowInstance signalWorkflowInstance(long workflowInstanceId, final String transitionName,
        Map<String, Serializable> workflowContext, ServiceContext serviceContext) throws WorkflowException {

    try {/*ww w.jav a 2 s .c  om*/

        fLogger.println("WorkflowEngine.signalWorkflowInstance");
        fLogger.println("\tworkflowInstanceId: " + workflowInstanceId);
        fLogger.println("\ttransitionName: " + transitionName);
        fLogger.println("\tworkflowContext:");
        logMap(workflowContext, "\t\t");
        fLogger.println("\tserviceContext:");
        logServiceContext(serviceContext, "\t\t");

        KaleoInstance kaleoInstance = doUpdateContext(workflowInstanceId, workflowContext, serviceContext);

        KaleoInstanceToken kaleoInstanceToken = kaleoInstance.getRootKaleoInstanceToken(serviceContext);

        if (Validator.isNotNull(transitionName)) {

            // Validate that the transition actually exists before moving
            // forward

            KaleoNode currentKaleoNode = kaleoInstanceToken.getCurrentKaleoNode();

            currentKaleoNode.getKaleoTransition(transitionName);
        }

        serviceContext.setScopeGroupId(kaleoInstanceToken.getGroupId());

        final ExecutionContext executionContext = new ExecutionContext(kaleoInstanceToken, workflowContext,
                serviceContext);

        TransactionCommitCallbackUtil.registerCallback(new Callable<Void>() {

            @Override
            public Void call() throws Exception {
                try {
                    _kaleoSignaler.signalExit(transitionName, executionContext);
                } catch (Exception e) {
                    throw new WorkflowException("Unable to signal next transition", e);
                }

                return null;
            }

        });

        WorkflowInstance instance = _kaleoWorkflowModelConverter.toWorkflowInstance(kaleoInstance,
                kaleoInstanceToken, workflowContext);

        fLogger.println("\tRETURN instance:");
        logWfInstance(instance, "\t\t");

        fLogger.flush();

        return instance;
    } catch (Exception e) {
        throw new WorkflowException(e);
    }
}

From source file:de.hofuniversity.iisys.liferay.workflows.LoggingWorkflowEngine.java

License:Open Source License

protected void getNextTransitionNames(KaleoInstanceToken kaleoInstanceToken, List<String> transitionNames)
        throws Exception {

    if (kaleoInstanceToken.hasIncompleteChildrenKaleoInstanceToken()) {
        List<KaleoInstanceToken> incompleteChildrenKaleoInstanceTokens = kaleoInstanceToken
                .getIncompleteChildrenKaleoInstanceTokens();

        for (KaleoInstanceToken incompleteChildrenKaleoInstanceToken : incompleteChildrenKaleoInstanceTokens) {

            getNextTransitionNames(incompleteChildrenKaleoInstanceToken, transitionNames);
        }//from  w  w  w  . java2  s. c  o  m
    } else {
        KaleoNode kaleoNode = kaleoInstanceToken.getCurrentKaleoNode();

        List<KaleoTransition> kaleoTransitions = kaleoNode.getKaleoTransitions();

        for (KaleoTransition kaleoTransition : kaleoTransitions) {
            transitionNames.add(kaleoTransition.getName());
        }
    }
}