dataproxyhandler.java

来自「hibernate 开源框架的代码 jar包希望大家能喜欢」· Java 代码 · 共 53 行

JAVA
53
字号
package org.hibernate.test.dynamicentity;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.util.HashMap;import java.io.Serializable;/** * A simple {@link InvocationHandler} to act as the handler for our generated * {@link java.lang.reflect.Proxy}-based entity instances. * <p/> * This is a trivial impl which simply keeps the property values into * a Map. * * @author <a href="mailto:steve@hibernate.org">Steve Ebersole </a> */public final class DataProxyHandler implements InvocationHandler {	private String entityName;	private HashMap data = new HashMap();	public DataProxyHandler(String entityName, Serializable id) {		this.entityName = entityName;		data.put( "Id", id );	}	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {		String methodName = method.getName();		if ( methodName.startsWith( "set" ) ) {			String propertyName = methodName.substring( 3 );			data.put( propertyName, args[0] );		}		else if ( methodName.startsWith( "get" ) ) {			String propertyName = methodName.substring( 3 );			return data.get( propertyName );		}		else if ( "toString".equals( methodName ) ) {			return entityName + "#" + data.get( "Id" );		}		else if ( "hashCode".equals( methodName ) ) {			return new Integer( this.hashCode() );		}		return null;	}	public String getEntityName() {		return entityName;	}	public HashMap getData() {		return data;	}}

⌨️ 快捷键说明

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