]> git.mxchange.org Git - jcore.git/commitdiff
Better return an iterator of Map.Entry<Field, Object>. This is really generic, it...
authorRoland Haeder <roland@mxchange.org>
Fri, 7 Aug 2015 11:41:56 +0000 (13:41 +0200)
committerRoland Haeder <roland@mxchange.org>
Fri, 7 Aug 2015 11:41:56 +0000 (13:41 +0200)
Signed-off-by:Roland Häder <roland@mxchange.org>

src/org/mxchange/jcore/BaseFrameworkSystem.java
src/org/mxchange/jcore/contact/BaseContact.java
src/org/mxchange/jcore/contact/Contact.java

index 33923f8263e121685e4b0fad7936e570b92cc921..7d96be82381006abe65d4df62bab3e66a226f681 100644 (file)
@@ -26,10 +26,10 @@ import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.text.MessageFormat;
-import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Iterator;
-import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.ResourceBundle;
 import java.util.StringTokenizer;
@@ -760,7 +760,7 @@ public class BaseFrameworkSystem implements FrameworkInterface {
         * @param className Class name to iterate over
         * @return An iterator over all object's fields
         */
-       protected Iterator<Object> fieldIterator (final FrameworkInterface instance, final String className) {
+       protected Iterator<Map.Entry<Field, Object>> fieldIterator (final FrameworkInterface instance, final String className) {
                // Trace message
                this.getLogger().trace(MessageFormat.format("instance={0},className={1} - CALLED!", instance, className));
 
@@ -770,8 +770,8 @@ public class BaseFrameworkSystem implements FrameworkInterface {
                // Debug message
                this.getLogger().debug(MessageFormat.format("Found {0} fields.", fields.length));
 
-               // A list is fine
-               List<Object> list = new ArrayList<>(fields.length);
+               // A simple map with K=fieldName and V=Value is fine
+               Map<Field, Object> map = new HashMap<>(fields.length);
 
                // Walk through all
                for (final Field field : fields) {
@@ -791,16 +791,13 @@ public class BaseFrameworkSystem implements FrameworkInterface {
                        this.getLogger().debug(MessageFormat.format("value={0}", value));
 
                        // Add it to list
-                       boolean added = list.add(value);
-
-                       // Debug log
-                       this.getLogger().debug("added=" + added);
+                       map.put(field, value);
                }
 
                // Debug message
-               this.getLogger().debug(MessageFormat.format("Returning iterator for {0} entries ...", list.size()));
+               this.getLogger().debug(MessageFormat.format("Returning iterator for {0} entries ...", map.size()));
 
                // Return list iterator
-               return list.iterator();
+               return map.entrySet().iterator();
        }
 }
index 2465158fa5b9dfa2ef9be258fabc820f88593354..b817a594721c68e4a062796b1b5a2edf63e13fa4 100644 (file)
  */
 package org.mxchange.jcore.contact;
 
+import java.lang.reflect.Field;
 import java.text.MessageFormat;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.Objects;
 import org.mxchange.jcore.BaseFrameworkSystem;
 import org.mxchange.jcore.client.Client;
@@ -596,7 +598,7 @@ public class BaseContact extends BaseFrameworkSystem implements Contact {
         * @return An iterator
         */
        @Override
-       public Iterator<Object> iterator () {
+       public Iterator<Map.Entry<Field, Object>> iterator () {
                return this.fieldIterator(this, "BaseContact");
        }
 
index e4a90b5d36204e2d16dacf1dd7304c1644b3956e..f0f3a682fd176fd714446b8a32c564ca086ff6e6 100644 (file)
@@ -16,6 +16,9 @@
  */
 package org.mxchange.jcore.contact;
 
+import java.lang.reflect.Field;
+import java.util.Iterator;
+import java.util.Map;
 import org.mxchange.jcore.FrameworkInterface;
 import org.mxchange.jcore.client.Client;
 
@@ -24,7 +27,12 @@ import org.mxchange.jcore.client.Client;
  *
  * @author Roland Haeder
  */
-public interface Contact extends FrameworkInterface, Iterable<Object> {
+public interface Contact extends FrameworkInterface {
+       /**
+        * Returns an iterator of all values from this object
+        * @return An iterator
+        */
+       public Iterator<Map.Entry<Field, Object>> iterator ();
 
        /**
         * Some "getter" for translated gender of the contact