You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by se...@apache.org on 2015/08/14 20:38:01 UTC

[3/4] flink git commit: [FLINK-2457] [core] Slight adjustedments to Tuple0 singleton names to match naming scheme.

[FLINK-2457] [core] Slight adjustedments to Tuple0 singleton names to match naming scheme.


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

Branch: refs/heads/master
Commit: c34af2068336f28021d27b878523c055ed5afecf
Parents: fab9ce5
Author: Stephan Ewen <se...@apache.org>
Authored: Fri Aug 14 18:06:29 2015 +0200
Committer: Stephan Ewen <se...@apache.org>
Committed: Fri Aug 14 18:07:16 2015 +0200

----------------------------------------------------------------------
 .../org/apache/flink/api/java/tuple/Tuple0.java | 21 ++++++------
 .../api/java/tuple/builder/Tuple0Builder.java   |  2 +-
 .../flink/api/java/typeutils/TupleTypeInfo.java |  2 +-
 .../typeutils/runtime/Tuple0Serializer.java     | 34 +++++++++++++++-----
 .../typeutils/runtime/TupleSerializerTest.java  |  6 ++--
 5 files changed, 40 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/c34af206/flink-java/src/main/java/org/apache/flink/api/java/tuple/Tuple0.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/tuple/Tuple0.java b/flink-java/src/main/java/org/apache/flink/api/java/tuple/Tuple0.java
index c2db0bc..1caee2a 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/tuple/Tuple0.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/tuple/Tuple0.java
@@ -21,16 +21,20 @@ import java.io.ObjectStreamException;
 
 /**
  * A tuple with 0 fields.
- * <p>
- * {@code Tuple0} is a singleton.
+ * 
+ * <p>The Tuple0 is a soft singleton, i.e., there is a "singleton" instance, but it does
+ * not prevent creation of additional instances.</p>
  * 
  * @see Tuple
  */
 public class Tuple0 extends Tuple {
 	private static final long serialVersionUID = 1L;
 
-	public static final Tuple0 instance = new Tuple0();
+	/** An immutable reusable Tuple0 instance */
+	public static final Tuple0 INSTANCE = new Tuple0();
 
+	// ------------------------------------------------------------------------
+	
 	@Override
 	public int getArity() {
 		return 0;
@@ -69,13 +73,7 @@ public class Tuple0 extends Tuple {
 	 */
 	@Override
 	public boolean equals(Object o) {
-		if (this == o) {
-			return true;
-		}
-		if (!(o instanceof Tuple0)) {
-			return false;
-		}
-		return true;
+		return this == o || o instanceof Tuple0;
 	}
 
 	@Override
@@ -85,7 +83,6 @@ public class Tuple0 extends Tuple {
 
 	// singleton deserialization
 	private Object readResolve() throws ObjectStreamException {
-		return instance;
+		return INSTANCE;
 	}
-
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/c34af206/flink-java/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java b/flink-java/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
index 2a1546e..5facb7e 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
@@ -35,7 +35,7 @@ public class Tuple0Builder {
 	private List<Tuple0> tuples = new ArrayList<Tuple0>();
 
 	public Tuple0Builder add() {
-		tuples.add(Tuple0.instance);
+		tuples.add(Tuple0.INSTANCE);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/flink/blob/c34af206/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
index 0e59b8e..a671bd4 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/TupleTypeInfo.java
@@ -77,7 +77,7 @@ public final class TupleTypeInfo<T extends Tuple> extends TupleTypeInfoBase<T> {
 	@Override
 	public TupleSerializer<T> createSerializer(ExecutionConfig executionConfig) {
 		if (this.tupleType == Tuple0.class) {
-			return (TupleSerializer<T>) Tuple0Serializer.getInstance();
+			return (TupleSerializer<T>) Tuple0Serializer.INSTANCE;
 		}
 
 		TypeSerializer<?>[] fieldSerializers = new TypeSerializer<?>[getArity()];

http://git-wip-us.apache.org/repos/asf/flink/blob/c34af206/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/Tuple0Serializer.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/Tuple0Serializer.java b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/Tuple0Serializer.java
index e2d43e1..246cecf 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/Tuple0Serializer.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/Tuple0Serializer.java
@@ -19,17 +19,18 @@ import org.apache.flink.core.memory.DataInputView;
 import org.apache.flink.core.memory.DataOutputView;
 
 public class Tuple0Serializer extends TupleSerializer<Tuple0> {
+	
 	private static final long serialVersionUID = 1278813169022975971L;
 
-	private static final Tuple0Serializer singleton = new Tuple0Serializer();
+	public static final Tuple0Serializer INSTANCE = new Tuple0Serializer();
 
+	// ------------------------------------------------------------------------
+	
 	private Tuple0Serializer() {
 		super(Tuple0.class, new TypeSerializer<?>[0]);
 	}
 
-	public static Tuple0Serializer getInstance() {
-		return singleton;
-	}
+	// ------------------------------------------------------------------------
 
 	@Override
 	public Tuple0Serializer duplicate() {
@@ -38,13 +39,13 @@ public class Tuple0Serializer extends TupleSerializer<Tuple0> {
 
 	@Override
 	public Tuple0 createInstance() {
-		return Tuple0.instance;
+		return Tuple0.INSTANCE;
 	}
 
 	@Override
 	public Tuple0 createInstance(Object[] fields) {
 		if (fields == null || fields.length == 0) {
-			return Tuple0.instance;
+			return Tuple0.INSTANCE;
 		}
 
 		throw new UnsupportedOperationException(
@@ -53,7 +54,7 @@ public class Tuple0Serializer extends TupleSerializer<Tuple0> {
 
 	@Override
 	public Tuple0 copy(Tuple0 from) {
-		return Tuple0.instance;
+		return from;
 	}
 
 	@Override
@@ -74,7 +75,7 @@ public class Tuple0Serializer extends TupleSerializer<Tuple0> {
 	@Override
 	public Tuple0 deserialize(DataInputView source) throws IOException {
 		source.readByte();
-		return Tuple0.instance;
+		return Tuple0.INSTANCE;
 	}
 
 	@Override
@@ -88,4 +89,21 @@ public class Tuple0Serializer extends TupleSerializer<Tuple0> {
 		target.writeByte(source.readByte());
 	}
 
+	// ------------------------------------------------------------------------
+
+
+	@Override
+	public int hashCode() {
+		return 1837461876;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		return obj == this || obj instanceof Tuple0Serializer;
+	}
+
+	@Override
+	public String toString() {
+		return "Tuple0Serializer";
+	}
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/c34af206/flink-java/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerTest.java
----------------------------------------------------------------------
diff --git a/flink-java/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerTest.java b/flink-java/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerTest.java
index beda8e9..017eb44 100644
--- a/flink-java/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerTest.java
+++ b/flink-java/src/test/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializerTest.java
@@ -44,14 +44,14 @@ public class TupleSerializerTest {
 
 	@Test
 	public void testTuple0() {
-		Tuple0[] testTuples = new Tuple0[] { Tuple0.instance, Tuple0.instance, Tuple0.instance };
+		Tuple0[] testTuples = new Tuple0[] { Tuple0.INSTANCE, Tuple0.INSTANCE, Tuple0.INSTANCE };
 
 		runTests(testTuples);
 	}
 
 	@Test
 	public void testTuple1Int() {
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({"unchecked", "rawtypes"})
 		Tuple1<Integer>[] testTuples = new Tuple1[] {
 			new Tuple1<Integer>(42), new Tuple1<Integer>(1), new Tuple1<Integer>(0), new Tuple1<Integer>(-1),
 			new Tuple1<Integer>(Integer.MAX_VALUE), new Tuple1<Integer>(Integer.MIN_VALUE)
@@ -64,7 +64,7 @@ public class TupleSerializerTest {
 	public void testTuple1String() {
 		Random rnd = new Random(68761564135413L);
 		
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({"unchecked", "rawtypes"})
 		Tuple1<String>[] testTuples = new Tuple1[] {
 			new Tuple1<String>(StringUtils.getRandomString(rnd, 10, 100)),
 			new Tuple1<String>("abc"),