Repository: incubator-reef
Updated Branches:
  refs/heads/master 0d75f23da -> e811e2267


[REEF-546] Update method signature for Configuration.getBoundSets

This addressed the issue by
  * updating the method to return list of parameters bound to sets
  * updating usages of the method in code

JIRA:
  [REEF-546](https://issues.apache.org/jira/browse/REEF-546)

Pull Request:
  This closes #346


Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/e811e226
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/e811e226
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/e811e226

Branch: refs/heads/master
Commit: e811e2267242aa5c72f0adf4344b8296be17529f
Parents: 0d75f23
Author: Mariia Mykhailova <[email protected]>
Authored: Thu Aug 6 16:51:32 2015 -0700
Committer: Markus Weimer <[email protected]>
Committed: Fri Aug 7 13:30:55 2015 -0700

----------------------------------------------------------------------
 .../org/apache/reef/tang/Configuration.java     | 13 ++--------
 .../formats/AvroConfigurationSerializer.java    | 26 +++++++++++---------
 .../reef/tang/formats/ConfigurationModule.java  | 20 ++++++++-------
 .../tang/implementation/ConfigurationImpl.java  | 12 ++-------
 4 files changed, 29 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/e811e226/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/Configuration.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/Configuration.java
 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/Configuration.java
index ac0cf82..0081bef 100644
--- 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/Configuration.java
+++ 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/Configuration.java
@@ -23,7 +23,6 @@ import org.apache.reef.tang.types.ConstructorDef;
 import org.apache.reef.tang.types.NamedParameterNode;
 
 import java.util.List;
-import java.util.Map.Entry;
 import java.util.Set;
 
 /**
@@ -151,17 +150,9 @@ public interface Configuration {
   ClassHierarchy getClassHierarchy();
 
   /**
-   * Get the set bindings from set-valued NamedParameters to the values they 
were bound to.
-   * <p/>
-   * TODO: This API seems wonky.
-   * Why not return a Set<NamedParameterNode<Set<?>>> instead, and let the 
caller invoke getBoundSet() above?
-   *
-   * @return a flattened set with one entry for each binding
-   * (the same NamedParameterNode may be a key for multiple bindings.
-   * @deprecated
+   * @return the set of all NamedParameterNodes explicitly bound to sets.
    */
-  @Deprecated
-  Iterable<Entry<NamedParameterNode<Set<?>>, Object>> getBoundSets();
+  Set<NamedParameterNode<Set<?>>> getBoundSets();
 
   /**
    * @return the set of all NamedParameterNodes explicitly bound to lists.

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/e811e226/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/AvroConfigurationSerializer.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/AvroConfigurationSerializer.java
 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/AvroConfigurationSerializer.java
index f89c44a..71a7e4d 100644
--- 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/AvroConfigurationSerializer.java
+++ 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/AvroConfigurationSerializer.java
@@ -165,19 +165,21 @@ public final class AvroConfigurationSerializer implements 
ConfigurationSerialize
           .setValue("" + ConfigurationBuilderImpl.INIT + "(" + 
legacyConstructors + ")")
           .build());
     }
-    for (final Map.Entry<NamedParameterNode<Set<?>>, Object> e : 
configuration.getBoundSets()) {
-      final String val;
-      if (e.getValue() instanceof String) {
-        val = (String) e.getValue();
-      } else if (e.getValue() instanceof Node) {
-        val = ((Node) e.getValue()).getFullName();
-      } else {
-        throw new IllegalStateException();
+    for (final NamedParameterNode<Set<?>> key : configuration.getBoundSets()) {
+      for (final Object value : configuration.getBoundSet(key)) {
+        final String val;
+        if (value instanceof String) {
+          val = (String) value;
+        } else if (value instanceof Node) {
+          val = ((Node) value).getFullName();
+        } else {
+          throw new IllegalStateException();
+        }
+        configurationEntries.add(new ConfigurationEntry().newBuilder()
+            .setKey(key.getFullName())
+            .setValue(val)
+            .build());
       }
-      configurationEntries.add(new ConfigurationEntry().newBuilder()
-          .setKey(e.getKey().getFullName())
-          .setValue(val)
-          .build());
     }
     // TODO[JIRA REEF-402]: Implement list serialization
     if (configuration.getBoundLists() != null && 
!configuration.getBoundLists().isEmpty()) {

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/e811e226/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ConfigurationModule.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ConfigurationModule.java
 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ConfigurationModule.java
index 4e746a9..735c5ad 100644
--- 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ConfigurationModule.java
+++ 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ConfigurationModule.java
@@ -332,16 +332,18 @@ public class ConfigurationModule {
               + ')'
       ));
     }
-    for (final Entry<NamedParameterNode<Set<?>>, Object> e : 
conf.getBoundSets()) {
-      final String val;
-      if (e.getValue() instanceof String) {
-        val = (String) e.getValue();
-      } else if (e.getValue() instanceof Node) {
-        val = ((Node) e.getValue()).getFullName();
-      } else {
-        throw new IllegalStateException();
+    for (final NamedParameterNode<Set<?>> key : conf.getBoundSets()) {
+      for (final Object value : conf.getBoundSet(key)) {
+        final String val;
+        if (value instanceof String) {
+          val = (String) value;
+        } else if (value instanceof Node) {
+          val = ((Node) value).getFullName();
+        } else {
+          throw new IllegalStateException();
+        }
+        l.add(key.getFullName() + '=' + escape(val));
       }
-      l.add(e.getKey().getFullName() + '=' + escape(val));
     }
     return l;
   }

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/e811e226/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java
 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java
index 484a88b..452a466 100644
--- 
a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java
+++ 
b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java
@@ -26,9 +26,7 @@ import org.apache.reef.tang.types.ClassNode;
 import org.apache.reef.tang.types.ConstructorDef;
 import org.apache.reef.tang.types.NamedParameterNode;
 
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map.Entry;
 import java.util.Set;
 
 public class ConfigurationImpl implements Configuration {
@@ -103,14 +101,8 @@ public class ConfigurationImpl implements Configuration {
   }
 
   @Override
-  public Iterable<Entry<NamedParameterNode<Set<?>>, Object>> getBoundSets() {
-    return new Iterable<Entry<NamedParameterNode<Set<?>>, Object>>() {
-
-      @Override
-      public Iterator<Entry<NamedParameterNode<Set<?>>, Object>> iterator() {
-        return builder.boundSetEntries.iterator();
-      }
-    };
+  public Set<NamedParameterNode<Set<?>>> getBoundSets() {
+    return builder.boundSetEntries.keySet();
   }
 
   @Override

Reply via email to