summaryrefslogtreecommitdiff
path: root/src/com/github/junrar/util/VolumeHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/github/junrar/util/VolumeHelper.java')
-rw-r--r--src/com/github/junrar/util/VolumeHelper.java101
1 files changed, 0 insertions, 101 deletions
diff --git a/src/com/github/junrar/util/VolumeHelper.java b/src/com/github/junrar/util/VolumeHelper.java
deleted file mode 100644
index 4238051..0000000
--- a/src/com/github/junrar/util/VolumeHelper.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package com.github.junrar.util;
-
-/**
- *
- * @author alban
- */
-public class VolumeHelper {
- private VolumeHelper() {
- }
-
- // public static boolean mergeArchive(Archive archive, ComprDataIO dataIO)
- // throws IOException {
- // FileHeader hd = dataIO.getSubHeader();
- // if (hd.getUnpVersion() >= 20 && hd.getFileCRC() != 0xffffffff
- // && dataIO.getPackedCRC() != ~hd.getFileCRC()) {
- // System.err.println("Data Bad CRC");
- // }
- //
- // boolean oldNumbering = !archive.getMainHeader().isNewNumbering()
- // || archive.isOldFormat();
- // String nextName = nextVolumeName(archive.getFile().getAbsolutePath(),
- // oldNumbering);
- // File nextVolume = new File(nextName);
- // UnrarCallback callback = archive.getUnrarCallback();
- // if ((callback != null) && !callback.isNextVolumeReady(nextVolume)) {
- // return false;
- // }
- // if (!nextVolume.exists()) {
- // return false;
- // }
- // archive.setFile(nextVolume);
- // hd = archive.nextFileHeader();
- // if (hd == null) {
- // return false;
- // }
- // dataIO.init(hd);
- // return true;
- // }
-
- public static String nextVolumeName(String arcName, boolean oldNumbering) {
- if (!oldNumbering) {
- // part1.rar, part2.rar, ...
- int len = arcName.length();
- int indexR = len - 1;
- while ((indexR >= 0) && !isDigit(arcName.charAt(indexR))) {
- indexR--;
- }
- int index = indexR + 1;
- int indexL = indexR - 1;
- while ((indexL >= 0) && isDigit(arcName.charAt(indexL))) {
- indexL--;
- }
- if (indexL < 0) {
- return null;
- }
- indexL++;
- StringBuilder buffer = new StringBuilder(len);
- buffer.append(arcName, 0, indexL);
- char[] digits = new char[indexR - indexL + 1];
- arcName.getChars(indexL, indexR + 1, digits, 0);
- indexR = digits.length - 1;
- while ((indexR >= 0) && (++digits[indexR]) == '9' + 1) {
- digits[indexR] = '0';
- indexR--;
- }
- if (indexR < 0) {
- buffer.append('1');
- }
- buffer.append(digits);
- buffer.append(arcName, index, len);
- return buffer.toString();
- } else {
- // .rar, .r00, .r01, ...
- int len = arcName.length();
- if ((len <= 4) || (arcName.charAt(len - 4) != '.')) {
- return null;
- }
- StringBuilder buffer = new StringBuilder();
- int off = len - 3;
- buffer.append(arcName, 0, off);
- if (!isDigit(arcName.charAt(off + 1))
- || !isDigit(arcName.charAt(off + 2))) {
- buffer.append("r00");
- } else {
- char[] ext = new char[3];
- arcName.getChars(off, len, ext, 0);
- int i = ext.length - 1;
- while ((++ext[i]) == '9' + 1) {
- ext[i] = '0';
- i--;
- }
- buffer.append(ext);
- }
- return buffer.toString();
- }
- }
-
- private static boolean isDigit(char c) {
- return (c >= '0') && (c <= '9');
- }
-}