io.zeebe.model.bpmn.builder.BpmnSequenceFlowBuilder Maven / Gradle / Ivy
/*
* Copyright © 2017 camunda services GmbH ([email protected])
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.zeebe.model.bpmn.builder;
import io.zeebe.model.bpmn.impl.instance.*;
public class BpmnSequenceFlowBuilder
{
private final BpmnBuilder builder;
private final SequenceFlowImpl sequenceFlow;
private final FlowNodeImpl sourceNode;
public BpmnSequenceFlowBuilder(BpmnBuilder builder, SequenceFlowImpl sequenceFlow, FlowNodeImpl sourceNode)
{
this.builder = builder;
this.sequenceFlow = sequenceFlow;
this.sourceNode = sourceNode;
}
public BpmnBuilder done()
{
return builder;
}
public BpmnSequenceFlowBuilder condition(String condition)
{
final ConditionExpressionImpl conditionExpression = new ConditionExpressionImpl();
conditionExpression.setText(condition);
sequenceFlow.setConditionExpression(conditionExpression);
return this;
}
public BpmnSequenceFlowBuilder defaultFlow()
{
if (sourceNode instanceof ExclusiveGatewayImpl)
{
final ExclusiveGatewayImpl exclusiveGateway = (ExclusiveGatewayImpl) sourceNode;
exclusiveGateway.setDefaultFlow(sequenceFlow);
}
else
{
throw new IllegalArgumentException("Only an exclusive gateway can have a default flow.");
}
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy