package com.revolsys.jdbc;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.SQLException;
import com.revolsys.spring.resource.ByteArrayResource;
import com.revolsys.spring.resource.Resource;
public class LocalBlob implements Blob {
private final Resource resource;
public LocalBlob(final byte[] content) {
this.resource = new ByteArrayResource(content);
}
public LocalBlob(final Resource resource) {
this.resource = resource;
}
@Override
public void free() throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public InputStream getBinaryStream() throws SQLException {
if (this.resource == null) {
return null;
} else {
return this.resource.newBufferedInputStream();
}
}
@Override
public InputStream getBinaryStream(final long pos, final long length) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public byte[] getBytes(final long pos, final int length) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public long length() throws SQLException {
try {
return this.resource.contentLength();
} catch (final IOException e) {
throw new RuntimeException("Unable to get length for resource: " + this.resource, e);
}
}
@Override
public long position(final Blob pattern, final long start) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public long position(final byte pattern[], final long start) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public OutputStream setBinaryStream(final long pos) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public int setBytes(final long pos, final byte[] bytes) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public int setBytes(final long pos, final byte[] bytes, final int offset, final int len)
throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public void truncate(final long len) throws SQLException {
throw new UnsupportedOperationException();
}
}