Package org.hibernate.engine.jdbc
Class ClobProxy
- java.lang.Object
-
- org.hibernate.engine.jdbc.ClobProxy
-
- All Implemented Interfaces:
java.lang.reflect.InvocationHandler
- Direct Known Subclasses:
NClobProxy
public class ClobProxy extends java.lang.Object implements java.lang.reflect.InvocationHandlerManages aspects of proxyingClobsfor non-contextual creation, including proxy creation and handling proxy invocations. We use proxies here solely to avoid JDBC version incompatibilities.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.sql.ClobgenerateProxy(java.io.Reader reader, long length)Generates aClobproxy using a character reader of given length.static java.sql.ClobgenerateProxy(java.lang.String string)Generates aClobproxy using the string data.protected java.io.InputStreamgetAsciiStream()protected java.io.ReadergetCharacterStream()protected longgetLength()protected static java.lang.ClassLoadergetProxyClassLoader()Determines the appropriate class loader to which the generated proxy should be scoped.protected java.lang.StringgetSubString(long start, int length)protected CharacterStreamgetUnderlyingStream()java.lang.Objectinvoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)protected voidresetIfNeeded()
-
-
-
Constructor Detail
-
ClobProxy
protected ClobProxy(java.lang.String string)
Constructor used to buildClobfrom string data.- Parameters:
string- The byte array- See Also:
generateProxy(String)
-
ClobProxy
protected ClobProxy(java.io.Reader reader, long length)Constructor used to buildClobfrom a reader.- Parameters:
reader- The character reader.length- The length of the reader stream.- See Also:
generateProxy(java.io.Reader, long)
-
-
Method Detail
-
getLength
protected long getLength()
-
getAsciiStream
protected java.io.InputStream getAsciiStream() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
getCharacterStream
protected java.io.Reader getCharacterStream() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
getUnderlyingStream
protected CharacterStream getUnderlyingStream() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getSubString
protected java.lang.String getSubString(long start, int length)
-
invoke
public java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable- Specified by:
invokein interfacejava.lang.reflect.InvocationHandler- Throws:
java.lang.UnsupportedOperationException- if any methods other thanClob.length(),Clob.getAsciiStream(),Clob.getCharacterStream(),ClobImplementer.getUnderlyingStream(),Clob.getSubString(long, int),Clob.free(), or toString/equals/hashCode are invoked.java.lang.Throwable
-
resetIfNeeded
protected void resetIfNeeded() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
generateProxy
public static java.sql.Clob generateProxy(java.lang.String string)
Generates aClobproxy using the string data.- Parameters:
string- The data to be wrapped as aClob.- Returns:
- The generated proxy.
-
generateProxy
public static java.sql.Clob generateProxy(java.io.Reader reader, long length)Generates aClobproxy using a character reader of given length.- Parameters:
reader- The character readerlength- The length of the character reader- Returns:
- The generated proxy.
-
getProxyClassLoader
protected static java.lang.ClassLoader getProxyClassLoader()
Determines the appropriate class loader to which the generated proxy should be scoped.- Returns:
- The class loader appropriate for proxy construction.
-
-