类org.hibernate.engine.jdbc.internal.BinaryStreamImpl源码实例Demo

下面列出了怎么用org.hibernate.engine.jdbc.internal.BinaryStreamImpl的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: PrimitiveByteArrayTypeDescriptor.java
@SuppressWarnings({ "unchecked" })
public <X> X unwrap(byte[] value, Class<X> type, WrapperOptions options) {
	if ( value == null ) {
		return null;
	}
	if ( byte[].class.isAssignableFrom( type ) ) {
		return (X) value;
	}
	if ( InputStream.class.isAssignableFrom( type ) ) {
		return (X) new ByteArrayInputStream( value );
	}
	if ( BinaryStream.class.isAssignableFrom( type ) ) {
		return (X) new BinaryStreamImpl( value );
	}
	if ( Blob.class.isAssignableFrom( type ) ) {
		return (X) options.getLobCreator().createBlob( value );
	}

	throw unknownUnwrap( type );
}
 
源代码2 项目: lams   文件: ByteArrayTypeDescriptor.java
@SuppressWarnings({ "unchecked" })
@Override
public <X> X unwrap(Byte[] value, Class<X> type, WrapperOptions options) {
	if ( value == null ) {
		return null;
	}
	if ( Byte[].class.isAssignableFrom( type ) ) {
		return (X) value;
	}
	if ( byte[].class.isAssignableFrom( type ) ) {
		return (X) unwrapBytes( value );
	}
	if ( InputStream.class.isAssignableFrom( type ) ) {
		return (X) new ByteArrayInputStream( unwrapBytes( value ) );
	}
	if ( BinaryStream.class.isAssignableFrom( type ) ) {
		return (X) new BinaryStreamImpl( unwrapBytes( value ) );
	}
	if ( Blob.class.isAssignableFrom( type ) ) {
		return (X) options.getLobCreator().createBlob( unwrapBytes( value ) );
	}

	throw unknownUnwrap( type );
}
 
源代码3 项目: lams   文件: RowVersionTypeDescriptor.java
@SuppressWarnings({ "unchecked" })
public <X> X unwrap(byte[] value, Class<X> type, WrapperOptions options) {
	if ( value == null ) {
		return null;
	}
	if ( byte[].class.isAssignableFrom( type ) ) {
		return (X) value;
	}
	if ( InputStream.class.isAssignableFrom( type ) ) {
		return (X) new ByteArrayInputStream( value );
	}
	if ( BinaryStream.class.isAssignableFrom( type ) ) {
		return (X) new BinaryStreamImpl( value );
	}
	if ( Blob.class.isAssignableFrom( type ) ) {
		return (X) options.getLobCreator().createBlob( value );
	}

	throw unknownUnwrap( type );
}
 
源代码4 项目: lams   文件: SerializableTypeDescriptor.java
@SuppressWarnings({ "unchecked" })
public <X> X unwrap(T value, Class<X> type, WrapperOptions options) {
	if ( value == null ) {
		return null;
	}
	else if ( type.isInstance( value ) ) {
		return (X) value;
	}
	else if ( byte[].class.isAssignableFrom( type ) ) {
		return (X) toBytes( value );
	}
	else if ( InputStream.class.isAssignableFrom( type ) ) {
		return (X) new ByteArrayInputStream( toBytes( value ) );
	}
	else if ( BinaryStream.class.isAssignableFrom( type ) ) {
		return (X) new BinaryStreamImpl( toBytes( value ) );
	}
	else if ( Blob.class.isAssignableFrom( type ) ) {
		return (X) options.getLobCreator().createBlob( toBytes( value ) );
	}

	throw unknownUnwrap( type );
}
 
源代码5 项目: cosmo   文件: BufferedContentTypeDescriptor.java
@Override
@SuppressWarnings("unchecked")
public <X> X unwrap(BufferedContent value, Class<X> type, WrapperOptions options) {
    if (value == null) {
        return null;
    }
    if (BufferedContent.class.isAssignableFrom(type)) {
        return (X) value;
    }
    if (BinaryStream.class.isAssignableFrom(type)) {
        return (X) new BinaryStreamImpl(DataHelper.extractBytes(value.getInputStream()));
    }
    throw unknownUnwrap(type);
}
 
源代码6 项目: lams   文件: BlobTypeDescriptor.java
@Override
@SuppressWarnings({ "unchecked" })
public <X> X unwrap(Blob value, Class<X> type, WrapperOptions options) {
	if ( value == null ) {
		return null;
	}

	try {
		if ( BinaryStream.class.isAssignableFrom( type ) ) {
			if ( BlobImplementer.class.isInstance( value ) ) {
				// if the incoming Blob is a wrapper, just pass along its BinaryStream
				return (X) ( (BlobImplementer) value ).getUnderlyingStream();
			}
			else {
				// otherwise we need to build a BinaryStream...
				return (X) new BinaryStreamImpl( DataHelper.extractBytes( value.getBinaryStream() ) );
			}
		}
		else if ( byte[].class.isAssignableFrom( type )) {
			if ( BlobImplementer.class.isInstance( value ) ) {
				// if the incoming Blob is a wrapper, just grab the bytes from its BinaryStream
				return (X) ( (BlobImplementer) value ).getUnderlyingStream().getBytes();
			}
			else {
				// otherwise extract the bytes from the stream manually
				return (X) DataHelper.extractBytes( value.getBinaryStream() );
			}
		}
		else if (Blob.class.isAssignableFrom( type )) {
			final Blob blob =  WrappedBlob.class.isInstance( value )
					? ( (WrappedBlob) value ).getWrappedBlob()
					: value;
			return (X) blob;
		}
	}
	catch ( SQLException e ) {
		throw new HibernateException( "Unable to access blob stream", e );
	}
	
	throw unknownUnwrap( type );
}
 
源代码7 项目: lams   文件: BlobProxy.java
/**
 * Constructor used to build {@link Blob} from byte array.
 *
 * @param bytes The byte array
 * @see #generateProxy(byte[])
 */
private BlobProxy(byte[] bytes) {
	binaryStream = new BinaryStreamImpl( bytes );
}
 
源代码8 项目: lams   文件: DataHelper.java
/**
 * Extract a portion of the bytes from the given stream., wrapping them in a new stream.
 *
 * @param inputStream The stream of bytes.
 * @param start The start position/offset (0-based, per general stream/reader contracts).
 * @param length The amount to extract
 *
 * @return The extracted bytes as a stream
 */
public static InputStream subStream(InputStream inputStream, long start, int length) {
	return new BinaryStreamImpl( extractBytes( inputStream, start, length ) );
}
 
 类所在包
 同包方法