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 2005/10/07 03:35:10 UTC
svn commit: r306972 - in /jakarta/commons/proper/beanutils/trunk/src:
java/org/apache/commons/beanutils/LazyDynaMap.java
test/org/apache/commons/beanutils/LazyDynaMapTestCase.java
Author: niallp
Date: Thu Oct 6 18:34:59 2005
New Revision: 306972
URL: http://svn.apache.org/viewcvs?rev=306972&view=rev
Log: (empty)
Modified:
jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java
jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/LazyDynaMapTestCase.java
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/LazyDynaMap.java?rev=306972&r1=306971&r2=306972&view=diff
==============================================================================
--- 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 Thu Oct 6 18:34:59 2005
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 The Apache Software Foundation.
+ * Copyright 2004-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -249,7 +249,24 @@
* with this DynaClass.
*/
public DynaBean newInstance() {
- return new LazyDynaMap(this);
+
+ // Create a new instance of the Map
+ Map newMap = null;
+ try {
+ newMap = (Map)getMap().getClass().newInstance();
+ } catch(Exception ex) {
+ newMap = newMap();
+ }
+
+ // Crate new LazyDynaMap and initialize properties
+ LazyDynaMap lazyMap = new LazyDynaMap(newMap);
+ DynaProperty[] properties = this.getDynaProperties();
+ if (properties != null) {
+ for (int i = 0; i < properties.length; i++) {
+ lazyMap.add(properties[i]);
+ }
+ }
+ return lazyMap;
}
Modified: jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/LazyDynaMapTestCase.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/LazyDynaMapTestCase.java?rev=306972&r1=306971&r2=306972&view=diff
==============================================================================
--- jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/LazyDynaMapTestCase.java (original)
+++ jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/LazyDynaMapTestCase.java Thu Oct 6 18:34:59 2005
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 The Apache Software Foundation.
+ * Copyright 2004-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,8 +15,10 @@
*/
package org.apache.commons.beanutils;
+import java.util.Map;
import java.util.HashMap;
import java.util.TreeMap;
+import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
import java.lang.reflect.InvocationTargetException;
@@ -481,6 +483,27 @@
} catch (IllegalArgumentException expected) {
// expected result
}
+ }
+
+ /**
+ * Test creating using DynaClass.newInstance()
+ */
+ public void testNewInstance() {
+
+ // Create LazyDynaMap using TreeMap
+ // containing some properties
+ LazyDynaMap orig = new LazyDynaMap(new TreeMap());
+ orig.set("indexProp", 0, "indexVal0");
+ orig.set("indexProp", 2, "indexVal1");
+ assertEquals("Index prop size", 1, ((List)orig.get("indexProp")).size());
+
+ LazyDynaMap newOne = (LazyDynaMap)orig.newInstance();
+ Map newMap = newOne.getMap();
+ assertEquals("Check Map type", TreeMap.class, newMap.getClass());
+
+ ArrayList indexProp = (ArrayList)newMap.get("indexProp");
+ assertNotNull("Indexed Prop missing", indexProp);
+ assertEquals("Index prop size", 0, indexProp.size());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org