Author: laurieh
Date: Mon Nov 28 20:51:09 2005
New Revision: 349644
URL: http://svn.apache.org/viewcvs?rev=349644&view=rev
Log:
Added JavaDoc from Christian Meder; no functional changes.
Modified:
struts/action/trunk/src/java/org/apache/struts/util/DynaBeanInterceptor.java
Modified:
struts/action/trunk/src/java/org/apache/struts/util/DynaBeanInterceptor.java
URL:
http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/util/DynaBeanInterceptor.java?rev=349644&r1=349643&r2=349644&view=diff
==============================================================================
---
struts/action/trunk/src/java/org/apache/struts/util/DynaBeanInterceptor.java
(original)
+++
struts/action/trunk/src/java/org/apache/struts/util/DynaBeanInterceptor.java
Mon Nov 28 20:51:09 2005
@@ -1,6 +1,6 @@
/*
* $Id$
- *
+ *
* Copyright 2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -36,14 +36,18 @@
import org.apache.commons.logging.LogFactory;
/**
- * DynaBeanInterceptor
- *
+ * Creates dynamic proxies for DynaBeans with getter/setter pairs for each
+ * property. The proxies intercept the corresponding methods and map them
+ * back to the properties.
+ *
* @since Struts 1.3
* @version $Revision$ $Date$
*/
public class DynaBeanInterceptor implements MethodInterceptor, Serializable {
private Log log = LogFactory.getLog(DynaBeanInterceptor.class);
+
+ /** A lookup table to map method names to the corresponding properties. */
private Map propertyLookup = new HashMap();
/**
@@ -51,9 +55,13 @@
*/
public DynaBeanInterceptor() {
}
-
+
/**
* Creates an Enhancer for a DynaClass/DynaBean.
+ *
+ * @param dynaClass the dynamic properties to use for enhancement
+ * @param beanClass the class to create the proxy for
+ * @return an enhancer to generate proxies
*/
public Enhancer createEnhancer(DynaClass dynaClass, Class beanClass) {
// Build an interface to implement consisting of getter/setter
@@ -95,7 +103,7 @@
Character.toUpperCase(name.charAt(0)) +
name.substring(1);
}
-
+
// Method names
String getterName = "get"+property;
String setterName = "set"+property;
@@ -117,7 +125,7 @@
}
propertyLookup.put(getterName, name);
propertyLookup.put(setterName, name);
-
+
}
}
Class beanInterface = im.create();
@@ -138,6 +146,12 @@
/**
* Intercepts a method call on the enhanced DynaBean.
+ *
+ * @param obj the enhanced <code>DynaBean</code>
+ * @param method the method to invoke on the object
+ * @param args the method parameters
+ * @param proxy the method proxy
+ * @return the return value of the intercepted method call
*/
public Object intercept(Object obj, Method method, Object[] args,
MethodProxy proxy) throws Throwable {
@@ -149,7 +163,7 @@
// Not a dyna property access, just pass call along
return proxy.invokeSuper(obj, args);
}
-
+
boolean getter = methodNm.startsWith("get");
DynaBean dynaBean = (DynaBean)obj;
@@ -176,5 +190,5 @@
}
}
-
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]