Author: toad
Date: 2007-04-24 11:49:52 +0000 (Tue, 24 Apr 2007)
New Revision: 12917

Modified:
   trunk/freenet/src/freenet/support/SimpleFieldSet.java
Log:
Comments explaining the logic

Modified: trunk/freenet/src/freenet/support/SimpleFieldSet.java
===================================================================
--- trunk/freenet/src/freenet/support/SimpleFieldSet.java       2007-04-24 
11:47:22 UTC (rev 12916)
+++ trunk/freenet/src/freenet/support/SimpleFieldSet.java       2007-04-24 
11:49:52 UTC (rev 12917)
@@ -478,14 +478,17 @@
                                if(valuesIterator != null && 
valuesIterator.hasNext()) {
                                        return prefix + valuesIterator.next();
                                }
+                               // Iterate subsets.
                                while(true) {
-                                       // Iterate subsets.
                                        if(subIterator != null && 
subIterator.hasNext()) {
+                                               // If we have a retval, and we 
have a next value, return
                                                if(ret != null) return ret;
                                                ret = (String) 
subIterator.next();
                                                if(subIterator.hasNext())
+                                                       // If we have a retval, 
and we have a next value, return
                                                        if(ret != null) return 
ret;
                                        }
+                                       // Otherwise, we need to get a new 
subIterator (or hasNext() will return false)
                                        subIterator = null;
                                        if(subsetIterator != null && 
subsetIterator.hasNext()) {
                                                String key = (String) 
subsetIterator.next();
@@ -493,6 +496,7 @@
                                                String newPrefix = prefix + key 
+ MULTI_LEVEL_CHAR;
                                                subIterator = 
fs.keyIterator(newPrefix);
                                        } else {
+                                               // No more subIterator's
                                                if(ret == null)
                                                        Logger.error(this, 
"Returning null from KeyIterator.nextKey() - should never happen!");
                                                return ret;


Reply via email to