Repository: flink
Updated Branches:
  refs/heads/master 023146025 -> 328f72d14


[hotfix] [core] Add @FunctionalInterface to KeySelector

That clarifies that this interface should always be a SAM interface
to allow that users created lambdas for its use.


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/328f72d1
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/328f72d1
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/328f72d1

Branch: refs/heads/master
Commit: 328f72d14ea88d082fbbaae9193065be575ef846
Parents: 0231460
Author: Stephan Ewen <[email protected]>
Authored: Tue Mar 20 15:43:33 2018 +0100
Committer: Stephan Ewen <[email protected]>
Committed: Tue Mar 20 21:25:25 2018 +0100

----------------------------------------------------------------------
 .../flink/api/java/functions/KeySelector.java    | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/328f72d1/flink-core/src/main/java/org/apache/flink/api/java/functions/KeySelector.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/functions/KeySelector.java 
b/flink-core/src/main/java/org/apache/flink/api/java/functions/KeySelector.java
index 4aa8469..5594f9e 100644
--- 
a/flink-core/src/main/java/org/apache/flink/api/java/functions/KeySelector.java
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/functions/KeySelector.java
@@ -27,19 +27,20 @@ import java.io.Serializable;
  * The {@link KeySelector} allows to use deterministic objects for operations 
such as
  * reduce, reduceGroup, join, coGroup, etc. If invoked multiple times on the 
same object,
  * the returned key must be the same.
- * 
- * The extractor takes an object and returns the deterministic key for that 
object.
+ *
+ * <p>The extractor takes an object and returns the deterministic key for that 
object.
  *
  * @param <IN> Type of objects to extract the key from.
  * @param <KEY> Type of key.
  */
 @Public
+@FunctionalInterface
 public interface KeySelector<IN, KEY> extends Function, Serializable {
 
        /**
         * User-defined function that deterministically extracts the key from 
an object.
-        * 
-        * For example for a class:
+        *
+        * <p>For example for a class:
         * <pre>
         *      public class Word {
         *              String word;
@@ -48,19 +49,19 @@ public interface KeySelector<IN, KEY> extends Function, 
Serializable {
         * </pre>
         * The key extractor could return the word as
         * a key to group all Word objects by the String they contain.
-        * 
-        * The code would look like this
+        *
+        * <p>The code would look like this
         * <pre>
         *      public String getKey(Word w) {
         *              return w.word;
         *      }
         * </pre>
-        * 
+        *
         * @param value The object to get the key from.
         * @return The extracted key.
-        * 
+        *
         * @throws Exception Throwing an exception will cause the execution of 
the respective task to fail,
-        *                   and trigger recovery or cancellation of the 
program. 
+        *                   and trigger recovery or cancellation of the 
program.
         */
        KEY getKey(IN value) throws Exception;
 }

Reply via email to