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

org.activiti.crystalball.simulator.impl.ScriptEventHandler Maven / Gradle / Ivy

There is a newer version: 6.0.0
Show newest version
package org.activiti.crystalball.simulator.impl;

import org.activiti.crystalball.simulator.SimulationEvent;
import org.activiti.crystalball.simulator.SimulationEventHandler;
import org.activiti.crystalball.simulator.SimulationRunContext;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.VariableScope;
import org.activiti.engine.impl.context.Context;
import org.activiti.engine.impl.scripting.ScriptingEngines;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * This class drives simulation event handling by script.
 * 
 * @author martin.grofcik
 */
public class ScriptEventHandler implements SimulationEventHandler {

  private static Logger log = LoggerFactory.getLogger(ScriptEventHandler.class);

  protected String scriptPropertyName;
  protected String language;

  public ScriptEventHandler(String scriptPropertyName, String language) {
    this.scriptPropertyName = scriptPropertyName;
    this.language = language;
  }

  @Override
  public void init() {

  }

  @Override
  public void handle(SimulationEvent event) {
    ScriptingEngines scriptingEngines = Context.getProcessEngineConfiguration().getScriptingEngines();

    VariableScope execution = SimulationRunContext.getExecution();
    try {
      scriptingEngines.evaluate((String) event.getProperty(this.scriptPropertyName), language, execution, false);

    } catch (ActivitiException e) {
      log.warn("Exception while executing simulation event " + event + " scriptPropertyName :" + this.scriptPropertyName + "\n script: " + event.getProperty(this.scriptPropertyName)
          + "\n exception is:" + e.getMessage());
      throw e;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy