Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 44046 invoked from network); 4 Aug 2009 20:26:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Aug 2009 20:26:31 -0000 Received: (qmail 39390 invoked by uid 500); 4 Aug 2009 20:26:36 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 39304 invoked by uid 500); 4 Aug 2009 20:26:36 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 39295 invoked by uid 99); 4 Aug 2009 20:26:36 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Aug 2009 20:26:36 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Aug 2009 20:26:31 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 5E5762388892; Tue, 4 Aug 2009 20:26:10 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r800948 - in /commons/proper/configuration/branches/configuration2_experimental/src: main/java/org/apache/commons/configuration2/ main/java/org/apache/commons/configuration2/flat/ test/java/org/apache/commons/configuration2/ test/java/org/a... Date: Tue, 04 Aug 2009 20:26:10 -0000 To: commits@commons.apache.org From: oheger@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090804202610.5E5762388892@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: oheger Date: Tue Aug 4 20:26:09 2009 New Revision: 800948 URL: http://svn.apache.org/viewvc?rev=800948&view=rev Log: AbstractFlatConfiguration does not need special methods for manipulating the single values of a property any more. So the class could be simplified. Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertiesConfigurationLayout.java commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestPropertiesConfigurationLayout.java commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/FlatConfigurationMockImpl.java commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestBaseConfiguration.java Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertiesConfigurationLayout.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertiesConfigurationLayout.java?rev=800948&r1=800947&r2=800948&view=diff ============================================================================== --- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertiesConfigurationLayout.java (original) +++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertiesConfigurationLayout.java Tue Aug 4 20:26:09 2009 @@ -26,7 +26,6 @@ import org.apache.commons.configuration2.event.ConfigurationEvent; import org.apache.commons.configuration2.event.ConfigurationListener; -import org.apache.commons.configuration2.flat.AbstractFlatConfiguration; import org.apache.commons.lang.StringUtils; /** @@ -617,7 +616,6 @@ clear(); break; case AbstractConfiguration.EVENT_SET_PROPERTY: - case AbstractFlatConfiguration.EVENT_PROPERTY_CHANGED: fetchLayoutData(event.getPropertyName()); break; } Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java?rev=800948&r1=800947&r2=800948&view=diff ============================================================================== --- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java (original) +++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/flat/AbstractFlatConfiguration.java Tue Aug 4 20:26:09 2009 @@ -18,7 +18,6 @@ import java.util.Collection; import java.util.Iterator; -import java.util.List; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -66,13 +65,6 @@ */ public abstract class AbstractFlatConfiguration extends AbstractConfiguration { - /** - * Constant for the property change event. This event is triggered by - * setPropertyValue() and clearPropertyValue(), - * which manipulate a value of a property with multiple values. - */ - public static final int EVENT_PROPERTY_CHANGED = 9; - /** Stores the NodeHandler used by this configuration. */ private FlatNodeHandler nodeHandler; @@ -104,73 +96,6 @@ } /** - * Modifies a specific value of a property with multiple values. If a - * property has multiple values, this method can be used to alter a specific - * value (identified by its 0-based index) without affecting the other - * values. If the index is invalid (i.e. less than 0 or greater than the - * number of existing values), the value will be added to the existing - * values of this property. Note that this method expects a scalar value - * rather than an array or a collection. In the latter case the behavior is - * undefined and may vary for different derived classes. This method takes - * care of firing the appropriate events and delegates to - * setPropertyValueDirect(). It generates a - * EVENT_PROPERTY_CHANGED event that contains the key of the - * affected property. - * - * @param key the key of the property - * @param index the index of the value to change - * @param value the new value; this should be a simple object; arrays or - * collections won't be treated specially, but directly added - */ - public void setPropertyValue(String key, int index, Object value) - { - fireEvent(EVENT_PROPERTY_CHANGED, key, null, true); - setDetailEvents(true); - try - { - setPropertyValueDirect(key, index, value); - } - finally - { - setDetailEvents(false); - } - fireEvent(EVENT_PROPERTY_CHANGED, key, null, false); - } - - /** - * Removes a specific value of a property with multiple values. If a - * property has multiple values, this method can be used for removing a - * single value (identified by its 0-based index). If the index is out of - * range, no action is performed; in this case false is returned. - * This method takes care of firing the appropriate events and delegates to - * clearPropertyValueDirect(). It generates a - * EVENT_PROPERTY_CHANGED event that contains the key of the - * affected property. - * - * @param key the key of the property - * @param index the index of the value to delete - * @return a flag whether the value could be removed - */ - public boolean clearPropertyValue(String key, int index) - { - fireEvent(EVENT_PROPERTY_CHANGED, key, null, true); - - boolean result = false; - setDetailEvents(true); - try - { - result = clearPropertyValueDirect(key, index); - } - finally - { - setDetailEvents(false); - } - - fireEvent(EVENT_PROPERTY_CHANGED, key, null, false); - return result; - } - - /** * Returns the root node of this configuration. A node hierarchy for this * configuration (consisting of FlatNode objects) is created * on demand. This method returns the root node of this hierarchy. It checks @@ -240,7 +165,7 @@ { return -1; } - else if (value instanceof Collection) + else if (value instanceof Collection) { return ((Collection) value).size() - 1; } @@ -295,53 +220,6 @@ } /** - * Performs the actual modification of the specified property value. This - * method is called by setPropertyValue(). The base - * implementation provided by this class uses {@code getProperty()} for - * obtaining the current value(s) of the specified property. If the property - * does not exist or the index is invalid, the value is added as if - * addProperty() was called. If the property has a single - * value, the passed in index determines what happens: if it is 0, the - * single value is replaced by the new one; all other indices cause the new - * value to be added to the old one. The method delegates to {@code - * setProperty()} or {@code addPropertyDirect()} for storing the new - * property value. Derived classes should override it if they can provide a - * more efficient implementation. - * - * @param key the key of the property - * @param index the index of the value to change - * @param value the new value - */ - protected void setPropertyValueDirect(String key, int index, Object value) - { - Object oldValue = getProperty(key); - - if (oldValue instanceof List) - { - @SuppressWarnings("unchecked") - List col = (List) oldValue; - if (index >= 0 && index < col.size()) - { - col.set(index, value); - setProperty(key, col); - } - else - { - addPropertyDirect(key, value); - } - } - - else if (oldValue == null || index != 0) - { - addPropertyDirect(key, value); - } - else - { - setProperty(key, value); - } - } - - /** * Initializes the node handler of this configuration. */ private void initNodeHandler() @@ -350,37 +228,6 @@ } /** - * Performs the actual remove property value operation. This method is - * called by clearPropertyValue(). The base implementation - * provided by this class uses {@code getProperty()} for obtaining the - * value(s) of the property. If there are multiple values and the index is - * in the allowed range, the value with the given index is removed, and the - * new values are stored using {@code setProperty()}. Derived classes should - * override this method if they can provide a more efficient implementation. - * - * @param key the key of the property - * @param index the index of the value to delete - * @return a flag whether the value could be removed - */ - protected boolean clearPropertyValueDirect(String key, int index) - { - Object value = getProperty(key); - - if (value instanceof List && index >= 0) - { - List col = (List) value; - if (index < col.size()) - { - col.remove(index); - setProperty(key, col); - return true; - } - } - - return false; - } - - /** * Registers a change listener at this configuration that causes the node * structure to be invalidated whenever the content is changed. */ Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestPropertiesConfigurationLayout.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestPropertiesConfigurationLayout.java?rev=800948&r1=800947&r2=800948&view=diff ============================================================================== --- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestPropertiesConfigurationLayout.java (original) +++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestPropertiesConfigurationLayout.java Tue Aug 4 20:26:09 2009 @@ -23,7 +23,6 @@ import junit.framework.TestCase; import org.apache.commons.configuration2.event.ConfigurationEvent; -import org.apache.commons.configuration2.flat.AbstractFlatConfiguration; /** * Test class for PropertiesConfigurationLayout. @@ -321,7 +320,7 @@ public void testEventChangeNonExisting() { ConfigurationEvent event = new ConfigurationEvent(this, - AbstractFlatConfiguration.EVENT_PROPERTY_CHANGED, TEST_KEY, + AbstractConfiguration.EVENT_SET_PROPERTY, TEST_KEY, TEST_VALUE, false); layout.configurationChanged(event); assertTrue("New property was not found", layout.getKeys().contains( Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/FlatConfigurationMockImpl.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/FlatConfigurationMockImpl.java?rev=800948&r1=800947&r2=800948&view=diff ============================================================================== --- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/FlatConfigurationMockImpl.java (original) +++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/FlatConfigurationMockImpl.java Tue Aug 4 20:26:09 2009 @@ -48,9 +48,6 @@ /** Stores the value of the test property. */ Object property; - /** Stores the expected index. */ - int expectedIndex; - /** A flag whether an add property operation is expected. */ boolean expectAdd; @@ -66,36 +63,21 @@ } @Override - public boolean clearPropertyValueDirect(String key, int index) + public void clearPropertyDirect(String key) { TestFlatNodes.assertEquals("Wrong property key", NAME, key); clearProperty = true; - expectedIndex = index; - return true; - } - - @Override - public void clearPropertyDirect(String key) - { - clearPropertyValue(key, FlatNode.INDEX_UNDEFINED); } @Override - public void setPropertyValueDirect(String key, int index, Object value) + public void setProperty(String key, Object value) { TestFlatNodes.assertFalse("Add operation expected", expectAdd); TestFlatNodes.assertEquals("Wrong property key", NAME, key); - TestFlatNodes.assertEquals("Wrong index", expectedIndex, index); property = value; } @Override - public void setProperty(String key, Object value) - { - setPropertyValue(key, FlatNode.INDEX_UNDEFINED, value); - } - - @Override protected void addPropertyDirect(String key, Object value) { TestFlatNodes.assertTrue("Set operation expected", expectAdd); Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java?rev=800948&r1=800947&r2=800948&view=diff ============================================================================== --- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java (original) +++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestAbstractFlatConfiguration.java Tue Aug 4 20:26:09 2009 @@ -20,9 +20,6 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.configuration2.event.ConfigurationEvent; -import org.apache.commons.configuration2.event.ConfigurationListener; - import junit.framework.TestCase; /** @@ -204,28 +201,6 @@ } /** - * Tests whether setPropertyValue() sends the expected events. - */ - public void testSetPropertyValueEvents() - { - ConfigPropertyChangeListener l = new ConfigPropertyChangeListener(); - config.addConfigurationListener(l); - config.setPropertyValue(FlatConfigurationMockImpl.NAME, 0, "newValue"); - l.verify(); - } - - /** - * Tests whether clearPropertyValue() sends the expected events. - */ - public void testClearPropertyValueEvents() - { - ConfigPropertyChangeListener l = new ConfigPropertyChangeListener(); - config.addConfigurationListener(l); - config.clearPropertyValue(FlatConfigurationMockImpl.NAME, 0); - l.verify(); - } - - /** * Tests cloning a flat configuration. We have to check whether the event * listeners are correctly registered. */ @@ -240,48 +215,7 @@ prepareGetRootNode(copy, 2); FlatNode root = copy.getRootNode(); checkNodeStructure(root); - copy.clearPropertyValue(FlatConfigurationMockImpl.NAME, 0); + copy.clearProperty(FlatConfigurationMockImpl.NAME); assertNotSame("Structure was not re-created", root, copy.getRootNode()); } - - /** - * A test event listener implementation for testing the events received for - * a manipulation of a property value. - */ - private class ConfigPropertyChangeListener implements ConfigurationListener - { - /** The number of received before events. */ - private int beforeCount; - - /** The number of received after events. */ - private int afterCount; - - public void configurationChanged(ConfigurationEvent event) - { - assertEquals("Wrong event type", - AbstractFlatConfiguration.EVENT_PROPERTY_CHANGED, event - .getType()); - assertEquals("Wrong event source", config, event.getSource()); - assertEquals("Wrong property name", FlatConfigurationMockImpl.NAME, - event.getPropertyName()); - assertNull("Value not null", event.getPropertyValue()); - if (event.isBeforeUpdate()) - { - beforeCount++; - } - else - { - afterCount++; - } - } - - /** - * Tests whether the expected events were received. - */ - public void verify() - { - assertEquals("Wrong number of before events", 1, beforeCount); - assertEquals("Wrong number of after events", 1, afterCount); - } - } } Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestBaseConfiguration.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestBaseConfiguration.java?rev=800948&r1=800947&r2=800948&view=diff ============================================================================== --- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestBaseConfiguration.java (original) +++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/flat/TestBaseConfiguration.java Tue Aug 4 20:26:09 2009 @@ -510,7 +510,7 @@ config.addProperty("complex.property", props); Object val = config.getProperty("complex.property"); - assertTrue(val instanceof Collection); + assertTrue(val instanceof Collection); Collection col = (Collection) val; assertEquals(10, col.size()); @@ -523,7 +523,7 @@ }; config.setProperty("complex.property", data); val = config.getProperty("complex.property"); - assertTrue(val instanceof Collection); + assertTrue(val instanceof Collection); col = (Collection) val; Iterator it = col.iterator(); StringTokenizer tok = new StringTokenizer("The quick brown fox jumps over the lazy dog.", " "); @@ -795,128 +795,4 @@ assertEquals("Wrong max index for multiple values", count - 1, config .getMaxIndex(TEST_KEY)); } - - /** - * Tests removing a value of a property with multiple values. - */ - public void testClearPropertyValue() - { - config.addProperty(TEST_KEY, new Integer[] { - 1, 2, 3 - }); - assertTrue("Value not removed", config.clearPropertyValue(TEST_KEY, 1)); - List lst = config.getList(TEST_KEY); - assertEquals("Wrong number of values", 2, lst.size()); - assertEquals("Wrong value 1", Integer.valueOf(1), lst.get(0)); - assertEquals("Wrong value 2", Integer.valueOf(3), lst.get(1)); - } - - /** - * Tries to remove a property value with an invalid index. This should be a - * no-op. - */ - public void testClearPropertyValueInvalidIndex() - { - config.addProperty(TEST_KEY, new Integer[] { - 1, 2, 3 - }); - assertFalse("Can remove value with negative index", config - .clearPropertyValue(TEST_KEY, -1)); - assertFalse("Can remove value with index too big", config - .clearPropertyValue(TEST_KEY, 1000)); - assertEquals("Wrong number of values", 3, config.getList(TEST_KEY) - .size()); - } - - /** - * Tries to remove a single property value with an index. This should not - * work. - */ - public void testClearPropertyValueSingle() - { - config.addProperty(TEST_KEY, "A value"); - assertFalse("Can removing single value", config.clearPropertyValue( - TEST_KEY, 0)); - assertEquals("Wrong value", "A value", config.getString(TEST_KEY)); - } - - /** - * Tries to remove a value of a non existing property. - */ - public void testClearPropertyValueNonExisting() - { - assertFalse("Can remove non existing value", config.clearPropertyValue( - TEST_KEY, 0)); - } - - /** - * Tests setting the value of a property. - */ - public void testSetPropertyValue() - { - config.addProperty(TEST_KEY, new Integer[] { - 1, 2, 3 - }); - config.setPropertyValue(TEST_KEY, 1, 4); - List lst = config.getList(TEST_KEY); - assertEquals("Wrong number of values", 3, lst.size()); - assertEquals("Wrong value 1", Integer.valueOf(1), lst.get(0)); - assertEquals("Wrong value 2", Integer.valueOf(4), lst.get(1)); - assertEquals("Wrong value 3", Integer.valueOf(3), lst.get(2)); - } - - /** - * Tests setting the value of a non existing property. This should be a - * normal add operation. - */ - public void testSetPropertyValueNonExisting() - { - config.setPropertyValue(TEST_KEY, 0, "test"); - assertEquals("Value was not set", "test", config.getString(TEST_KEY)); - } - - /** - * Tests setting the value of a property using an invalid index. Then the - * value should simply be added. - */ - public void testSetPropertyValueInvalid() - { - config.addProperty(TEST_KEY, new Integer[] { - 1, 2, 3 - }); - config.setPropertyValue(TEST_KEY, -1, 4); - config.setPropertyValue(TEST_KEY, 1111, 5); - List lst = config.getList(TEST_KEY); - assertEquals("Wrong number of values", 5, lst.size()); - for (int i = 1; i <= 5; i++) - { - assertEquals("Wrong value at " + i, Integer.valueOf(i), lst - .get(i - 1)); - } - } - - /** - * Tests setting the value of a property with a single value. If the index - * is 0, the value must be replaced. - */ - public void testSetPropertyValueSingle0() - { - config.addProperty(TEST_KEY, 1); - config.setPropertyValue(TEST_KEY, 0, 2); - assertEquals("Wrong value", 2, config.getInt(TEST_KEY)); - } - - /** - * Tests setting the value of a property with a single value using an - * invalid index. In this case, the new value must be added to the property. - */ - public void testSetPropertyValueSingle1() - { - config.addProperty(TEST_KEY, 1); - config.setPropertyValue(TEST_KEY, 1, 2); - List lst = config.getList(TEST_KEY); - assertEquals("Wrong number of values", 2, lst.size()); - assertEquals("Wrong value 1", Integer.valueOf(1), lst.get(0)); - assertEquals("Wrong value 2", Integer.valueOf(2), lst.get(1)); - } }