Updated Branches:
  refs/heads/branch-0.8 dfc62e294 -> 64fae16ec

add Function3 and WrappedFunction3


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

Branch: refs/heads/branch-0.8
Commit: a7d0f2ff14ed7608cba5a80a84e17b97a965598d
Parents: f930dd4
Author: Xi Liu <x...@conviva.com>
Authored: Wed Oct 9 12:26:10 2013 -0700
Committer: Xi Liu <x...@conviva.com>
Committed: Wed Oct 9 12:26:10 2013 -0700

----------------------------------------------------------------------
 .../spark/api/java/function/Function3.java      | 38 ++++++++++++++++++++
 .../api/java/function/WrappedFunction3.scala    | 32 +++++++++++++++++
 2 files changed, 70 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-spark/blob/a7d0f2ff/core/src/main/scala/org/apache/spark/api/java/function/Function3.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/scala/org/apache/spark/api/java/function/Function3.java 
b/core/src/main/scala/org/apache/spark/api/java/function/Function3.java
new file mode 100644
index 0000000..6c1ce4c
--- /dev/null
+++ b/core/src/main/scala/org/apache/spark/api/java/function/Function3.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.spark.api.java.function;
+
+import scala.reflect.ClassManifest;
+import scala.reflect.ClassManifest$;
+import scala.runtime.AbstractFunction3;
+
+import java.io.Serializable;
+
+/**
+ * A three-argument function that takes arguments of type T1, T2, and T3 and 
returns an R.
+ */
+public abstract class Function3<T1, T2, T3, R> extends WrappedFunction3<T1, 
T2, T3, R>
+        implements Serializable {
+
+    public abstract R call(T1 t1, T2 t2, T3 t3) throws Exception;
+
+    public ClassManifest<R> returnType() {
+        return (ClassManifest<R>) 
ClassManifest$.MODULE$.fromClass(Object.class);
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-spark/blob/a7d0f2ff/core/src/main/scala/org/apache/spark/api/java/function/WrappedFunction3.scala
----------------------------------------------------------------------
diff --git 
a/core/src/main/scala/org/apache/spark/api/java/function/WrappedFunction3.scala 
b/core/src/main/scala/org/apache/spark/api/java/function/WrappedFunction3.scala
new file mode 100644
index 0000000..f8c2b6c
--- /dev/null
+++ 
b/core/src/main/scala/org/apache/spark/api/java/function/WrappedFunction3.scala
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.spark.api.java.function
+
+import scala.runtime.AbstractFunction3
+
+/**
+ * Subclass of Function3 for ease of calling from Java. The main thing it does 
is re-expose the
+ * apply() method as call() and declare that it can throw Exception (since 
AbstractFunction3.apply
+ * isn't marked to allow that).
+ */
+private[spark] abstract class WrappedFunction3[T1, T2, T3, R] extends 
AbstractFunction3[T1, T2, T3, R] {
+  @throws(classOf[Exception])
+  def call(t1: T1, t2: T2, t3: T3): R
+
+  final def apply(t1: T1, t2: T2, t3: T3): R = call(t1, t2, t3)
+}

Reply via email to