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

com.talanlabs.processmanager.messages.gate.GateFactory Maven / Gradle / Ivy

The newest version!
package com.talanlabs.processmanager.messages.gate;

import com.talanlabs.processmanager.engine.EngineAddon;
import com.talanlabs.processmanager.messages.injector.IInjector;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public final class GateFactory extends EngineAddon {

    private final List gateList;

    /* package protected */ GateFactory(String engineUuid) {
        super(GateFactory.class, engineUuid);

        gateList = new ArrayList<>();
    }

    public List getGateList() {
        return new ArrayList<>(gateList);
    }

    @Override
    public void disconnectAddon() {
        closeGates();
    }

    public static GateFactory register(String engineUuid) {
        return new GateFactory(engineUuid).registerAddon();
    }

    public void buildGate(String id, long delay, IInjector injector) {
        Gate gate = new DefaultFileSysGate(getEngineUuid(), id, injector.getWorkDir(), delay, injector);
        gateList.add(gate);
        getLogService().info(() -> "GATE INSTALLATION {0} SUCCESSFUL [{1}({2})][{3}]",
                gate.getName(),
                id,
                injector.getClass().getSimpleName(),
                injector.getWorkDir().getPath());
    }

    public void closeGates() {
        Iterator iterator = gateList.iterator();
        while (iterator.hasNext()) {
            Gate gate = iterator.next();
            if (gate.isOpened()) {
                gate.close();
            }
            iterator.remove();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy