You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tz...@apache.org on 2019/02/22 07:45:39 UTC

[flink] 08/17: [FLINK-11485] [core] Move OptionalMap to org.apache.flink.util

This is an automated email from the ASF dual-hosted git repository.

tzulitai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git

commit a3822f220fc724934b55b9a7994e86afa926a41f
Author: Tzu-Li (Gordon) Tai <tz...@apache.org>
AuthorDate: Thu Jan 31 17:29:26 2019 +0800

    [FLINK-11485] [core] Move OptionalMap to org.apache.flink.util
    
    This utility class may commonly be used by the KryoSerializer and the
    PojoSerializer. This commit moves the utility to a more suitable package
    and adjusts usage access.
---
 .../runtime/kryo/KryoSerializerSnapshot.java       |  6 ++--
 .../runtime/kryo/KryoSerializerSnapshotData.java   |  3 +-
 .../runtime/kryo => util}/OptionalMap.java         | 34 ++++++++++++----------
 .../runtime/kryo => util}/OptionalMapTest.java     |  4 +--
 4 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshot.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshot.java
index 37a0104..77242e6 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshot.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshot.java
@@ -23,9 +23,9 @@ import org.apache.flink.api.common.typeutils.TypeSerializer;
 import org.apache.flink.api.common.typeutils.TypeSerializerSchemaCompatibility;
 import org.apache.flink.api.common.typeutils.TypeSerializerSnapshot;
 import org.apache.flink.api.java.typeutils.runtime.KryoRegistration;
-import org.apache.flink.api.java.typeutils.runtime.kryo.OptionalMap.MergeResult;
 import org.apache.flink.core.memory.DataInputView;
 import org.apache.flink.core.memory.DataOutputView;
+import org.apache.flink.util.OptionalMap.MergeResult;
 
 import com.esotericsoftware.kryo.Serializer;
 import org.slf4j.Logger;
@@ -36,8 +36,8 @@ import java.util.LinkedHashMap;
 import java.util.function.Function;
 
 import static org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializerSnapshotData.createFrom;
-import static org.apache.flink.api.java.typeutils.runtime.kryo.OptionalMap.mergeRightIntoLeft;
-import static org.apache.flink.api.java.typeutils.runtime.kryo.OptionalMap.optionalMapOf;
+import static org.apache.flink.util.OptionalMap.mergeRightIntoLeft;
+import static org.apache.flink.util.OptionalMap.optionalMapOf;
 
 /**
  * {@link TypeSerializerSnapshot} for {@link KryoSerializer}.
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshotData.java b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshotData.java
index 9587101..40b12a4 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshotData.java
+++ b/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializerSnapshotData.java
@@ -25,6 +25,7 @@ import org.apache.flink.api.java.typeutils.runtime.KryoRegistration;
 import org.apache.flink.core.memory.DataInputView;
 import org.apache.flink.core.memory.DataOutputView;
 import org.apache.flink.util.InstantiationUtil;
+import org.apache.flink.util.OptionalMap;
 
 import com.esotericsoftware.kryo.Serializer;
 import org.slf4j.Logger;
@@ -36,7 +37,7 @@ import java.util.LinkedHashMap;
 import java.util.Map.Entry;
 import java.util.function.Function;
 
-import static org.apache.flink.api.java.typeutils.runtime.kryo.OptionalMap.optionalMapOf;
+import static org.apache.flink.util.OptionalMap.optionalMapOf;
 import static org.apache.flink.util.Preconditions.checkNotNull;
 
 final class KryoSerializerSnapshotData<T> {
diff --git a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/OptionalMap.java b/flink-core/src/main/java/org/apache/flink/util/OptionalMap.java
similarity index 89%
rename from flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/OptionalMap.java
rename to flink-core/src/main/java/org/apache/flink/util/OptionalMap.java
index afabb4b..4552102 100644
--- a/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/OptionalMap.java
+++ b/flink-core/src/main/java/org/apache/flink/util/OptionalMap.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package org.apache.flink.api.java.typeutils.runtime.kryo;
+package org.apache.flink.util;
 
 import org.apache.flink.annotation.VisibleForTesting;
 
@@ -36,7 +36,7 @@ import static org.apache.flink.util.Preconditions.checkNotNull;
  * An OptionalMap is an order preserving map (like {@link LinkedHashMap}) where keys have a unique string name, but are
  * optionally present, and the values are optional.
  */
-final class OptionalMap<K, V> {
+public final class OptionalMap<K, V> {
 
 
 	// --------------------------------------------------------------------------------------------------------
@@ -55,7 +55,7 @@ final class OptionalMap<K, V> {
 	 * @param <V>           value type
 	 * @return an {@code OptionalMap} with optional named keys, and optional values.
 	 */
-	static <K, V> OptionalMap<K, V> optionalMapOf(LinkedHashMap<K, V> sourceMap, Function<K, String> keyNameGetter) {
+	public static <K, V> OptionalMap<K, V> optionalMapOf(LinkedHashMap<K, V> sourceMap, Function<K, String> keyNameGetter) {
 
 		LinkedHashMap<String, KeyValue<K, V>> underlyingMap = new LinkedHashMap<>(sourceMap.size());
 
@@ -70,7 +70,7 @@ final class OptionalMap<K, V> {
 	/**
 	 * Tries to merges the keys and the values of @right into @left.
 	 */
-	static <K, V> MergeResult<K, V> mergeRightIntoLeft(OptionalMap<K, V> left, OptionalMap<K, V> right) {
+	public static <K, V> MergeResult<K, V> mergeRightIntoLeft(OptionalMap<K, V> left, OptionalMap<K, V> right) {
 		OptionalMap<K, V> merged = new OptionalMap<>(left);
 		merged.putAll(right);
 
@@ -83,7 +83,7 @@ final class OptionalMap<K, V> {
 
 	private final LinkedHashMap<String, KeyValue<K, V>> underlyingMap;
 
-	OptionalMap() {
+	public OptionalMap() {
 		this(new LinkedHashMap<>());
 	}
 
@@ -100,11 +100,11 @@ final class OptionalMap<K, V> {
 	// API
 	// --------------------------------------------------------------------------------------------------------
 
-	int size() {
+	public int size() {
 		return underlyingMap.size();
 	}
 
-	void put(String keyName, @Nullable K key, @Nullable V value) {
+	public void put(String keyName, @Nullable K key, @Nullable V value) {
 		checkNotNull(keyName);
 
 		underlyingMap.compute(keyName, (unused, kv) ->
@@ -121,7 +121,7 @@ final class OptionalMap<K, V> {
 	/**
 	 * Returns the key names of any keys or values that are absent.
 	 */
-	Set<String> absentKeysOrValues() {
+	public Set<String> absentKeysOrValues() {
 		return underlyingMap.entrySet()
 			.stream()
 			.filter(OptionalMap::keyOrValueIsAbsent)
@@ -134,7 +134,7 @@ final class OptionalMap<K, V> {
 	 * a map with these key and values, stripped from their Optional wrappers.
 	 * NOTE: please note that if any of the key or values are absent this method would throw an {@link IllegalStateException}.
 	 */
-	LinkedHashMap<K, V> unwrapOptionals() {
+	public LinkedHashMap<K, V> unwrapOptionals() {
 		final LinkedHashMap<K, V> unwrapped = new LinkedHashMap<>(underlyingMap.size());
 
 		for (Entry<String, KeyValue<K, V>> entry : underlyingMap.entrySet()) {
@@ -155,7 +155,7 @@ final class OptionalMap<K, V> {
 	/**
 	 * Returns the key names added to this map.
 	 */
-	Set<String> keyNames() {
+	public Set<String> keyNames() {
 		return underlyingMap.keySet();
 	}
 
@@ -215,7 +215,11 @@ final class OptionalMap<K, V> {
 	// Merge
 	// --------------------------------------------------------------------------------------------------------
 
-	static final class MergeResult<K, V> {
+	/**
+	 * The result of merging two {@link LinkedOptionalMap}s using
+	 * {@link #mergeRightIntoLeft(LinkedOptionalMap, LinkedOptionalMap)}.
+	 */
+	public static final class MergeResult<K, V> {
 		private final OptionalMap<K, V> merged;
 		private final Set<String> missingKeys;
 		private final boolean isOrderedSubset;
@@ -226,22 +230,22 @@ final class OptionalMap<K, V> {
 			this.isOrderedSubset = isOrderedSubset;
 		}
 
-		boolean hasMissingKeys() {
+		public boolean hasMissingKeys() {
 			return !missingKeys.isEmpty();
 		}
 
-		Set<String> missingKeys() {
+		public Set<String> missingKeys() {
 			return missingKeys;
 		}
 
-		LinkedHashMap<K, V> getMerged() {
+		public LinkedHashMap<K, V> getMerged() {
 			return merged.unwrapOptionals();
 		}
 
 		/**
 		 * Returns {@code true} if keyNames present at @left, appearing in prefix order at @right.
 		 */
-		boolean isOrderedSubset() {
+		public boolean isOrderedSubset() {
 			return isOrderedSubset;
 		}
 	}
diff --git a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/OptionalMapTest.java b/flink-core/src/test/java/org/apache/flink/util/OptionalMapTest.java
similarity index 97%
rename from flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/OptionalMapTest.java
rename to flink-core/src/test/java/org/apache/flink/util/OptionalMapTest.java
index ff7f31f..050dba8 100644
--- a/flink-core/src/test/java/org/apache/flink/api/java/typeutils/runtime/kryo/OptionalMapTest.java
+++ b/flink-core/src/test/java/org/apache/flink/util/OptionalMapTest.java
@@ -16,9 +16,9 @@
  * limitations under the License.
  */
 
-package org.apache.flink.api.java.typeutils.runtime.kryo;
+package org.apache.flink.util;
 
-import org.apache.flink.api.java.typeutils.runtime.kryo.OptionalMap.MergeResult;
+import org.apache.flink.util.OptionalMap.MergeResult;
 
 import org.junit.Test;