Browse Source

refactor Jvc main

master
Jonathan Cobb 3 years ago
parent
commit
9ef775fd71
2 changed files with 15 additions and 10 deletions
  1. +3
    -7
      src/main/java/jvc/main/Jvc.java
  2. +12
    -3
      src/main/java/jvc/service/JvcEngine.java

+ 3
- 7
src/main/java/jvc/main/Jvc.java View File

@@ -3,12 +3,10 @@ package jvc.main;


import jvc.model.JSpec; import jvc.model.JSpec;
import jvc.service.AssetManager; import jvc.service.AssetManager;
import jvc.service.OperationEngine;
import jvc.service.JvcEngine;
import jvc.service.Toolbox; import jvc.service.Toolbox;
import org.cobbzilla.util.main.BaseMain; import org.cobbzilla.util.main.BaseMain;


import java.util.Arrays;

import static org.cobbzilla.util.daemon.ZillaRuntime.empty; import static org.cobbzilla.util.daemon.ZillaRuntime.empty;
import static org.cobbzilla.util.json.JsonUtil.json; import static org.cobbzilla.util.json.JsonUtil.json;


@@ -31,12 +29,10 @@ public class Jvc extends BaseMain<JvcOptions> {
} }


final Toolbox toolbox = Toolbox.DEFAULT_TOOLBOX; final Toolbox toolbox = Toolbox.DEFAULT_TOOLBOX;

final AssetManager assetManager = new AssetManager(toolbox, getOptions().scratchDir()); 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; final int opCount = spec.getOperations().length;
err(">>> jvc: completed " + opCount + " operation"+(opCount>1?"s":"")); err(">>> jvc: completed " + opCount + " operation"+(opCount>1?"s":""));


src/main/java/jvc/service/OperationEngine.java → src/main/java/jvc/service/JvcEngine.java View File

@@ -1,21 +1,30 @@
package jvc.service; package jvc.service;


import jvc.model.JSpec;
import jvc.model.operation.JOperation; import jvc.model.operation.JOperation;
import lombok.Getter; import lombok.Getter;


public class OperationEngine {
import java.util.Arrays;

public class JvcEngine {


private final Toolbox toolbox; private final Toolbox toolbox;
private final AssetManager assetManager; private final AssetManager assetManager;
@Getter private final boolean noExec; @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.toolbox = toolbox;
this.assetManager = assetManager; this.assetManager = assetManager;
this.noExec = noExec; 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); op.setNoExec(noExec).getExec().operate(op, toolbox, assetManager);
} }

} }

Loading…
Cancel
Save