1
package org.hibernate.test.dynamicentity;
3
import java.lang.reflect.InvocationHandler;
4
import java.lang.reflect.Method;
5
import java.util.HashMap;
6
import java.io.Serializable;
9
* A simple {@link InvocationHandler} to act as the handler for our generated
10
* {@link java.lang.reflect.Proxy}-based entity instances.
12
* This is a trivial impl which simply keeps the property values into
15
* @author <a href="mailto:steve@hibernate.org">Steve Ebersole </a>
17
public final class DataProxyHandler implements InvocationHandler {
18
private String entityName;
19
private HashMap data = new HashMap();
21
public DataProxyHandler(String entityName, Serializable id) {
22
this.entityName = entityName;
26
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
27
String methodName = method.getName();
28
if ( methodName.startsWith( "set" ) ) {
29
String propertyName = methodName.substring( 3 );
30
data.put( propertyName, args[0] );
32
else if ( methodName.startsWith( "get" ) ) {
33
String propertyName = methodName.substring( 3 );
34
return data.get( propertyName );
36
else if ( "toString".equals( methodName ) ) {
37
return entityName + "#" + data.get( "Id" );
39
else if ( "hashCode".equals( methodName ) ) {
40
return new Integer( this.hashCode() );
45
public String getEntityName() {
49
public HashMap getData() {