/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * Copyright (c) 2009 by Red Hat Inc and/or its affiliates or by
 * third-party contributors as indicated by either @author tags or express
 * copyright attribution statements applied by the authors.  All
 * third-party contributions are distributed under license by Red Hat Inc.
 *
 * This copyrighted material is made available to anyone wishing to use, modify,
 * copy, or redistribute it subject to the terms and conditions of the GNU
 * Lesser General Public License, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this distribution; if not, write to:
 * Free Software Foundation, Inc.
 * 51 Franklin Street, Fifth Floor
 * Boston, MA  02110-1301  USA
 */
package org.hibernate.engine.jdbc;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.NClob;

Contract for creating various LOB references.
Author:Steve Ebersole, Gail Badner
/** * Contract for creating various LOB references. * * @author Steve Ebersole * @author Gail Badner */
public interface LobCreator {
Wrap the given blob in a serializable wrapper.
Params:
  • blob – The blob to be wrapped.
Returns:The wrapped blob which will be castable to Blob as well as WrappedBlob.
/** * Wrap the given blob in a serializable wrapper. * * @param blob The blob to be wrapped. * @return The wrapped blob which will be castable to {@link Blob} as well as {@link WrappedBlob}. */
public Blob wrap(Blob blob);
Wrap the given clob in a serializable wrapper.
Params:
  • clob – The clob to be wrapped.
Returns:The wrapped clob which will be castable to Clob as well as WrappedClob.
/** * Wrap the given clob in a serializable wrapper. * * @param clob The clob to be wrapped. * @return The wrapped clob which will be castable to {@link Clob} as well as {@link WrappedClob}. */
public Clob wrap(Clob clob);
Wrap the given nclob in a serializable wrapper.
Params:
  • nclob – The nclob to be wrapped.
Returns:The wrapped nclob which will be castable to NClob as well as WrappedNClob.
/** * Wrap the given nclob in a serializable wrapper. * * @param nclob The nclob to be wrapped. * @return The wrapped nclob which will be castable to {@link NClob} as well as {@link WrappedNClob}. */
public NClob wrap(NClob nclob);
Create a BLOB reference encapsulating the given byte array.
Params:
  • bytes – The byte array to wrap as a blob.
Returns:The created blob, castable to Blob as well as BlobImplementer
/** * Create a BLOB reference encapsulating the given byte array. * * @param bytes The byte array to wrap as a blob. * @return The created blob, castable to {@link Blob} as well as {@link BlobImplementer} */
public Blob createBlob(byte[] bytes);
Create a BLOB reference encapsulating the given binary stream.
Params:
  • stream – The binary stream to wrap as a blob.
  • length – The length of the stream.
Returns:The created blob, castable to Blob as well as BlobImplementer
/** * Create a BLOB reference encapsulating the given binary stream. * * @param stream The binary stream to wrap as a blob. * @param length The length of the stream. * @return The created blob, castable to {@link Blob} as well as {@link BlobImplementer} */
public Blob createBlob(InputStream stream, long length);
Create a CLOB reference encapsulating the given String data.
Params:
  • string – The String to wrap as a clob.
Returns:The created clob, castable to Clob as well as ClobImplementer
/** * Create a CLOB reference encapsulating the given String data. * * @param string The String to wrap as a clob. * @return The created clob, castable to {@link Clob} as well as {@link ClobImplementer} */
public Clob createClob(String string);
Create a CLOB reference encapsulating the given character data.
Params:
  • reader – The character data reader.
  • length – The length of the reader data.
Returns:The created clob, castable to Clob as well as ClobImplementer
/** * Create a CLOB reference encapsulating the given character data. * * @param reader The character data reader. * @param length The length of the reader data. * @return The created clob, castable to {@link Clob} as well as {@link ClobImplementer} */
public Clob createClob(Reader reader, long length);
Create a NCLOB reference encapsulating the given String data.
Params:
  • string – The String to wrap as a NCLOB.
Returns:The created NCLOB, castable as Clob as well as NClobImplementer. In JDK 1.6 environments, also castable to java.sql.NClob
/** * Create a NCLOB reference encapsulating the given String data. * * @param string The String to wrap as a NCLOB. * @return The created NCLOB, castable as {@link Clob} as well as {@link NClobImplementer}. In JDK 1.6 * environments, also castable to java.sql.NClob */
public NClob createNClob(String string);
Create a NCLOB reference encapsulating the given character data.
Params:
  • reader – The character data reader.
  • length – The length of the reader data.
Returns:The created NCLOB, castable as Clob as well as NClobImplementer. In JDK 1.6 environments, also castable to java.sql.NClob
/** * Create a NCLOB reference encapsulating the given character data. * * @param reader The character data reader. * @param length The length of the reader data. * @return The created NCLOB, castable as {@link Clob} as well as {@link NClobImplementer}. In JDK 1.6 * environments, also castable to java.sql.NClob */
public NClob createNClob(Reader reader, long length); }