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

bertty pushed a commit to branch debugger
in repository https://gitbox.apache.org/repos/asf/incubator-wayang.git

commit 8f1f5f7f61fc7ec840dac2e0dace2d1dbfe33467
Author: Bertty Contreras-Rojas <[email protected]>
AuthorDate: Tue Apr 6 13:22:25 2021 -0400

    [WAYANG-28] add Wrappers of the tagger function
---
 .../core/tagger/wrapper/FlatmapWrapperHackit.java  | 45 ++++++++++++++++++++++
 .../core/tagger/wrapper/FunctionWrapperHackit.java | 38 ++++++++++++++++++
 .../tagger/wrapper/PredicateWrapperHackit.java     | 39 +++++++++++++++++++
 .../tagger/wrapper/template/FlatMapTemplate.java   | 25 ++++++++++++
 .../tagger/wrapper/template/FunctionTemplate.java  | 23 +++++++++++
 5 files changed, 170 insertions(+)

diff --git 
a/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/FlatmapWrapperHackit.java
 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/FlatmapWrapperHackit.java
new file mode 100644
index 0000000..a57cd23
--- /dev/null
+++ 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/FlatmapWrapperHackit.java
@@ -0,0 +1,45 @@
+/*
+ * 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.wayang.plugin.hackit.core.tagger.wrapper;
+
+import org.apache.wayang.plugin.hackit.core.tagger.HackitTagger;
+import 
org.apache.wayang.plugin.hackit.core.tagger.wrapper.template.FlatMapTemplate;
+import org.apache.wayang.plugin.hackit.core.tuple.HackitTuple;
+
+import java.util.Iterator;
+
+public class FlatmapWrapperHackit<IDType, I, O>
+        extends HackitTagger
+        implements FlatMapTemplate<HackitTuple<IDType, I>, HackitTuple<IDType, 
O>> {
+
+    private FlatMapTemplate<I, O> function;
+
+    public FlatmapWrapperHackit(
+            FlatMapTemplate<I, O> function
+    ) {
+        this.function = function;
+    }
+
+
+    @Override
+    public Iterator<HackitTuple<IDType, O>> execute(HackitTuple<IDType, I> 
kiHackItTuple) {
+        this.preTaggingTuple(kiHackItTuple);
+        Iterator<O> result = this.function.execute(kiHackItTuple.getValue());
+        return this.postTaggingTuple(kiHackItTuple, result);
+    }
+}
diff --git 
a/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/FunctionWrapperHackit.java
 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/FunctionWrapperHackit.java
new file mode 100644
index 0000000..c244eb0
--- /dev/null
+++ 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/FunctionWrapperHackit.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.wayang.plugin.hackit.core.tagger.wrapper;
+
+import org.apache.wayang.plugin.hackit.core.tagger.HackitTagger;
+import 
org.apache.wayang.plugin.hackit.core.tagger.wrapper.template.FunctionTemplate;
+import org.apache.wayang.plugin.hackit.core.tuple.HackitTuple;
+
+public class FunctionWrapperHackit <IDType, I, O> extends HackitTagger 
implements FunctionTemplate<HackitTuple<IDType, I>, HackitTuple<IDType, O>> {
+
+    private FunctionTemplate<I, O> function;
+
+    public FunctionWrapperHackit(FunctionTemplate<I, O> function) {
+        this.function = function;
+    }
+
+    @Override
+    public HackitTuple<IDType, O> execute(HackitTuple<IDType, I> v1) {
+        this.preTaggingTuple(v1);
+        O result = this.function.execute(v1.getValue());
+        return this.postTaggingTuple(v1, result);
+    }
+}
diff --git 
a/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/PredicateWrapperHackit.java
 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/PredicateWrapperHackit.java
new file mode 100644
index 0000000..c2636e2
--- /dev/null
+++ 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/PredicateWrapperHackit.java
@@ -0,0 +1,39 @@
+/*
+ * 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.wayang.plugin.hackit.core.tagger.wrapper;
+
+import org.apache.wayang.plugin.hackit.core.tagger.HackitTagger;
+import 
org.apache.wayang.plugin.hackit.core.tagger.wrapper.template.FunctionTemplate;
+import org.apache.wayang.plugin.hackit.core.tuple.HackitTuple;
+
+public class PredicateWrapperHackit<IDType, I> extends HackitTagger implements 
FunctionTemplate<HackitTuple<IDType, I>, Boolean> {
+
+    private FunctionTemplate<I, Boolean> function;
+
+    public PredicateWrapperHackit(FunctionTemplate<I, Boolean> function) {
+        this.function = function;
+    }
+
+    @Override
+    public Boolean execute(HackitTuple<IDType, I> v1) {
+        this.preTaggingTuple(v1);
+        Boolean result = this.function.execute(v1.getValue());
+        this.postTaggingTuple(v1);
+        return result;
+    }
+}
diff --git 
a/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/template/FlatMapTemplate.java
 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/template/FlatMapTemplate.java
new file mode 100644
index 0000000..abe6471
--- /dev/null
+++ 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/template/FlatMapTemplate.java
@@ -0,0 +1,25 @@
+/*
+ * 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.wayang.plugin.hackit.core.tagger.wrapper.template;
+
+import java.util.Iterator;
+
+public interface FlatMapTemplate<I, O> {
+
+    public Iterator<O> execute(I input);
+}
diff --git 
a/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/template/FunctionTemplate.java
 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/template/FunctionTemplate.java
new file mode 100644
index 0000000..9e5cb65
--- /dev/null
+++ 
b/wayang-plugins/wayang-hackit/wayang-hackit-core/src/main/java/org/apache/wayang/plugin/hackit/core/tagger/wrapper/template/FunctionTemplate.java
@@ -0,0 +1,23 @@
+/*
+ * 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.wayang.plugin.hackit.core.tagger.wrapper.template;
+
+public interface FunctionTemplate<I, O> {
+
+    public O execute(I input);
+}

Reply via email to