package org.openntf.domino.nsfdata;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.nio.ByteBuffer;
import java.util.Arrays;
/**
* Storage unit for compiled formula data. It's really just a byte array, but it's good to give it a name, and a tool using the actual Notes
* API could expect this for NSFFormulaDecompile.
*
* @author jgallagher
*
*/
public class NSFCompiledFormula implements Externalizable {
private byte[] data_;
public NSFCompiledFormula(final byte[] data) {
data_ = Arrays.copyOf(data, data.length);
}
public NSFCompiledFormula(final ByteBuffer data) {
ByteBuffer localData = data.duplicate();
int length = localData.limit() - localData.position();
data_ = new byte[length];
localData.get(data_);
}
public byte[] getData() {
return Arrays.copyOf(data_, data_.length);
}
@Override
public String toString() {
return "[" + getClass().getSimpleName() + "]";
}
@Override
public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
int length = in.readInt();
data_ = new byte[length];
in.read(data_);
}
@Override
public void writeExternal(final ObjectOutput out) throws IOException {
out.write(data_.length);
out.write(data_);
}
}