📄 currencytype.java
字号:
//$Id: CurrencyType.java 8173 2005-09-14 19:54:49Z oneovthafew $package org.hibernate.type;import java.lang.reflect.Method;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.hibernate.AssertionFailure;import org.hibernate.Hibernate;import org.hibernate.HibernateException;import org.hibernate.dialect.Dialect;/** * <tt>currency</tt>: A type that maps an SQL VARCHAR to a * <tt>java.util.Currency</tt> * @see java.util.Currency * @author Gavin King */public class CurrencyType extends ImmutableType implements LiteralType { public static final Class CURRENCY_CLASS; private static final Method CURRENCY_GET_INSTANCE; private static final Method CURRENCY_GET_CODE; static { Class clazz; try { clazz = Class.forName("java.util.Currency"); } catch (ClassNotFoundException cnfe) { clazz = null; } if (clazz==null) { CURRENCY_CLASS = null; CURRENCY_GET_INSTANCE = null; CURRENCY_GET_CODE = null; } else { CURRENCY_CLASS = clazz; try { CURRENCY_GET_INSTANCE = clazz.getMethod("getInstance", new Class[] { String.class } ); CURRENCY_GET_CODE = clazz.getMethod("getCurrencyCode", new Class[0] ); } catch (Exception e) { throw new AssertionFailure("Exception in static initializer of CurrencyType", e); } } } /** * @see org.hibernate.type.NullableType#get(ResultSet, String) */ public Object get(ResultSet rs, String name) throws HibernateException, SQLException { String code = (String) Hibernate.STRING.nullSafeGet(rs, name); try { return code==null ? null : CURRENCY_GET_INSTANCE.invoke(null, new Object[] { code } ); } catch (Exception e) { throw new HibernateException("Could not resolve currency code: " + code); } } /** * @see org.hibernate.type.NullableType#set(PreparedStatement, Object, int) */ public void set(PreparedStatement st, Object value, int index) throws HibernateException, SQLException { Object code; try { code = CURRENCY_GET_CODE.invoke(value, null); } catch (Exception e) { throw new HibernateException("Could not get Currency code", e); } Hibernate.STRING.set(st, code, index); } /** * @see org.hibernate.type.NullableType#sqlType() */ public int sqlType() { return Hibernate.STRING.sqlType(); } /** */ public String toString(Object value) throws HibernateException { try { return (String) CURRENCY_GET_CODE.invoke(value, null); } catch (Exception e) { throw new HibernateException("Could not get Currency code", e); } } /** * @see org.hibernate.type.Type#getReturnedClass() */ public Class getReturnedClass() { return CURRENCY_CLASS; } /** * @see org.hibernate.type.Type#getName() */ public String getName() { return "currency"; } /** * @see org.hibernate.type.LiteralType#objectToSQLString(Object, Dialect) */ public String objectToSQLString(Object value, Dialect dialect) throws Exception { String code; try { code = (String) CURRENCY_GET_CODE.invoke(value, null); } catch (Exception e) { throw new HibernateException("Could not get Currency code", e); } return ( (LiteralType) Hibernate.STRING ).objectToSQLString(code, dialect); } public Object fromStringValue(String xml) throws HibernateException { try { return CURRENCY_GET_INSTANCE.invoke( null, new Object[] {xml} ); } catch (Exception e) { throw new HibernateException("Could not resolve currency code: " + xml); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -