⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 currencytype.java

📁 用Java实现的23个常用设计模式源代码
💻 JAVA
字号:
//$Id: CurrencyType.java,v 1.5.2.4 2003/11/21 16:06:40 oneovthafew Exp $package net.sf.hibernate.type;import java.lang.reflect.Method;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import net.sf.hibernate.AssertionFailure;import net.sf.hibernate.Hibernate;import net.sf.hibernate.HibernateException;import net.sf.hibernate.util.EqualsHelper;/** * <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 net.sf.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 net.sf.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 net.sf.hibernate.type.NullableType#sqlType()	 */	public int sqlType() {		return Hibernate.STRING.sqlType();	}		/**	 * @see net.sf.hibernate.type.NullableType#toXML(Object)	 */	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 net.sf.hibernate.type.Type#getReturnedClass()	 */	public Class getReturnedClass() {		return CURRENCY_CLASS;	}		/**	 * @see net.sf.hibernate.type.Type#equals(Object, Object)	 */	public boolean equals(Object x, Object y) throws HibernateException {		return EqualsHelper.equals(x, y);	}		/**	 * @see net.sf.hibernate.type.Type#getName()	 */	public String getName() {		return "currency";	}		/**	 * @see net.sf.hibernate.type.LiteralType#objectToSQLString(Object)	 */	public String objectToSQLString(Object value) 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);	}		public Object fromString(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 + -