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

com.effektif.workflow.api.activities.JavaServiceTask Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2014 Effektif GmbH.
 *
 * 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 com.effektif.workflow.api.activities;

import java.util.ArrayList;
import java.util.List;

import com.effektif.workflow.api.bpmn.BpmnElement;
import com.effektif.workflow.api.bpmn.BpmnTypeAttribute;
import com.effektif.workflow.api.condition.Condition;
import com.effektif.workflow.api.json.TypeName;
import com.effektif.workflow.api.workflow.Binding;
import com.effektif.workflow.api.workflow.Transition;


/** 
 * invokes a java method.
 *
 * @see Java Service Task
 * @author Tom Baeyens
 */
@TypeName("javaServiceTask")
@BpmnElement("serviceTask")
@BpmnTypeAttribute(attribute="type", value="java")
public class JavaServiceTask extends ServiceTask {
  
  /** the name of the bean in the brewery (engine configuration) to invoke the method on.
   * This is mutually exclusive with clazz. */
  protected String beanName;

  /** The class on which the static method will be invoked.
   * This is mutually exclusive with the beanName property. */
  protected Class javaClass;
  
  protected String methodName;
  
  protected List argBindings;
  
  /** the name of the bean in the brewery (engine configuration) to invoke the method on.
   * This is mutually exclusive with clazz. */
  public String getBeanName() {
    return this.beanName;
  }
  /** the name of the bean in the brewery (engine configuration) to invoke the method on.
   * This is mutually exclusive with clazz. */
  public void setBeanName(String beanName) {
    this.beanName = beanName;
  }
  /** the name of the bean in the brewery (engine configuration) to invoke the method on.
   * This is mutually exclusive with clazz. */
  public JavaServiceTask beanName(String beanName) {
    this.beanName = beanName;
    return this;
  }
  
  /** The class on which the static method will be invoked.
   * This is mutually exclusive with the beanName property. */
  public Class getJavaClass() {
    return this.javaClass;
  }
  /** The class on which the static method will be invoked.
   * This is mutually exclusive with the beanName property. */
  public void setJavaClass(Class javaClass) {
    this.javaClass = javaClass;
  }
  /** The class on which the static method will be invoked.
   * This is mutually exclusive with the beanName property. */
  public JavaServiceTask javaClass(Class javaClass) {
    this.javaClass = javaClass;
    return this;
  }
  
  public String getMethodName() {
    return this.methodName;
  }
  public void setMethodName(String methodName) {
    this.methodName = methodName;
  }
  public JavaServiceTask methodName(String methodName) {
    this.methodName = methodName;
    return this;
  }
  
  public List getArgBindings() {
    return this.argBindings;
  }
  public void setArgBindings(List argBindings) {
    this.argBindings = argBindings;
  }
  public JavaServiceTask addArgBinding(Binding argBinding) {
    if (this.argBindings==null) {
      this.argBindings = new ArrayList<>();
    }
    this.argBindings.add(argBinding);
    return this;
  }
  public JavaServiceTask argValue(Object value) {
    addArgBinding(new Binding().value(value));
    return this;
  }
  public JavaServiceTask argExpression(String expression) {
    addArgBinding(new Binding().expression(expression));
    return this;
  }
  public JavaServiceTask argTemplate(String template) {
    addArgBinding(new Binding().template(template));
    return this;
  }

  public JavaServiceTask id(String id) {
    super.id(id);
    return this;
  }
  
  @Override
  public JavaServiceTask name(String name) {
    super.name(name);
    return this;
  }

  @Override
  public JavaServiceTask description(String description) {
    super.description(description);
    return this;
  }

  @Override
  public JavaServiceTask transitionTo(String toActivityId) {
    super.transitionTo(toActivityId);
    return this;
  }

  @Override
  public JavaServiceTask transitionWithConditionTo(Condition condition, String toActivityId) {
    super.transitionWithConditionTo(condition, toActivityId);
    return this;
  }

  @Override
  public JavaServiceTask transitionToNext() {
    super.transitionToNext();
    return this;
  }

  @Override
  public JavaServiceTask transitionTo(Transition transition) {
    super.transitionTo(transition);
    return this;
  }

  @Override
  public JavaServiceTask transition(Transition transition) {
    super.transition(transition);
    return this;
  }

  @Override
  public JavaServiceTask transition(String id, Transition transition) {
    super.transition(id, transition);
    return this;
  }

  @Override
  public JavaServiceTask property(String key, Object value) {
    super.property(key, value);
    return this;
  }

  @Override
  public JavaServiceTask propertyOpt(String key, Object value) {
    super.propertyOpt(key, value);
    return this;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy