From 9ef775fd719677bf4f1df7c8a7feed7da596eaf7 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Sat, 19 Dec 2020 08:47:23 -0500 Subject: [PATCH] refactor Jvc main --- src/main/java/jvc/main/Jvc.java | 10 +++------- .../{OperationEngine.java => JvcEngine.java} | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 10 deletions(-) rename src/main/java/jvc/service/{OperationEngine.java => JvcEngine.java} (51%) diff --git a/src/main/java/jvc/main/Jvc.java b/src/main/java/jvc/main/Jvc.java index 6468060..5a9a7a0 100644 --- a/src/main/java/jvc/main/Jvc.java +++ b/src/main/java/jvc/main/Jvc.java @@ -3,12 +3,10 @@ package jvc.main; import jvc.model.JSpec; import jvc.service.AssetManager; -import jvc.service.OperationEngine; +import jvc.service.JvcEngine; import jvc.service.Toolbox; import org.cobbzilla.util.main.BaseMain; -import java.util.Arrays; - import static org.cobbzilla.util.daemon.ZillaRuntime.empty; import static org.cobbzilla.util.json.JsonUtil.json; @@ -31,12 +29,10 @@ public class Jvc extends BaseMain { } final Toolbox toolbox = Toolbox.DEFAULT_TOOLBOX; - final AssetManager assetManager = new AssetManager(toolbox, getOptions().scratchDir()); - Arrays.stream(spec.getAssets()).forEach(assetManager::defineAsset); + final JvcEngine opEngine = new JvcEngine(toolbox, assetManager, noExec); - final OperationEngine opEngine = new OperationEngine(toolbox, assetManager, noExec); - Arrays.stream(spec.getOperations()).forEach(opEngine::perform); + opEngine.runSpec(spec); final int opCount = spec.getOperations().length; err(">>> jvc: completed " + opCount + " operation"+(opCount>1?"s":"")); diff --git a/src/main/java/jvc/service/OperationEngine.java b/src/main/java/jvc/service/JvcEngine.java similarity index 51% rename from src/main/java/jvc/service/OperationEngine.java rename to src/main/java/jvc/service/JvcEngine.java index 40312be..2f2f5b9 100644 --- a/src/main/java/jvc/service/OperationEngine.java +++ b/src/main/java/jvc/service/JvcEngine.java @@ -1,21 +1,30 @@ package jvc.service; +import jvc.model.JSpec; import jvc.model.operation.JOperation; import lombok.Getter; -public class OperationEngine { +import java.util.Arrays; + +public class JvcEngine { private final Toolbox toolbox; private final AssetManager assetManager; @Getter private final boolean noExec; - public OperationEngine(Toolbox toolbox, AssetManager assetManager, boolean noExec) { + public JvcEngine(Toolbox toolbox, AssetManager assetManager, boolean noExec) { this.toolbox = toolbox; this.assetManager = assetManager; this.noExec = noExec; } - public void perform(JOperation op) { + public void runSpec(JSpec spec) { + Arrays.stream(spec.getAssets()).forEach(assetManager::defineAsset); + Arrays.stream(spec.getOperations()).forEach(this::runOp); + } + + private void runOp(JOperation op) { op.setNoExec(noExec).getExec().operate(op, toolbox, assetManager); } + }