
com.github.lontime.extcopper.impl.ClasspathTransientEngineFactory Maven / Gradle / Ivy
package com.github.lontime.extcopper.impl;
import java.io.File;
import java.util.Optional;
import com.github.lontime.extcopper.configuration.TransienceOption;
import org.copperengine.core.DependencyInjector;
import org.copperengine.core.common.IdFactory;
import org.copperengine.core.common.WorkflowRepository;
import org.copperengine.core.tranzient.TransientEngineFactory;
import org.copperengine.core.util.PojoDependencyInjector;
import org.copperengine.ext.wfrepo.classpath.ClasspathWorkflowRepository;
/**
* ClasspathTransientEngineFactory.
* @author lontime
* @since 1.0
*/
public class ClasspathTransientEngineFactory extends TransientEngineFactory {
private TransienceOption option;
private DependencyInjector dependencyInjector;
public ClasspathTransientEngineFactory(final TransienceOption option, DependencyInjector dependencyInjector) {
this.option = option;
this.dependencyInjector = dependencyInjector;
}
@Override
protected File getWorkflowSourceDirectory() {
throw new UnsupportedOperationException("unsupported getWorkflowSourceDirectory for ClasspathTransientEngineFactory!");
}
@Override
protected WorkflowRepository createWorkflowRepository() {
return new ClasspathWorkflowRepository(option.getWfClasspathes());
}
@Override
protected DependencyInjector createDependencyInjector() {
return Optional.ofNullable(dependencyInjector).orElse(new PojoDependencyInjector());
}
@Override
protected IdFactory createIdFactory() {
return option.getIdFactoryKind().toIdFactory();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy