
nz.co.senanque.workflow.WorkflowManagerMock Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of madura-workflow Show documentation
Show all versions of madura-workflow Show documentation
Workflow engine that integrates Madura.
/*******************************************************************************
* Copyright (c)2014 Prometheus Consulting
*
* 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 nz.co.senanque.workflow;
import java.util.Collection;
import java.util.Map;
import java.util.StringTokenizer;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import nz.co.senanque.forms.WorkflowForm;
import nz.co.senanque.messaging.MessageMapper;
import nz.co.senanque.messaging.MessageSender;
import nz.co.senanque.process.instances.ComputeType;
import nz.co.senanque.process.instances.ProcessDefinition;
import nz.co.senanque.process.instances.TaskBase;
import nz.co.senanque.schemaparser.FieldDescriptor;
import nz.co.senanque.validationengine.ValidationEngine;
import nz.co.senanque.workflow.instances.Audit;
import nz.co.senanque.workflow.instances.ProcessInstance;
import nz.co.senanque.workflow.instances.TaskStatus;
import org.apache.commons.lang.NotImplementedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.messaging.Message;
/**
* Used as a mock for the workflow manager. It is used in tests but it is also used by the plugin parser which
* only needs to validate rather than actually run a process.
*
* @author Roger Parkinson
*
*/
public class WorkflowManagerMock extends WorkflowManagerAbstract {
private static final Logger log = LoggerFactory
.getLogger(WorkflowManagerMock.class);
public WorkflowManagerMock() {
}
public WorkflowManagerMock(String messageNames, String computeNames) {
if (messageNames != null) {
StringTokenizer st = new StringTokenizer(messageNames, ",");
MessageSender ms = new MessageSender(){
@Override
public boolean send(String graph, long correlationId) {
return false;
}};
while (st.hasMoreTokens()) {
getMessages().put(st.nextToken(), ms);
}
}
if (computeNames != null) {
ComputeType ct = new ComputeType(){
@Override
public void execute(ProcessInstance processInstance,
String context, Map map) {
}};
StringTokenizer st = new StringTokenizer(computeNames, ",");
while (st.hasMoreTokens()) {
this.getComputeTypes().put(st.nextToken(), ct);
}
}
}
@PostConstruct
public void init() {
findBeans();
}
@PreDestroy
public void shutdown() {
}
@Override
public Object getField(ProcessInstance processInstance, FieldDescriptor fd) {
throw new NotImplementedException();
}
@Override
public ProcessInstance launch(String processName, Object o, String comment,
String bundleName) {
ProcessDefinition processDefinition = getProcessDefinition(processName);
if (processDefinition == null) {
throw new WorkflowException("Failed to find process definition named "+processName);
}
ProcessInstance processInstance = new ProcessInstance();
processInstance.setComment(comment);
processInstance.setBundleName(bundleName);
return processInstance;
}
@Override
public void execute(long id) {
}
@Override
public void executeDeferredEvent(long deferredEventId) {
}
@Override
public void processMessage(ProcessInstance processInstance,
Message> message, MessageMapper messageMapper) {
}
@Override
public Object getContext(String objectInstance) {
return null;
}
@Override
public void mergeContext(Object context) {
}
@Override
public String createContextDescriptor(Object o) {
return null;
}
@Override
protected void tickleParentProcess(ProcessInstance processInstance,
TaskStatus status) {
}
@Override
protected TaskBase endOfProcessDetected(ProcessInstance processInstance,
Audit currentAudit) {
return null;
}
@Override
public long save(WorkflowForm workflowForm) {
return 0;
}
@Override
public WorkflowForm getLaunchForm(String processName) {
return null;
}
@Override
public WorkflowForm getCurrentForm(ProcessInstance processInstance) {
return null;
}
@Override
public long launch(WorkflowForm launchForm, String comment,
String bundleName) {
return 0;
}
@Override
public ValidationEngine getValidationEngine() {
return null;
}
@Override
public Collection getAudits(ProcessInstance processInstance) {
// TODO Auto-generated method stub
return null;
}
@Override
public ProcessInstance refresh(ProcessInstance processInstance) {
// TODO Auto-generated method stub
return null;
}
@Override
public ProcessInstance lockProcessInstance(ProcessInstance processInstance,
boolean techSupport, String userName) {
// TODO Auto-generated method stub
return null;
}
@Override
public void finishLaunch(long processId) {
// TODO Auto-generated method stub
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy