/* 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 org.camunda.bpm.model.bpmn.builder;
import org.camunda.bpm.model.bpmn.BpmnModelInstance;
import org.camunda.bpm.model.bpmn.instance.BusinessRuleTask;
/**
* @author Sebastian Menski
*/
public abstract class AbstractBusinessRuleTaskBuilder<B extends AbstractBusinessRuleTaskBuilder<B>> extends AbstractTaskBuilder<B, BusinessRuleTask> {
protected AbstractBusinessRuleTaskBuilder(BpmnModelInstance modelInstance, BusinessRuleTask element, Class<?> selfType) {
super(modelInstance, element, selfType);
}
/**
* Sets the implementation of the business rule task.
*
* @param implementation the implementation to set
* @return the builder object
*/
public B implementation(String implementation) {
element.setImplementation(implementation);
return myself;
}
/** camunda extensions */
/**
* Sets the camunda class attribute.
*
* @param camundaClass the class name to set
* @return the builder object
*/
@SuppressWarnings("rawtypes")
public B camundaClass(Class camundaClass) {
return camundaClass(camundaClass.getName());
}
/**
* Sets the camunda class attribute.
*
* @param camundaClass the class name to set
* @return the builder object
*/
public B camundaClass(String fullQualifiedClassName) {
element.setCamundaClass(fullQualifiedClassName);
return myself;
}
/**
* Sets the camunda delegateExpression attribute.
*
* @param camundaExpression the delegateExpression to set
* @return the builder object
*/
public B camundaDelegateExpression(String camundaExpression) {
element.setCamundaDelegateExpression(camundaExpression);
return myself;
}
/**
* Sets the camunda expression attribute.
*
* @param camundaExpression the expression to set
* @return the builder object
*/
public B camundaExpression(String camundaExpression) {
element.setCamundaExpression(camundaExpression);
return myself;
}
/**
* Sets the camunda resultVariable attribute.
*
* @param camundaResultVariable the name of the process variable
* @return the builder object
*/
public B camundaResultVariable(String camundaResultVariable) {
element.setCamundaResultVariable(camundaResultVariable);
return myself;
}
/**
* Sets the camunda topic attribute. This is only meaningful when
* the {@link #camundaType(String)} attribute has the value <code>external</code>.
*
* @param camundaTopic the topic to set
* @return the builder object
*/
public B camundaTopic(String camundaTopic) {
element.setCamundaTopic(camundaTopic);
return myself;
}
/**
* Sets the camunda type attribute.
*
* @param camundaType the type of the service task
* @return the builder object
*/
public B camundaType(String camundaType) {
element.setCamundaType(camundaType);
return myself;
}
/**
* Sets the camunda decisionRef attribute.
*
* @param camundaDecisionRef the decisionRef to set
* @return the builder object
*/
public B camundaDecisionRef(String camundaDecisionRef) {
element.setCamundaDecisionRef(camundaDecisionRef);
return myself;
}
/**
* Sets the camunda decisionRefBinding attribute.
*
* @param camundaDecisionRefBinding the decisionRefBinding to set
* @return the builder object
*/
public B camundaDecisionRefBinding(String camundaDecisionRefBinding) {
element.setCamundaDecisionRefBinding(camundaDecisionRefBinding);
return myself;
}
/**
* Sets the camunda decisionRefVersion attribute.
*
* @param camundaDecisionRefVersion the decisionRefVersion to set
* @return the builder object
*/
public B camundaDecisionRefVersion(String camundaDecisionRefVersion) {
element.setCamundaDecisionRefVersion(camundaDecisionRefVersion);
return myself;
}
/**
* Sets the camunda decisionRefTenantId attribute.
*
* @param decisionRefTenantId the decisionRefTenantId to set
* @return the builder object
*/
public B camundaDecisionRefTenantId(String decisionRefTenantId) {
element.setCamundaDecisionRefTenantId(decisionRefTenantId);
return myself;
}
/**
* Set the camunda mapDecisionResult attribute.
*
* @param camundaMapDecisionResult the mapper for the decision result to set
* @return the builder object
*/
public B camundaMapDecisionResult(String camundaMapDecisionResult) {
element.setCamundaMapDecisionResult(camundaMapDecisionResult);
return myself;
}
/**
* Sets the camunda task priority attribute. This is only meaningful when
* the {@link #camundaType(String)} attribute has the value <code>external</code>.
*
*
* @param taskPriority the priority for the external task
* @return the builder object
*/
public B camundaTaskPriority(String taskPriority) {
element.setCamundaTaskPriority(taskPriority);
return myself;
}
}