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

📄 printer.java

📁 一个Java持久层类库
💻 JAVA
字号:
//$Id: Printer.java 5785 2005-02-19 12:58:24Z oneovthafew $package org.hibernate.pretty;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.hibernate.HibernateException;import org.hibernate.EntityMode;import org.hibernate.engine.SessionFactoryImplementor;import org.hibernate.engine.TypedValue;import org.hibernate.intercept.LazyPropertyInitializer;import org.hibernate.metadata.ClassMetadata;import org.hibernate.type.Type;/** * Renders entities to a nicely readable string. * @author Gavin King */public final class Printer {	private SessionFactoryImplementor factory;	private static final Logger log = LoggerFactory.getLogger(Printer.class);	/**	 * @param entity an actual entity object, not a proxy!	 */	public String toString(Object entity, EntityMode entityMode) throws HibernateException {		// todo : this call will not work for anything other than pojos!		ClassMetadata cm = factory.getClassMetadata( entity.getClass() );		if ( cm==null ) return entity.getClass().getName();		Map result = new HashMap();		if ( cm.hasIdentifierProperty() ) {			result.put(				cm.getIdentifierPropertyName(),				cm.getIdentifierType().toLoggableString( cm.getIdentifier( entity, entityMode ), factory )			);		}		Type[] types = cm.getPropertyTypes();		String[] names = cm.getPropertyNames();		Object[] values = cm.getPropertyValues( entity, entityMode );		for ( int i=0; i<types.length; i++ ) {			if ( !names[i].startsWith("_") ) {				String strValue = values[i]==LazyPropertyInitializer.UNFETCHED_PROPERTY ?					values[i].toString() :					types[i].toLoggableString( values[i], factory );				result.put( names[i], strValue );			}		}		return cm.getEntityName() + result.toString();	}	public String toString(Type[] types, Object[] values) throws HibernateException {		List list = new ArrayList( types.length * 5 );		for ( int i=0; i<types.length; i++ ) {			if ( types[i]!=null ) list.add( types[i].toLoggableString( values[i], factory ) );		}		return list.toString();	}	public String toString(Map namedTypedValues) throws HibernateException {		Map result = new HashMap();		Iterator iter = namedTypedValues.entrySet().iterator();		while ( iter.hasNext() ) {			Map.Entry me = (Map.Entry) iter.next();			TypedValue tv = (TypedValue) me.getValue();			result.put( me.getKey(), tv.getType().toLoggableString( tv.getValue(), factory ) );		}		return result.toString();	}	public void toString(Iterator iter, EntityMode entityMode) throws HibernateException {		if ( !log.isDebugEnabled() || !iter.hasNext() ) return;		log.debug("listing entities:");		int i=0;		while ( iter.hasNext() ) {			if (i++>20) {				log.debug("more......");				break;			}			log.debug( toString( iter.next(), entityMode ) );		}	}	public Printer(SessionFactoryImplementor factory) {		this.factory = factory;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -