You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ni...@apache.org on 2007/05/22 07:34:48 UTC
svn commit: r540426 - in
/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils:
BasicDynaBean.java DynaBeanMapDecorator.java LazyDynaBean.java
LazyDynaMap.java
Author: niallp
Date: Mon May 21 22:34:47 2007
New Revision: 540426
URL: http://svn.apache.org/viewvc?view=rev&rev=540426
Log:
Provide a getMap() method in DynaBeanMapDecorator in BasicDynaBean that uses DynaBeanMapDecorator to provide a Map representation of the DynaBean
Modified:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/BasicDynaBean.java
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/DynaBeanMapDecorator.java
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaBean.java
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/BasicDynaBean.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/BasicDynaBean.java?view=diff&rev=540426&r1=540425&r2=540426
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/BasicDynaBean.java (original)
+++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/BasicDynaBean.java Mon May 21 22:34:47 2007
@@ -76,6 +76,27 @@
*/
protected HashMap values = new HashMap();
+ /** Map decorator for this DynaBean */
+ private transient Map mapDecorator;
+
+ /**
+ * Return a Map representation of this DynaBean.
+ * </p>
+ * This, for example, could be used in JSTL in the following way to access
+ * a DynaBean's <code>fooProperty</code>:
+ * <ul><li><code>${myDynaBean.<b>map</b>.fooProperty}</code></li></ul>
+ *
+ * @return a Map representation of this DynaBean
+ */
+ public Map getMap() {
+
+ // cache the Map
+ if (mapDecorator == null) {
+ mapDecorator = new DynaBeanMapDecorator(this);
+ }
+ return mapDecorator;
+
+ }
// ------------------------------------------------------ DynaBean Methods
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/DynaBeanMapDecorator.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/DynaBeanMapDecorator.java?view=diff&rev=540426&r1=540425&r2=540426
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/DynaBeanMapDecorator.java (original)
+++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/DynaBeanMapDecorator.java Mon May 21 22:34:47 2007
@@ -74,7 +74,7 @@
private DynaBean dynaBean;
private boolean readOnly;
- private Set keySet;
+ private transient Set keySet;
// ------------------- Constructors ----------------------------------
@@ -331,7 +331,7 @@
*
* @return the decorated {@link DynaBean}.
*/
- protected DynaBean getDynaBean() {
+ public DynaBean getDynaBean() {
return dynaBean;
}
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaBean.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaBean.java?view=diff&rev=540426&r1=540425&r2=540426
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaBean.java (original)
+++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaBean.java Mon May 21 22:34:47 2007
@@ -140,6 +140,9 @@
*/
protected Map values;
+ /** Map decorator for this DynaBean */
+ private transient Map mapDecorator;
+
/**
* The <code>MutableDynaClass</code> "base class" that this DynaBean
* is associated with.
@@ -188,11 +191,20 @@
// ------------------- Public Methods ----------------------------------
/**
- * Return the Map backing this <code>DynaBean</code>
- * @return the underlying Map
+ * Return a Map representation of this DynaBean.
+ * </p>
+ * This, for example, could be used in JSTL in the following way to access
+ * a DynaBean's <code>fooProperty</code>:
+ * <ul><li><code>${myDynaBean.<b>map</b>.fooProperty}</code></li></ul>
+ *
+ * @return a Map representation of this DynaBean
*/
public Map getMap() {
- return values;
+ // cache the Map
+ if (mapDecorator == null) {
+ mapDecorator = new DynaBeanMapDecorator(this);
+ }
+ return mapDecorator;
}
/**
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java?view=diff&rev=540426&r1=540425&r2=540426
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java (original)
+++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java Mon May 21 22:34:47 2007
@@ -150,6 +150,14 @@
this.values = values;
}
+ /**
+ * Return the underlying Map backing this <code>DynaBean</code>
+ * @return the underlying Map
+ */
+ public Map getMap() {
+ return values;
+ }
+
// ------------------- DynaBean Methods ----------------------------------
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org