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

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