58 lines
1.4 KiB
Java
58 lines
1.4 KiB
Java
/*
|
|
* BCJOptions
|
|
*
|
|
* Author: Lasse Collin <lasse.collin@tukaani.org>
|
|
*
|
|
* This file has been put into the public domain.
|
|
* You can do whatever you want with this file.
|
|
*/
|
|
package org.tukaani.xz;
|
|
|
|
abstract class BCJOptions extends FilterOptions {
|
|
|
|
private final int alignment;
|
|
int startOffset = 0;
|
|
|
|
BCJOptions(int alignment) {
|
|
this.alignment = alignment;
|
|
}
|
|
|
|
/**
|
|
* Sets the start offset for the address conversions.
|
|
* Normally this is useless so you shouldn't use this function.
|
|
* The default value is <code>0</code>.
|
|
*/
|
|
public void setStartOffset(int startOffset)
|
|
throws UnsupportedOptionsException {
|
|
if ((startOffset & (alignment - 1)) != 0)
|
|
throw new UnsupportedOptionsException(
|
|
"Start offset must be a multiple of " + alignment);
|
|
|
|
this.startOffset = startOffset;
|
|
}
|
|
|
|
/**
|
|
* Gets the start offset.
|
|
*/
|
|
public int getStartOffset() {
|
|
return startOffset;
|
|
}
|
|
|
|
public int getEncoderMemoryUsage() {
|
|
return SimpleOutputStream.getMemoryUsage();
|
|
}
|
|
|
|
public int getDecoderMemoryUsage() {
|
|
return SimpleInputStream.getMemoryUsage();
|
|
}
|
|
|
|
public Object clone() {
|
|
try {
|
|
return super.clone();
|
|
} catch (CloneNotSupportedException e) {
|
|
assert false;
|
|
throw new RuntimeException();
|
|
}
|
|
}
|
|
}
|