You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/01/18 21:49:05 UTC
svn commit: r1435337 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration/builder/combined/
test/java/org/apache/commons/configuration/builder/combined/
Author: oheger
Date: Fri Jan 18 20:49:05 2013
New Revision: 1435337
URL: http://svn.apache.org/viewvc?rev=1435337&view=rev
Log:
Implemented a special clone() implementation for MultiFileBuilderParametersImpl.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileBuilderParametersImpl.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileBuilderParametersImpl.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileBuilderParametersImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileBuilderParametersImpl.java?rev=1435337&r1=1435336&r2=1435337&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileBuilderParametersImpl.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileBuilderParametersImpl.java Fri Jan 18 20:49:05 2013
@@ -18,6 +18,7 @@ package org.apache.commons.configuration
import java.util.Map;
+import org.apache.commons.configuration.ConfigurationUtils;
import org.apache.commons.configuration.builder.BasicBuilderParameters;
import org.apache.commons.configuration.builder.BuilderParameters;
import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
@@ -152,4 +153,18 @@ public class MultiFileBuilderParametersI
params.put(PARAM_KEY, this);
return params;
}
+
+ /**
+ * {@inheritDoc} This implementation also tries to clone the parameters
+ * object for managed builders if possible.
+ */
+ @Override
+ public MultiFileBuilderParametersImpl clone()
+ {
+ MultiFileBuilderParametersImpl copy =
+ (MultiFileBuilderParametersImpl) super.clone();
+ copy.setManagedBuilderParameters((BuilderParameters) ConfigurationUtils
+ .cloneIfPossible(getManagedBuilderParameters()));
+ return copy;
+ }
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileBuilderParametersImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileBuilderParametersImpl.java?rev=1435337&r1=1435336&r2=1435337&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileBuilderParametersImpl.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileBuilderParametersImpl.java Fri Jan 18 20:49:05 2013
@@ -18,6 +18,7 @@ package org.apache.commons.configuration
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
@@ -26,6 +27,7 @@ import java.util.Map;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.configuration.builder.BuilderParameters;
+import org.apache.commons.configuration.builder.FileBasedBuilderParametersImpl;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
@@ -128,4 +130,28 @@ public class TestMultiFileBuilderParamet
assertSame("Wrong managed parameters", bp,
params.getManagedBuilderParameters());
}
+
+ /**
+ * Tests extended cloning functionality.
+ */
+ @Test
+ public void testClone()
+ {
+ FileBasedBuilderParametersImpl managedParams =
+ new FileBasedBuilderParametersImpl();
+ managedParams.setFileName("test.xml");
+ params.setManagedBuilderParameters(managedParams);
+ params.setFilePattern("somePattern");
+ MultiFileBuilderParametersImpl clone = params.clone();
+ assertEquals("Wrong pattern", params.getFilePattern(),
+ clone.getFilePattern());
+ assertNotSame("Managed parameters not cloned",
+ params.getManagedBuilderParameters(),
+ clone.getManagedBuilderParameters());
+ assertEquals("Wrong file name", managedParams.getFileHandler()
+ .getFileName(),
+ ((FileBasedBuilderParametersImpl) clone
+ .getManagedBuilderParameters()).getFileHandler()
+ .getFileName());
+ }
}