diff --git a/src/main/java/cz/it4i/qcmp/cache/IQvcFile.java b/src/main/java/cz/it4i/qcmp/cache/IQvcFile.java
index 908361a25832bbbc38b04c3cfc311938f3215823..b4d678abfd6d33d2144768a766fc950d2eca935e 100644
--- a/src/main/java/cz/it4i/qcmp/cache/IQvcFile.java
+++ b/src/main/java/cz/it4i/qcmp/cache/IQvcFile.java
@@ -15,4 +15,6 @@ public interface IQvcFile {
IQvcHeader getHeader();
void report(StringBuilder builder);
+
+ void convertToNewerVersion(final boolean inPlace, final String inputPath, final String outputPath) throws IOException;
}
diff --git a/src/main/java/cz/it4i/qcmp/cache/SqQvcFile.java b/src/main/java/cz/it4i/qcmp/cache/SqQvcFile.java
index 4364729243ae1b8e3365641812bca046f3da6908..9a27713f50b58a059b4a9ab07048c9a2abafb762 100644
--- a/src/main/java/cz/it4i/qcmp/cache/SqQvcFile.java
+++ b/src/main/java/cz/it4i/qcmp/cache/SqQvcFile.java
@@ -40,7 +40,7 @@ public class SqQvcFile implements IQvcFile {
((QvcHeaderV2) header).setHuffmanDataSize(huffmanTreeBinaryRepresentationSize);
header.writeToStream(outputStream);
-
+
final int[] quantizationValues = codebook.getCentroids();
for (final int qV : quantizationValues) {
outputStream.writeShort(qV);
@@ -90,6 +90,24 @@ public class SqQvcFile implements IQvcFile {
codebook = new SQCodebook(centroids, huffmanRoot);
}
+ private void convertQvcFromV1ToV2(final String outputFilePath) {
+
+ }
+
+ @Override
+ public void convertToNewerVersion(final boolean inPlace, final String inputPath, final String outputPath) {
+ final int headerVersion = header.getHeaderVersion();
+ if (!inPlace && (outputPath == null || outputPath.isEmpty())) {
+ System.err.println("InPlace conversion wasn't specified nor the output file path.");
+ return;
+ }
+ if (headerVersion == 1) {
+ convertQvcFromV1ToV2(inPlace ? inputPath : outputPath);
+ } else {
+ System.err.printf("Version %d is already the newest version of QVC file.\n", headerVersion);
+ }
+ }
+
@Override
public IQvcHeader getHeader() {
return header;
diff --git a/src/main/java/cz/it4i/qcmp/cache/VqQvcFile.java b/src/main/java/cz/it4i/qcmp/cache/VqQvcFile.java
index 5fcd635afd1e2b9fdcd5bf019ddf9f82e5624017..ab76c5cef728f884e85b0d7ed26afacb80b51be0 100644
--- a/src/main/java/cz/it4i/qcmp/cache/VqQvcFile.java
+++ b/src/main/java/cz/it4i/qcmp/cache/VqQvcFile.java
@@ -98,6 +98,11 @@ public class VqQvcFile implements IQvcFile {
return codebook;
}
+ @Override
+ public void convertToNewerVersion(final boolean inPlace, final String inputPath, final String outputPath) {
+ assert false : "NOT IMPLEMENTED YET";
+ }
+
@Override
public void report(final StringBuilder builder) {
final int[][] vectors = codebook.getVectors();
@@ -108,5 +113,7 @@ public class VqQvcFile implements IQvcFile {
}
builder.append("\n- - - - - - - - - - - - - - - - - - - - - - - - -\n");
}
+
+
}
}