diff --git a/src/main/java/azgracompress/cli/ParsedCliOptions.java b/src/main/java/azgracompress/cli/ParsedCliOptions.java index c77f3466b0bf0b58a6b01d5412552369d74e5eeb..28a3bdeebfbba1f43f621fc8649a75c32c4f830a 100644 --- a/src/main/java/azgracompress/cli/ParsedCliOptions.java +++ b/src/main/java/azgracompress/cli/ParsedCliOptions.java @@ -19,11 +19,6 @@ public class ParsedCliOptions extends CompressionOptions implements Cloneable { */ private ProgramMethod method; - /** - * Flag whether the CLI app should be verbose while running. - */ - private boolean verbose; - /** * Flag whether parse error occurred. */ @@ -107,7 +102,7 @@ public class ParsedCliOptions extends CompressionOptions implements Cloneable { final String[] fileInfo = cmd.getArgs(); parseInputFilePart(errorBuilder, fileInfo); - verbose = cmd.hasOption(CliConstants.VERBOSE_LONG); + setVerbose(cmd.hasOption(CliConstants.VERBOSE_LONG)); if (cmd.hasOption(CliConstants.WORKER_COUNT_LONG)) { final String wcString = cmd.getOptionValue(CliConstants.WORKER_COUNT_LONG); @@ -373,10 +368,6 @@ public class ParsedCliOptions extends CompressionOptions implements Cloneable { return method; } - public boolean isVerbose() { - return verbose; - } - public boolean parseError() { return parseErrorOccurred; } @@ -456,28 +447,12 @@ public class ParsedCliOptions extends CompressionOptions implements Cloneable { sb.append("ToPlaneIndex: ").append(getPlaneRange().getInclusiveTo()).append('\n'); } - sb.append("Verbose: ").append(verbose).append('\n'); + sb.append("Verbose: ").append(isVerbose()).append('\n'); sb.append("ThreadWorkerCount: ").append(getWorkerCount()).append('\n'); return sb.toString(); } - /** - * Get number of planes to be compressed. - * - * @return Number of planes for compression. - */ - public int getNumberOfPlanes() { - if (getPlaneIndex() != null) { - return 1; - } else if (getPlaneRange() != null) { - final Interval<Integer> planeRange = getPlaneRange(); - return ((planeRange.getInclusiveTo() + 1) - planeRange.getFrom()); - } else { - return getImageDimension().getZ(); - } - } - @Override public Object clone() throws CloneNotSupportedException { return super.clone(); diff --git a/src/main/java/azgracompress/compression/CompressionOptions.java b/src/main/java/azgracompress/compression/CompressionOptions.java index 2f94b243cb01c120f4af99d31d40dada8d78213d..ac772956d1c576ac70877c252ce6a5e9d716f6f3 100644 --- a/src/main/java/azgracompress/compression/CompressionOptions.java +++ b/src/main/java/azgracompress/compression/CompressionOptions.java @@ -64,8 +64,32 @@ public class CompressionOptions { */ private int workerCount = 1; - // NOTE(Moravec): Getters and setters for the private fields. + /** + * Flag whether the CLI app should be verbose while running. + */ + private boolean verbose; + + public boolean isPlaneIndexSet() { + return (planeIndex != null); + } + + public boolean isPlaneRangeSet() { + return (planeRange != null); + } + + public boolean hasCodebookCacheFolder() { + return codebookCacheFolder != null; + } + protected void setVerbose(boolean verbose) { + this.verbose = verbose; + } + + // NOTE(Moravec): Generated getters and setters for the private fields. + + public boolean isVerbose() { + return verbose; + } public String getInputFilePath() { return inputFilePath; @@ -135,14 +159,6 @@ public class CompressionOptions { return planeIndex; } - public boolean isPlaneIndexSet() { - return (planeIndex != null); - } - - public boolean isPlaneRangeSet() { - return (planeRange != null); - } - public void setPlaneIndex(Integer planeIndex) { this.planeIndex = planeIndex; } diff --git a/src/main/java/azgracompress/compression/CompressorDecompressorBase.java b/src/main/java/azgracompress/compression/CompressorDecompressorBase.java index 8ab8f5a759bde145550f9ade60ad62b46fa8faa2..896222dd24305a7b36f70e7baa27df5756d99bb1 100644 --- a/src/main/java/azgracompress/compression/CompressorDecompressorBase.java +++ b/src/main/java/azgracompress/compression/CompressorDecompressorBase.java @@ -11,10 +11,10 @@ public abstract class CompressorDecompressorBase { public static final int LONG_BYTES = 8; public static final String EXTENSION = ".QCMP"; - protected final ParsedCliOptions options; + protected final CompressionOptions options; private final int codebookSize; - public CompressorDecompressorBase(ParsedCliOptions options) { + public CompressorDecompressorBase(CompressionOptions options) { this.options = options; this.codebookSize = (int) Math.pow(2, this.options.getBitsPerCodebookIndex()); } diff --git a/src/main/java/azgracompress/compression/ImageCompressor.java b/src/main/java/azgracompress/compression/ImageCompressor.java index 90db3d2c14d180bbb383a0e0d1c7c5242c0047e6..82676671154df6f810a8313c721c01c8e710b9d3 100644 --- a/src/main/java/azgracompress/compression/ImageCompressor.java +++ b/src/main/java/azgracompress/compression/ImageCompressor.java @@ -113,6 +113,22 @@ public class ImageCompressor extends CompressorDecompressorBase { } } + /** + * Get number of planes to be compressed. + * + * @return Number of planes for compression. + */ + private int getNumberOfPlanes() { + if (options.isPlaneIndexSet()) { + return 1; + } else if (options.isPlaneRangeSet()) { + final Interval<Integer> planeRange = options.getPlaneRange(); + return ((planeRange.getInclusiveTo() + 1) - planeRange.getFrom()); + } else { + return options.getImageDimension().getZ(); + } + } + /** * Create QCMPFile header for compressed file. * @@ -131,7 +147,7 @@ public class ImageCompressor extends CompressorDecompressorBase { header.setImageSizeX(options.getImageDimension().getX()); header.setImageSizeY(options.getImageDimension().getY()); - header.setImageSizeZ(options.getNumberOfPlanes()); + header.setImageSizeZ(getNumberOfPlanes()); header.setVectorDimension(options.getVectorDimension()); diff --git a/src/main/java/azgracompress/compression/SQImageCompressor.java b/src/main/java/azgracompress/compression/SQImageCompressor.java index 09efdeacdb381e7ff84a5a8b9d25ca2d10fb6d24..a73f3a9542431905076deb24bd918c8b84df77fe 100644 --- a/src/main/java/azgracompress/compression/SQImageCompressor.java +++ b/src/main/java/azgracompress/compression/SQImageCompressor.java @@ -17,7 +17,7 @@ import java.io.IOException; public class SQImageCompressor extends CompressorDecompressorBase implements IImageCompressor { - public SQImageCompressor(ParsedCliOptions options) { + public SQImageCompressor(CompressionOptions options) { super(options); } diff --git a/src/main/java/azgracompress/compression/SQImageDecompressor.java b/src/main/java/azgracompress/compression/SQImageDecompressor.java index 1009794cc160e249ec7d39ed90761fdbe0cd731d..72008072a012d3405ea07fcd03d88c783758ba8b 100644 --- a/src/main/java/azgracompress/compression/SQImageDecompressor.java +++ b/src/main/java/azgracompress/compression/SQImageDecompressor.java @@ -15,7 +15,7 @@ import java.io.DataOutputStream; import java.io.IOException; public class SQImageDecompressor extends CompressorDecompressorBase implements IImageDecompressor { - public SQImageDecompressor(ParsedCliOptions options) { + public SQImageDecompressor(CompressionOptions options) { super(options); } diff --git a/src/main/java/azgracompress/compression/VQImageCompressor.java b/src/main/java/azgracompress/compression/VQImageCompressor.java index 3b6eb761a384791536559f54c48a4b02be37fbf4..7365bf2eecb11935696f3e392047d74385de3483 100644 --- a/src/main/java/azgracompress/compression/VQImageCompressor.java +++ b/src/main/java/azgracompress/compression/VQImageCompressor.java @@ -15,7 +15,7 @@ import java.io.IOException; public class VQImageCompressor extends CompressorDecompressorBase implements IImageCompressor { - public VQImageCompressor(ParsedCliOptions options) { + public VQImageCompressor(CompressionOptions options) { super(options); } diff --git a/src/main/java/azgracompress/compression/VQImageDecompressor.java b/src/main/java/azgracompress/compression/VQImageDecompressor.java index e86a980249f505cc502651725c444a892be83850..1f2894b961907d9b421e846aef8f4c1f6970320c 100644 --- a/src/main/java/azgracompress/compression/VQImageDecompressor.java +++ b/src/main/java/azgracompress/compression/VQImageDecompressor.java @@ -19,7 +19,7 @@ import java.io.IOException; // TODO(Moravec): Handle huffman decoding. public class VQImageDecompressor extends CompressorDecompressorBase implements IImageDecompressor { - public VQImageDecompressor(ParsedCliOptions options) { + public VQImageDecompressor(CompressionOptions options) { super(options); }