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/05/05 22:19:48 UTC

svn commit: r1479373 - in /commons/proper/configuration/trunk/src: main/java/org/apache/commons/configuration/ main/java/org/apache/commons/configuration/web/ test/java/org/apache/commons/configuration/

Author: oheger
Date: Sun May  5 20:19:47 2013
New Revision: 1479373

URL: http://svn.apache.org/r1479373
Log:
Added final isEmpty() method in AbstractConfiguration.

A new protected abstract isEmptyInternal() method was added, too, which has
to be defined in subclasses.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java Sun May  5 20:19:47 2013
@@ -929,6 +929,33 @@ public abstract class AbstractConfigurat
      */
     protected abstract Object getPropertyInternal(String key);
 
+    /**
+     * {@inheritDoc} This implementation handles synchronization and delegates
+     * to {@code isEmptyInternal()}.
+     */
+    public final boolean isEmpty()
+    {
+        getSynchronizer().beginRead();
+        try
+        {
+            return isEmptyInternal();
+        }
+        finally
+        {
+            getSynchronizer().endRead();
+        }
+    }
+
+    /**
+     * Actually checks whether this configuration contains data. This method is
+     * called by {@code isEmpty()}. It has to be defined by concrete subclasses.
+     *
+     * @return <b>true</b> if this configuration contains no data, <b>false</b>
+     *         otherwise
+     * @since 2.0
+     */
+    protected abstract boolean isEmptyInternal();
+
     public Properties getProperties(String key)
     {
         return getProperties(key, null);

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java Sun May  5 20:19:47 2013
@@ -106,7 +106,8 @@ public class BaseConfiguration extends A
      * @return {@code true} if Configuration is empty,
      * {@code false} otherwise.
      */
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
         return store.isEmpty();
     }

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java Sun May  5 20:19:47 2013
@@ -417,7 +417,8 @@ public class BaseHierarchicalConfigurati
      *
      * @return a flag if this configuration is empty
      */
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
         return !nodeDefined(getRootNode());
     }

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java Sun May  5 20:19:47 2013
@@ -306,7 +306,8 @@ implements Cloneable
         return keys.iterator();
     }
 
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
         for (Configuration config : configList)
         {

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java Sun May  5 20:19:47 2013
@@ -148,7 +148,8 @@ public class DataConfiguration extends A
         }
     }
 
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
         return configuration.isEmpty();
     }

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java Sun May  5 20:19:47 2013
@@ -439,9 +439,9 @@ public class DatabaseConfiguration exten
      *
      * @return a flag whether this configuration is empty.
      */
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
-
         JdbcOperation<Integer> op = new JdbcOperation<Integer>(EVENT_READ_PROPERTY, null, null)
         {
             @Override

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java Sun May  5 20:19:47 2013
@@ -561,7 +561,7 @@ public class DynamicCombinedConfiguratio
     }
 
     @Override
-    public boolean isEmpty()
+    protected boolean isEmptyInternal()
     {
         return this.getCurrentConfig().isEmpty();
     }

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java Sun May  5 20:19:47 2013
@@ -286,7 +286,8 @@ public class JNDIConfiguration extends A
      *
      * @return the empty flag
      */
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
         try
         {

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java Sun May  5 20:19:47 2013
@@ -201,7 +201,8 @@ public class MapConfiguration extends Ab
         }
     }
 
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
         return map.isEmpty();
     }

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java Sun May  5 20:19:47 2013
@@ -311,7 +311,7 @@ public class PatternSubtreeConfiguration
     }
 
     @Override
-    public boolean isEmpty()
+    protected boolean isEmptyInternal()
     {
         return getConfig().isEmpty();
     }

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java Sun May  5 20:19:47 2013
@@ -160,9 +160,10 @@ public class SubsetConfiguration extends
         return parent.subset(getParentKey(prefix));
     }
 
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
-        return !getKeys().hasNext();
+        return !getKeysInternal().hasNext();
     }
 
     public boolean containsKey(String key)

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java Sun May  5 20:19:47 2013
@@ -46,9 +46,10 @@ abstract class BaseWebConfiguration exte
      *
      * @return a flag whether this configuration is empty
      */
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
-        return !getKeys().hasNext();
+        return !getKeysInternal().hasNext();
     }
 
     /**

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java Sun May  5 20:19:47 2013
@@ -39,7 +39,8 @@ public class NonCloneableConfiguration e
     /**
      * Dummy implementation of this method.
      */
-    public boolean isEmpty()
+    @Override
+    protected boolean isEmptyInternal()
     {
         return true;
     }

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java Sun May  5 20:19:47 2013
@@ -626,7 +626,8 @@ public class TestAbstractConfigurationBa
             return config.getProperty(key);
         }
 
-        public boolean isEmpty()
+        @Override
+        protected boolean isEmptyInternal()
         {
             return config.isEmpty();
         }

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java?rev=1479373&r1=1479372&r2=1479373&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java Sun May  5 20:19:47 2013
@@ -136,8 +136,6 @@ public class TestAbstractConfigurationSy
      * Tests whether isEmpty() is correctly synchronized.
      */
     @Test
-    @Ignore
-    // TODO prevent subclasses from overriding containsKey()
     public void testIsEmptySychronized()
     {
         assertFalse("Configuration is empty", config.isEmpty());