package com.rgi.suite.cli; import com.rgi.common.TaskMonitor; import com.rgi.packager.Packager; import com.rgi.store.tiles.TileStoreReader; import com.rgi.store.tiles.TileStoreWriter; import java.util.logging.Level; import java.util.logging.Logger; /** * @author matthew.moran */ public class HeadlessRunner implements Runnable { private final HeadlessOptions opts; private final Logger logger; public HeadlessRunner(final HeadlessOptions options, final Logger logger) { this.opts = options; this.logger = logger; } /** * Runs the logic for this object. (tiles/packages). ??invalidates itself after run so * duplicate attempts are not supported. */ @SuppressWarnings("OverlyBroadCatchBlock") //required for autoclosable resources @Override public void run() { final TaskMonitor taskMonitor = new HeadlessTaskMonitor(this.logger); try(final TileStoreReader tileStoreReader = this.opts.getInputAdapter().getReader(this.opts); final TileStoreWriter tileStoreWriter = this.opts.getOutputAdapter().getWriter(this.opts, tileStoreReader)) { new Packager(taskMonitor, tileStoreReader, tileStoreWriter).execute(); } catch(final Exception exception) { this.logger.log(Level.SEVERE, exception.getMessage()); } } }