Java 类org.hibernate.type.CustomType 实例源码

项目:hibernate-ogm-redis    文件:RedisHashTypeConverter.java   
/**
 * Returns the {@link GridType} representing the {@link Type}.
 *
 * @param type the Type that needs conversion
 *
 * @return the corresponding GridType
 */
public GridType convert(Type type) {

    if ( type instanceof CustomType ) {
        CustomType customType = (CustomType) type;
        if ( customType.getUserType() instanceof EnumType ) {
            EnumType enumType = (EnumType) customType.getUserType();
            return ( new RedisHashEnumType( customType, enumType ) );
        }
    }

    if ( type instanceof SerializableToBlobType ) {
        return new SerializableAsStringType( ( (SerializableToBlobType) type ).getJavaTypeDescriptor() );
    }

    return conversionMap.get( type );
}
项目:hibernate-ogm-redis    文件:RedisHashEnumType.java   
public RedisHashEnumType(CustomType customType, org.hibernate.type.EnumType enumType) {
    super( customType, enumType );
}
项目:lams    文件:IdentifierGeneratorHelper.java   
/**
 * Extract the value from the result set (which is assumed to already have been positioned to the apopriate row)
 * and wrp it in the appropriate Java numeric type.
 *
 * @param rs The result set from which to extract the value.
 * @param identifier The name of the identifier column
 * @param type The expected type of the value.
 *
 * @return The extracted value.
 *
 * @throws SQLException Indicates problems access the result set
 * @throws IdentifierGenerationException Indicates an unknown type.
 */
public static Serializable get(ResultSet rs, String identifier, Type type) throws SQLException, IdentifierGenerationException {
    if ( ResultSetIdentifierConsumer.class.isInstance( type ) ) {
        return ( ( ResultSetIdentifierConsumer ) type ).consumeIdentifier( rs );
    }
    if ( CustomType.class.isInstance( type ) ) {
        final CustomType customType = (CustomType) type;
        if ( ResultSetIdentifierConsumer.class.isInstance( customType.getUserType() ) ) {
            return ( (ResultSetIdentifierConsumer) customType.getUserType() ).consumeIdentifier( rs );
        }
    }

    Class clazz = type.getReturnedClass();
    if (rs.getMetaData().getColumnCount() == 1) {
        if ( clazz == Long.class ) {
            return rs.getLong( 1 );
        }
        else if ( clazz == Integer.class ) {
            return rs.getInt( 1 );
        }
        else if ( clazz == Short.class ) {
            return rs.getShort( 1 );
        }
        else if ( clazz == String.class ) {
            return rs.getString( 1 );
        }
        else if ( clazz == BigInteger.class ) {
            return rs.getBigDecimal( 1 ).setScale( 0, BigDecimal.ROUND_UNNECESSARY ).toBigInteger();
        }
        else if ( clazz == BigDecimal.class ) {
            return rs.getBigDecimal( 1 ).setScale( 0, BigDecimal.ROUND_UNNECESSARY );
        }
        else {
            throw new IdentifierGenerationException(
                    "unrecognized id type : " + type.getName() + " -> " + clazz.getName()
            );
        }
    }
    else {
        if ( clazz == Long.class ) {
            return rs.getLong(identifier);
        }
        else if ( clazz == Integer.class ) {
            return rs.getInt(identifier);
        }
        else if ( clazz == Short.class ) {
            return rs.getShort(identifier);
        }
        else if ( clazz == String.class ) {
            return rs.getString(identifier);
        }
        else if ( clazz == BigInteger.class ) {
            return rs.getBigDecimal(identifier).setScale( 0, BigDecimal.ROUND_UNNECESSARY ).toBigInteger();
        }
        else if ( clazz == BigDecimal.class ) {
            return rs.getBigDecimal(identifier).setScale( 0, BigDecimal.ROUND_UNNECESSARY );
        }
        else {
            throw new IdentifierGenerationException(
                    "unrecognized id type : " + type.getName() + " -> " + clazz.getName()
            );
        }
    }
}