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; }
