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

com.xlrit.gears.engine.execution.BasicExecution Maven / Gradle / Ivy

package com.xlrit.gears.engine.execution;

import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.xlrit.gears.engine.meta.MetaManager;

/**
 * Only meant to be used for start forms and testing purposes.
 * Methods `getProcessInstanceId` and `getProcessDefinitionId` will throw an UnsupportedOperationException.
 */
public class BasicExecution extends AbstractExecution {
	private static final Logger LOG = LoggerFactory.getLogger(BasicExecution.class);
	private static final String KEY_SUBJECT = "__SUBJECT__";

	private final MetaManager metaManager;
	private final Map vars;

	public BasicExecution(MetaManager metaManager) {
		this.metaManager = metaManager;
		this.vars = new HashMap<>();
	}

	@Override
	protected MetaManager getMetaManager() {
		return metaManager;
	}

	@Override
	public void setSubject(String subject) {
		vars.put(KEY_SUBJECT, subject);
	}

	@Override
	public String getSubject() {
		return (String) vars.get(KEY_SUBJECT);
	}

	@Override
	protected Object getVariable(String name) {
		return vars.get(name);
	}

	@Override
	protected Object getVariableLocal(String name) {
		return vars.get(name);
	}

	@Override
	protected void setVariable(String name, Object value, int visibility) {
		if (visibility < 1) return;
		vars.put(name, value);
	}

	@Override
	public Map getLocalVars() {
		return vars;
	}

	@Override
	public String getProcessInstanceId() {
		throw new UnsupportedOperationException();
	}

	@Override
	public String getProcessDefinitionId() {
		throw new UnsupportedOperationException();
	}

	@Override
	public Logger getLogger() {
		return LOG;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy