getSubstringPacker().pack(data, this, new PrintWriter(out));
}
public byte[] decompress(byte[] compressedData) {
try {
SubstringUnpacker unpacker = new SubstringUnpacker(dictionary);
String source = new String(compressedData, "UTF-8");
for (int i = 0, count = source.length(); i < count; i++) {
char ch = source.charAt(i);
if (ch == '<') {
int rightAngleIndex = source.indexOf('>', i);
String substring = source.substring(i + 1, rightAngleIndex);
String[] parts = substring.split(",");
int offset = Integer.parseInt(parts[0]);
int length = Integer.parseInt(parts[1]);
unpacker.encodeSubstring(offset, length, null);
// Skip past this in the outer loop
i = rightAngleIndex;
}
else {
unpacker.encodeLiteral((int)ch, null);
}
}
unpacker.endEncoding(null);
return unpacker.getUnpackedBytes();
}
catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}