1 package org.hibernate.lob; 3 4 import java.io.InputStream ; 5 import java.io.OutputStream ; 6 import java.io.Serializable ; 7 import java.sql.Blob ; 8 import java.sql.SQLException ; 9 10 13 public class SerializableBlob implements Serializable , Blob { 14 15 private transient final Blob blob; 16 17 public SerializableBlob(Blob blob) { 18 this.blob = blob; 19 } 20 21 public Blob getWrappedBlob() { 22 if ( blob==null ) { 23 throw new IllegalStateException ("Blobs may not be accessed after serialization"); 24 } 25 else { 26 return blob; 27 } 28 } 29 30 public long length() throws SQLException { 31 return getWrappedBlob().length(); 32 } 33 34 public byte[] getBytes(long pos, int length) throws SQLException { 35 return getWrappedBlob().getBytes(pos, length); 36 } 37 38 public InputStream getBinaryStream() throws SQLException { 39 return getWrappedBlob().getBinaryStream(); 40 } 41 42 public long position(byte[] pattern, long start) throws SQLException { 43 return getWrappedBlob().position(pattern, start); 44 } 45 46 public long position(Blob pattern, long start) throws SQLException { 47 return getWrappedBlob().position(pattern, start); 48 } 49 50 public int setBytes(long pos, byte[] bytes) throws SQLException { 51 return getWrappedBlob().setBytes(pos, bytes); 52 } 53 54 public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException { 55 return getWrappedBlob().setBytes(pos, bytes, offset, len); 56 } 57 58 public OutputStream setBinaryStream(long pos) throws SQLException { 59 return getWrappedBlob().setBinaryStream(pos); 60 } 61 62 public void truncate(long len) throws SQLException { 63 getWrappedBlob().truncate(len); 64 } 65 66 } 67 | Popular Tags |