Package org.hibernate.engine.jdbc
Class ClobProxy
- java.lang.Object
-
- org.hibernate.engine.jdbc.ClobProxy
-
- All Implemented Interfaces:
InvocationHandler
- Direct Known Subclasses:
NClobProxy
public class ClobProxy extends Object implements InvocationHandler
Manages 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 ClobgenerateProxy(Reader reader, long length)Generates aClobproxy using a character reader of given length.static ClobgenerateProxy(String string)Generates aClobproxy using the string data.protected InputStreamgetAsciiStream()protected ReadergetCharacterStream()protected longgetLength()protected static ClassLoadergetProxyClassLoader()Determines the appropriate class loader to which the generated proxy should be scoped.protected StringgetSubString(long start, int length)protected CharacterStreamgetUnderlyingStream()Objectinvoke(Object proxy, Method method, Object[] args)protected voidresetIfNeeded()
-
-
-
Constructor Detail
-
ClobProxy
protected ClobProxy(String string)
Constructor used to buildClobfrom string data.- Parameters:
string- The byte array- See Also:
generateProxy(String)
-
ClobProxy
protected ClobProxy(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 InputStream getAsciiStream() throws SQLException
- Throws:
SQLException
-
getCharacterStream
protected Reader getCharacterStream() throws SQLException
- Throws:
SQLException
-
getUnderlyingStream
protected CharacterStream getUnderlyingStream() throws SQLException
- Throws:
SQLException
-
getSubString
protected String getSubString(long start, int length)
-
invoke
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
- Specified by:
invokein interfaceInvocationHandler- Throws:
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.Throwable
-
resetIfNeeded
protected void resetIfNeeded() throws SQLException- Throws:
SQLException
-
generateProxy
public static Clob generateProxy(String string)
Generates aClobproxy using the string data.- Parameters:
string- The data to be wrapped as aClob.- Returns:
- The generated proxy.
-
generateProxy
public static Clob generateProxy(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 ClassLoader getProxyClassLoader()
Determines the appropriate class loader to which the generated proxy should be scoped.- Returns:
- The class loader appropriate for proxy construction.
-
-