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