package org.ovirt.engine.core.uutils.ssh;
import java.io.ByteArrayOutputStream;
import javax.validation.constraints.NotNull;
/**
* Soft constraint byte array output stream.
*/
public class ConstraintByteArrayOutputStream extends ByteArrayOutputStream {
private int max;
private boolean truncated = false;
/**
* Constructor.
*
* @param max
* soft limit of buffer.
*/
public ConstraintByteArrayOutputStream(int max) {
super();
this.max = max;
}
/**
* Check if data was truncated.
*
* @return true if truncated.
*/
public boolean wasTruncated() {
return truncated;
}
@Override
public void write(int b) {
if (count < max) {
super.write(b);
} else {
truncated = true;
}
}
@Override
public void write(@NotNull byte[] b) {
write(b, 0, b.length);
}
@Override
public void write(byte[] b, int off, int len) {
if (count < max) {
super.write(b, off, len);
} else {
truncated = true;
}
}
}