From 12f5487b48332e90bb79047f8614a4c495a5d0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20G=C3=B3mez?= Date: Thu, 28 May 2020 16:27:44 +0200 Subject: [PATCH 01/19] [#1494] prepared further development (#1495) fixes #1494 --- gradoop-checkstyle/pom.xml | 2 +- gradoop-common/pom.xml | 2 +- gradoop-data-integration/pom.xml | 2 +- gradoop-examples/gradoop-examples-operators/pom.xml | 2 +- gradoop-examples/gradoop-examples-temporal/pom.xml | 2 +- gradoop-examples/pom.xml | 2 +- gradoop-flink/pom.xml | 2 +- gradoop-quickstart/pom.xml | 2 +- gradoop-store/gradoop-accumulo/pom.xml | 2 +- gradoop-store/gradoop-hbase/pom.xml | 2 +- gradoop-store/gradoop-store-api/pom.xml | 2 +- gradoop-store/pom.xml | 2 +- gradoop-temporal/pom.xml | 2 +- pom.xml | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/gradoop-checkstyle/pom.xml b/gradoop-checkstyle/pom.xml index 15d2c1478840..6c40e139fe9d 100644 --- a/gradoop-checkstyle/pom.xml +++ b/gradoop-checkstyle/pom.xml @@ -5,7 +5,7 @@ org.gradoop gradoop-parent - 0.5.2 + 0.6.0-SNAPSHOT gradoop-checkstyle diff --git a/gradoop-common/pom.xml b/gradoop-common/pom.xml index b8e0b4707032..21b6b1babd79 100644 --- a/gradoop-common/pom.xml +++ b/gradoop-common/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.5.2 + 0.6.0-SNAPSHOT gradoop-common diff --git a/gradoop-data-integration/pom.xml b/gradoop-data-integration/pom.xml index e92769de0a2b..971b02d82afb 100644 --- a/gradoop-data-integration/pom.xml +++ b/gradoop-data-integration/pom.xml @@ -5,7 +5,7 @@ org.gradoop gradoop-parent - 0.5.2 + 0.6.0-SNAPSHOT gradoop-data-integration diff --git a/gradoop-examples/gradoop-examples-operators/pom.xml b/gradoop-examples/gradoop-examples-operators/pom.xml index 37746a054be6..133530238e32 100644 --- a/gradoop-examples/gradoop-examples-operators/pom.xml +++ b/gradoop-examples/gradoop-examples-operators/pom.xml @@ -8,7 +8,7 @@ gradoop-examples org.gradoop - 0.5.2 + 0.6.0-SNAPSHOT gradoop-examples-operators diff --git a/gradoop-examples/gradoop-examples-temporal/pom.xml b/gradoop-examples/gradoop-examples-temporal/pom.xml index fcdc55739c39..02bf90328b83 100644 --- a/gradoop-examples/gradoop-examples-temporal/pom.xml +++ b/gradoop-examples/gradoop-examples-temporal/pom.xml @@ -8,7 +8,7 @@ gradoop-examples org.gradoop - 0.5.2 + 0.6.0-SNAPSHOT gradoop-examples-temporal diff --git a/gradoop-examples/pom.xml b/gradoop-examples/pom.xml index 145dee6c6c23..fcc358d4346a 100644 --- a/gradoop-examples/pom.xml +++ b/gradoop-examples/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.5.2 + 0.6.0-SNAPSHOT gradoop-examples diff --git a/gradoop-flink/pom.xml b/gradoop-flink/pom.xml index cf103b9e0cf1..b150591fb7d9 100644 --- a/gradoop-flink/pom.xml +++ b/gradoop-flink/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.5.2 + 0.6.0-SNAPSHOT gradoop-flink diff --git a/gradoop-quickstart/pom.xml b/gradoop-quickstart/pom.xml index d3a444f79f53..a5b22676c57e 100644 --- a/gradoop-quickstart/pom.xml +++ b/gradoop-quickstart/pom.xml @@ -5,7 +5,7 @@ org.gradoop gradoop-parent - 0.5.2 + 0.6.0-SNAPSHOT gradoop-quickstart diff --git a/gradoop-store/gradoop-accumulo/pom.xml b/gradoop-store/gradoop-accumulo/pom.xml index 6bd917e7a099..adb668a9fce4 100644 --- a/gradoop-store/gradoop-accumulo/pom.xml +++ b/gradoop-store/gradoop-accumulo/pom.xml @@ -7,7 +7,7 @@ gradoop-store org.gradoop - 0.5.2 + 0.6.0-SNAPSHOT gradoop-accumulo diff --git a/gradoop-store/gradoop-hbase/pom.xml b/gradoop-store/gradoop-hbase/pom.xml index 934aa01393db..46a347a8f011 100644 --- a/gradoop-store/gradoop-hbase/pom.xml +++ b/gradoop-store/gradoop-hbase/pom.xml @@ -5,7 +5,7 @@ gradoop-store org.gradoop - 0.5.2 + 0.6.0-SNAPSHOT gradoop-hbase diff --git a/gradoop-store/gradoop-store-api/pom.xml b/gradoop-store/gradoop-store-api/pom.xml index 2fa2747938a2..ebed68f95f8a 100644 --- a/gradoop-store/gradoop-store-api/pom.xml +++ b/gradoop-store/gradoop-store-api/pom.xml @@ -7,7 +7,7 @@ gradoop-store org.gradoop - 0.5.2 + 0.6.0-SNAPSHOT gradoop-store-api diff --git a/gradoop-store/pom.xml b/gradoop-store/pom.xml index 4825dcb3eaee..64348f626dc8 100644 --- a/gradoop-store/pom.xml +++ b/gradoop-store/pom.xml @@ -5,7 +5,7 @@ gradoop-parent org.gradoop - 0.5.2 + 0.6.0-SNAPSHOT 4.0.0 diff --git a/gradoop-temporal/pom.xml b/gradoop-temporal/pom.xml index 4e4d9817377e..f7010e65fd2d 100644 --- a/gradoop-temporal/pom.xml +++ b/gradoop-temporal/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.5.2 + 0.6.0-SNAPSHOT gradoop-temporal diff --git a/pom.xml b/pom.xml index 66f0c2c42f63..8a858058a9c7 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ org.gradoop gradoop-parent pom - 0.5.2 + 0.6.0-SNAPSHOT Gradoop Parent http://www.gradoop.org From 61be496a3a1ebeedcea3820d8f83c29f68bc124b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2020 10:59:45 +0200 Subject: [PATCH 02/19] Bump junit from 4.12 to 4.13.1 (#1497) fixes the security vulnerability of junit 4.12 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8a858058a9c7..b65fb969e623 100644 --- a/pom.xml +++ b/pom.xml @@ -163,7 +163,7 @@ 11.0.2 1.4.3 0.1.10 - 4.12 + 4.13.1 1.3.7 1.2.3 4.0.2 From f425f693b6a348e388aad6e911ed2870162ed65c Mon Sep 17 00:00:00 2001 From: Philip Fritzsche Date: Thu, 14 Jan 2021 16:29:18 +0100 Subject: [PATCH 03/19] [#1472] Add temporal verify operator. (#1475) fixes #1472 --- .../model/api/TemporalGraphOperators.java | 13 ++ .../verify/VerifyAndUpdateEdgeValidity.java | 51 +++++++ .../verify/functions/UpdateEdgeValidity.java | 45 ++++++ .../verify/functions/package-info.java | 19 +++ .../impl/operators/verify/package-info.java | 20 +++ .../VerifyAndUpdateEdgeValidityTest.java | 106 ++++++++++++++ .../functions/UpdateEdgeValidityTest.java | 135 ++++++++++++++++++ 7 files changed, 389 insertions(+) create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java index 1fbd2616b6b5..d2ba9591d8df 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java @@ -29,6 +29,7 @@ import org.gradoop.temporal.model.impl.functions.predicates.ValidDuring; import org.gradoop.temporal.model.impl.operators.diff.Diff; import org.gradoop.temporal.model.impl.operators.snapshot.Snapshot; +import org.gradoop.temporal.model.impl.operators.verify.VerifyAndUpdateEdgeValidity; import org.gradoop.temporal.model.impl.pojo.TemporalEdge; import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; import org.gradoop.temporal.model.impl.pojo.TemporalVertex; @@ -241,4 +242,16 @@ default TemporalGraph diff(TemporalPredicate firstSnapshot, TemporalPredicate se */ LogicalGraph toLogicalGraph(); + /** + * Updates edges of this graph to set their validity such that an edge is only valid if both of + * its adjacent vertices are valid at that time. Edges that can never be valid since the + * validity of both vertices does not overlap, are discarded.

+ * Note that this will also remove dangling edges, in the same way {@link #verify()} would. + * + * @return This graph with invalid or dangling edges removed. + */ + default TemporalGraph updateEdgeValidity() { + return callForGraph(new VerifyAndUpdateEdgeValidity()); + } + } diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java new file mode 100644 index 000000000000..d00a52c96d92 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java @@ -0,0 +1,51 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.verify; + +import org.apache.flink.api.java.DataSet; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphOperator; +import org.gradoop.flink.model.impl.functions.epgm.Id; +import org.gradoop.flink.model.impl.functions.epgm.SourceId; +import org.gradoop.flink.model.impl.functions.epgm.TargetId; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.operators.verify.functions.UpdateEdgeValidity; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +/** + * Verifies the edge set of a graph. This removes dangling edges (in the same way as + * {@link org.gradoop.flink.model.impl.operators.verify.Verify} would) and updates the remaining edges so that + * the edge is only valid when both its source- and target-vertex are valid. + */ +public class VerifyAndUpdateEdgeValidity implements UnaryBaseGraphToBaseGraphOperator { + + @Override + public TemporalGraph execute(TemporalGraph graph) { + final DataSet vertices = graph.getVertices(); + final DataSet verifiedEdges = graph.getEdges() + .join(vertices) + .where(new SourceId<>()) + .equalTo(new Id<>()) + .with(new UpdateEdgeValidity()) + .name("Verify and update edges (1/2)") + .join(vertices) + .where(new TargetId<>()) + .equalTo(new Id<>()) + .with(new UpdateEdgeValidity()) + .name("Verify and update edges (2/2)"); + return graph.getFactory().fromDataSets(graph.getGraphHead(), vertices, verifiedEdges); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java new file mode 100644 index 000000000000..70080f04af47 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java @@ -0,0 +1,45 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.verify.functions; + +import org.apache.flink.api.common.functions.FlatJoinFunction; +import org.apache.flink.util.Collector; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +/** + * Updates the validity of an edge if its valid time is not contained in the valid time of the vertex. + * This will also delete the edge if valid times of edge and adjacent vertex do not overlap. + */ +public class UpdateEdgeValidity implements FlatJoinFunction { + + @Override + public void join(TemporalEdge edge, TemporalVertex vertex, Collector out) { + final long vertexValidFrom = vertex.getValidFrom(); + final long vertexValidTo = vertex.getValidTo(); + if (edge.getValidFrom() >= vertexValidTo || edge.getValidTo() <= vertexValidFrom) { + // Times do not overlap, discard the edge. + return; + } + if (edge.getValidFrom() < vertexValidFrom) { + edge.setValidFrom(vertexValidFrom); + } + if (edge.getValidTo() >= vertexValidTo) { + edge.setValidTo(vertexValidTo); + } + out.collect(edge); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java new file mode 100644 index 000000000000..e84b420f43b4 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Functions used by the temporal verify operator. + */ +package org.gradoop.temporal.model.impl.operators.verify.functions; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java new file mode 100644 index 000000000000..cac90b8c92dc --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains a temporal version of the verify operator that removes dangling edges and updates validity + * of edges. + */ +package org.gradoop.temporal.model.impl.operators.verify; diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java new file mode 100644 index 000000000000..120ce7840384 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java @@ -0,0 +1,106 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.verify; + +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.io.LocalCollectionOutputFormat; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalEdgeFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.fail; + +/** + * Test for the {@link VerifyAndUpdateEdgeValidity} operator. + */ +public class VerifyAndUpdateEdgeValidityTest extends TemporalGradoopTestBase { + + /** + * Test the operator on a graph. + * + * @throws Exception when the execution in Flink fails. + */ + @Test + public void testVerify() throws Exception { + final TemporalVertexFactory vf = getVertexFactory(); + final TemporalEdgeFactory ef = getEdgeFactory(); + final long validFromMax = asMillis("2019.03.01 12:00:00.000"); + final long validToMin = asMillis("2019.06.01 12:00:00.000"); + // Some vertices. + TemporalVertex v1 = vf.createVertex(); + v1.setValidFrom(asMillis("2019.01.01 12:00:00.000")); + v1.setValidTo(validToMin); + TemporalVertex v2 = vf.createVertex(); + v2.setValidFrom(validFromMax); + v2.setValidTo(asMillis("2019.09.01 12:00:00.000")); + // Some edges. + TemporalEdge e1 = ef.createEdge(v1.getId(), v2.getId()); + TemporalEdge e2 = ef.createEdge(v1.getId(), v1.getId()); + e2.setValidFrom(asMillis("2019.04.01 12:00:00.000")); + e2.setValidTo(asMillis("2019.10.01 12:00:00.000")); + TemporalEdge e3 = ef.createEdge(v2.getId(), v2.getId()); + e3.setValidFrom(asMillis("2018.01.01 12:00:00.000")); + e3.setValidTo(asMillis("2019.05.01 12:00:00.000")); + // Some dangling edges. + TemporalEdge ed1 = ef.createEdge(v1.getId(), GradoopId.get()); + TemporalEdge ed2 = ef.createEdge(GradoopId.get(), v2.getId()); + TemporalEdge ed3 = ef.createEdge(GradoopId.get(), GradoopId.get()); + + // Create graph and verify. + DataSet vertexSet = getExecutionEnvironment().fromElements(v1, v2); + DataSet edgeSet = getExecutionEnvironment().fromElements(e1, e2, e3, ed1, ed2, ed3); + TemporalGraph graph = getConfig().getTemporalGraphFactory().fromDataSets(vertexSet, edgeSet); + TemporalGraph result = graph.callForGraph(new VerifyAndUpdateEdgeValidity()); + + // Get result. + List resultVertices = new ArrayList<>(); + List resultEdges = new ArrayList<>(); + result.getVertices().output(new LocalCollectionOutputFormat<>(resultVertices)); + result.getEdges().output(new LocalCollectionOutputFormat<>(resultEdges)); + getExecutionEnvironment().execute(); + + assertEquals(resultVertices.size(), 2); + assertEquals(resultEdges.size(), 3); + // Check if correct edges were removed. + assertEquals(resultEdges.stream().map(TemporalEdge::getId).sorted().toArray(), + Stream.of(e1, e2, e3).map(TemporalEdge::getId).sorted().toArray()); + // Check if times were updated correctly. + for (TemporalEdge resultEdge : resultEdges) { + if (resultEdge.getId().equals(e1.getId())) { + assertEquals((long) resultEdge.getValidFrom(), validFromMax); + assertEquals((long) resultEdge.getValidTo(), validToMin); + } else if (resultEdge.getId().equals(e2.getId())) { + assertEquals(resultEdge.getValidFrom(), e2.getValidFrom()); + assertEquals((long) resultEdge.getValidTo(), validToMin); + } else if (resultEdge.getId().equals(e3.getId())) { + assertEquals((long) resultEdge.getValidFrom(), validFromMax); + assertEquals(resultEdge.getValidTo(), e3.getValidTo()); + } else { + fail(); + } + } + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java new file mode 100644 index 000000000000..99c4f60f80df --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java @@ -0,0 +1,135 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.verify.functions; + +import org.apache.flink.api.common.functions.util.ListCollector; +import org.apache.flink.util.Collector; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +/** + * Test for the {@link UpdateEdgeValidity} function used by the temporal verify operator. + */ +public class UpdateEdgeValidityTest extends TemporalGradoopTestBase { + + /** + * A list storing the join results. + */ + private List result; + + /** + * The operator to test. + */ + private UpdateEdgeValidity operator; + + /** + * The output for the operator. + */ + private Collector out; + + /** + * A test vertex. + */ + private TemporalVertex vertex; + + /** + * Set up this test. + */ + @BeforeMethod + public void setUp() { + result = new ArrayList<>(); + out = new ListCollector<>(result); + operator = new UpdateEdgeValidity(); + vertex = getVertexFactory().createVertex(); + vertex.setValidFrom(asMillis("2020.02.02 12:00:00.000")); + vertex.setValidTo(asMillis("2020.02.03 12:00:00.000")); + } + + /** + * Test if non-overlapping edges will be removed properly. + */ + @Test + public void testRemoveNonOverlapping() { + TemporalEdge edge = getEdgeFactory().createEdge(GradoopId.NULL_VALUE, GradoopId.NULL_VALUE); + // Edge is valid after the vertex. + edge.setValidFrom(asMillis("2020.02.03 12:00:00.000")); + edge.setValidTo(asMillis("2020.02.04 12:00:00.000")); + operator.join(edge, vertex, out); + assertTrue(result.isEmpty()); + // Edge is valid before the vertex. + edge.setValidFrom(asMillis("2020.02.01 12:00:00.000")); + edge.setValidTo(asMillis("2020.02.02 11:59:59.999")); + operator.join(edge, vertex, out); + assertTrue(result.isEmpty()); + } + + /** + * Test if the {@code validFrom} field is updated accordingly. + */ + @Test + public void testUpdateValidFrom() { + TemporalEdge edge = getEdgeFactory().createEdge(GradoopId.NULL_VALUE, GradoopId.NULL_VALUE); + final long validTo = asMillis("2020.02.02 13:00:00.000"); + edge.setValidFrom(asMillis("2019.12.31 00:00:00.000")); + edge.setValidTo(validTo); + operator.join(edge, vertex, out); + assertEquals(result.size(), 1); + TemporalEdge resultEdge = result.get(0); + assertEquals(resultEdge.getValidFrom(), vertex.getValidFrom()); + assertEquals((long) resultEdge.getValidTo(), validTo); + } + + /** + * Test if the {@code validTo} field is updated accordingly. + */ + @Test + public void testUpdateValidTo() { + TemporalEdge edge = getEdgeFactory().createEdge(GradoopId.NULL_VALUE, GradoopId.NULL_VALUE); + final long validFrom = asMillis("2020.02.02 13:00:00.000"); + edge.setValidFrom(validFrom); + edge.setValidTo(asMillis("2020.03.01 12:00:00.000")); + operator.join(edge, vertex, out); + assertEquals(result.size(), 1); + TemporalEdge resultEdge = result.get(0); + assertEquals((long) resultEdge.getValidFrom(), validFrom); + assertEquals(resultEdge.getValidTo(), vertex.getValidTo()); + } + + /** + * Test if both fields are updated accordingly. + */ + @Test + public void testUpdateBoth() { + TemporalEdge edge = getEdgeFactory().createEdge(GradoopId.NULL_VALUE, GradoopId.NULL_VALUE); + edge.setValidFrom(asMillis("2020.01.01 12:00:00.000")); + edge.setValidTo(asMillis("2020.03.01 12:00:00.000")); + operator.join(edge, vertex, out); + assertEquals(result.size(), 1); + TemporalEdge resultEdge = result.get(0); + assertEquals(resultEdge.getValidFrom(), vertex.getValidFrom()); + assertEquals(resultEdge.getValidTo(), vertex.getValidTo()); + } +} From 9424b3f2781853ed3e714a2baaa2181a0d658115 Mon Sep 17 00:00:00 2001 From: Christopher Rost <18614530+ChrizZz110@users.noreply.github.com> Date: Wed, 27 Jan 2021 10:36:00 +0100 Subject: [PATCH 04/19] [#1496] Extended min and max aggregation with date and datetime types (#1503) fixes #1496 --- .../impl/properties/PropertyValueUtils.java | 82 ++++++++++- .../properties/PropertyValueUtilsTest.java | 129 ++++++++++++++++++ .../aggregation/functions/max/Max.java | 9 +- .../aggregation/functions/min/Min.java | 9 +- .../aggregation/functions/max/MaxTest.java | 125 +++++++++++++++++ .../aggregation/functions/min/MinTest.java | 127 +++++++++++++++++ 6 files changed, 477 insertions(+), 4 deletions(-) create mode 100644 gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java create mode 100644 gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java index 37d80a1d3579..d8f3a8980d4c 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java @@ -18,6 +18,8 @@ import org.gradoop.common.exceptions.UnsupportedTypeException; import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.Arrays; import static com.google.common.base.Preconditions.checkNotNull; @@ -416,8 +418,7 @@ public static PropertyValue max(PropertyValue a, PropertyValue b) { * * @return a < b */ - private static boolean isLessOrEqualThan( - PropertyValue aValue, PropertyValue bValue) { + private static boolean isLessOrEqualThan(PropertyValue aValue, PropertyValue bValue) { int aType = checkNumericalAndGetType(aValue); int bType = checkNumericalAndGetType(bValue); @@ -613,6 +614,83 @@ private static float floatValue(PropertyValue value, int type) { } } + /** + * Date and DateTime utilities. + */ + public static class Date { + + /** + * Compares two time property values and returns the chronological first one. + *

+ * Note that the comparison of a {@link java.time.LocalDate} with a {@link LocalDateTime} + * will cause casting the {@link java.time.LocalDate} to a {@link java.time.LocalDateTime} + * instance, but just for the comparison. The return value is not casted. + * + * @param a first value + * @param b second value + * + * @return the time property value that is the chronological first + */ + public static PropertyValue min(PropertyValue a, PropertyValue b) { + return compare(a, b) <= 0 ? a : b; + } + + /** + * Compares two time property values and returns the chronological last one. + *

+ * Note that the comparison of a {@link java.time.LocalDate} with a {@link LocalDateTime} + * will cause casting the {@link java.time.LocalDate} to a {@link java.time.LocalDateTime} + * instance, but just for the comparison. The return value is not casted. + * + * @param a first value + * @param b second value + * + * @return the time property value that is the chronological last + */ + public static PropertyValue max(PropertyValue a, PropertyValue b) { + return compare(a, b) <= 0 ? b : a; + } + + /** + * Compares two date or datetime property values and returns {@code -1}, if the first one is earlier, + * {@code 0} equal or {@code 1} later than the second one. + * Note that the comparison of a {@link java.time.LocalDate} with a {@link LocalDateTime} + * will cause casting the {@link java.time.LocalDate} to a {@link java.time.LocalDateTime} instance. + * + * @param aValue first value + * @param bValue second value + * + * @return returns {@code -1}, if the first one is earlier, {@code 0} equal or {@code 1} later than the + * second one + * @throws IllegalArgumentException if arguments are not of type Date or DateTime + */ + private static int compare(PropertyValue aValue, PropertyValue bValue) { + if (aValue.isDateTime() && bValue.isDateTime()) { + return aValue.getDateTime().compareTo(bValue.getDateTime()); + } else if (aValue.isDate() && bValue.isDate()) { + return aValue.getDate().compareTo(bValue.getDate()); + } else if (aValue.isDate() && bValue.isDateTime()) { + // cast a to DateTime + return LocalDateTime.of(aValue.getDate(), LocalTime.MIN).compareTo(bValue.getDateTime()); + } else if (aValue.isDateTime() && bValue.isDate()) { + // cast b to DateTime + return aValue.getDateTime().compareTo(LocalDateTime.of(bValue.getDate(), LocalTime.MIN)); + } else { + throw new IllegalArgumentException("Arguments to compare are not of type Date or DateTime."); + } + } + + /** + * Checks the property value type for Date or DateTime. + * + * @param value the property value to check + * @return true, iff the value is a Date or DateTime type + */ + public static boolean isDateOrDateTime(PropertyValue value) { + return value.isDate() || value.isDateTime(); + } + } + /** * Byte utilities. */ diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java index c791aea6a066..d51f9989778c 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java @@ -18,6 +18,8 @@ import org.testng.annotations.Test; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Arrays; import static org.gradoop.common.GradoopTestUtils.*; @@ -993,4 +995,131 @@ public void testCreateFromTypeValueBytes(PropertyValue propertyValue, byte type) 1, propertyValue.getRawBytes().length))); } } + + /** + * Test class for {@link PropertyValueUtils.Date} + */ + public static class DateTest { + + private final PropertyValue date1 = PropertyValue.create(LocalDate.of(2020, 1, 16)); + private final PropertyValue date2 = PropertyValue.create(LocalDate.of(2020, 1, 17)); + private final PropertyValue dateTime1 = PropertyValue.create(LocalDateTime.of(2020, 1, 16, 12, 10, 55)); + private final PropertyValue dateTime2 = PropertyValue.create(LocalDateTime.of(2020, 1, 16, 12, 10, 56)); + + @Test + public void testMin() { + PropertyValue p; + + // Compare two dates + p = PropertyValueUtils.Date.min(date1, date2); + assertTrue(p.isDate()); + assertEquals(date1, p); + + p = PropertyValueUtils.Date.min(date2, date1); + assertTrue(p.isDate()); + assertEquals(date1, p); + + p = PropertyValueUtils.Date.min(date1, date1); + assertTrue(p.isDate()); + assertEquals(date1, p); + + // Compare two date times + p = PropertyValueUtils.Date.min(dateTime1, dateTime2); + assertTrue(p.isDateTime()); + assertEquals(dateTime1, p); + + p = PropertyValueUtils.Date.min(dateTime2, dateTime1); + assertTrue(p.isDateTime()); + assertEquals(dateTime1, p); + + p = PropertyValueUtils.Date.min(dateTime1, dateTime1); + assertTrue(p.isDateTime()); + assertEquals(dateTime1, p); + + // Compare a date with date time + p = PropertyValueUtils.Date.min(date1, dateTime1); + assertTrue(p.isDate()); + assertEquals(date1, p); + + p = PropertyValueUtils.Date.min(date2, dateTime1); + assertTrue(p.isDateTime()); + assertEquals(dateTime1, p); + + p = PropertyValueUtils.Date.min(dateTime2, date2); + assertTrue(p.isDateTime()); + assertEquals(dateTime2, p); + + p = PropertyValueUtils.Date.min(dateTime1, date1); + assertTrue(p.isDate()); + assertEquals(date1, p); + } + + @Test(expectedExceptions = { IllegalArgumentException.class }) + public void testMinTypeException() { + PropertyValueUtils.Date.min(date1, PropertyValue.create(5)); + } + + @Test + public void testMax() { + PropertyValue p; + + // Compare two dates + p = PropertyValueUtils.Date.max(date1, date2); + assertTrue(p.isDate()); + assertEquals(date2, p); + + p = PropertyValueUtils.Date.max(date2, date1); + assertTrue(p.isDate()); + assertEquals(date2, p); + + p = PropertyValueUtils.Date.max(date1, date1); + assertTrue(p.isDate()); + assertEquals(date1, p); + + // Compare two date times + p = PropertyValueUtils.Date.max(dateTime1, dateTime2); + assertTrue(p.isDateTime()); + assertEquals(dateTime2, p); + + p = PropertyValueUtils.Date.max(dateTime2, dateTime1); + assertTrue(p.isDateTime()); + assertEquals(dateTime2, p); + + p = PropertyValueUtils.Date.max(dateTime1, dateTime1); + assertTrue(p.isDateTime()); + assertEquals(dateTime1, p); + + // Compare a date with date time + p = PropertyValueUtils.Date.max(date1, dateTime1); + assertTrue(p.isDateTime()); + assertEquals(dateTime1, p); + + p = PropertyValueUtils.Date.max(date2, dateTime1); + assertTrue(p.isDate()); + assertEquals(date2, p); + + p = PropertyValueUtils.Date.max(dateTime2, date2); + assertTrue(p.isDate()); + assertEquals(date2, p); + + p = PropertyValueUtils.Date.max(dateTime1, date1); + assertTrue(p.isDateTime()); + assertEquals(dateTime1, p); + } + + @Test(expectedExceptions = { IllegalArgumentException.class }) + public void testMaxTypeException() { + PropertyValueUtils.Date.max(date1, PropertyValue.create(5)); + } + + @Test + public void testIisDateOrDateTime() { + assertTrue(PropertyValueUtils.Date.isDateOrDateTime(date1)); + assertTrue(PropertyValueUtils.Date.isDateOrDateTime(date2)); + assertTrue(PropertyValueUtils.Date.isDateOrDateTime(dateTime1)); + assertTrue(PropertyValueUtils.Date.isDateOrDateTime(dateTime2)); + assertFalse(PropertyValueUtils.Date.isDateOrDateTime(PropertyValue.create(5))); + assertFalse(PropertyValueUtils.Date.isDateOrDateTime(PropertyValue.create("date"))); + } + } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java index 9dda4746d015..93c9b79970a8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java @@ -20,12 +20,19 @@ import org.gradoop.flink.model.api.functions.AggregateFunction; /** - * Interface of aggregate functions that determine a maximal value. + * Interface of aggregate functions that determine a maximal value.
+ * This aggregation supports numerical property value types (short, int, long, float, double, big decimal) and + * date and datetime types. */ public interface Max extends AggregateFunction { @Override default PropertyValue aggregate(PropertyValue aggregate, PropertyValue increment) { + // If both values are of either type date or datetime, use the corresponding utility class. + if (PropertyValueUtils.Date.isDateOrDateTime(aggregate) && + PropertyValueUtils.Date.isDateOrDateTime(increment)) { + return PropertyValueUtils.Date.max(aggregate, increment); + } return PropertyValueUtils.Numeric.max(aggregate, increment); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java index 2aadc0e19133..ecb36623763c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java @@ -20,12 +20,19 @@ import org.gradoop.flink.model.api.functions.AggregateFunction; /** - * Interface of aggregate functions that determine a minimal value. + * Interface of aggregate functions that determine a minimal value.
+ * This aggregation supports numerical property value types (short, int, long, float, double, big decimal) and + * date and datetime types. */ public interface Min extends AggregateFunction { @Override default PropertyValue aggregate(PropertyValue aggregate, PropertyValue increment) { + // If both values are of either type date or datetime, use the corresponding utility class. + if (PropertyValueUtils.Date.isDateOrDateTime(aggregate) && + PropertyValueUtils.Date.isDateOrDateTime(increment)) { + return PropertyValueUtils.Date.min(aggregate, increment); + } return PropertyValueUtils.Numeric.min(aggregate, increment); } } diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java new file mode 100644 index 000000000000..cb9c1eceb23d --- /dev/null +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java @@ -0,0 +1,125 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.flink.model.impl.operators.aggregation.functions.max; + +import org.gradoop.common.exceptions.UnsupportedTypeException; +import org.gradoop.common.model.api.entities.Element; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.GradoopFlinkTestBase; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; + +/** + * Test class for {@link Max} interface. + */ +@RunWith(Parameterized.class) +public class MaxTest extends GradoopFlinkTestBase { + + /** + * An instance of the interface to test. + */ + private final Max maxInstance = new MaxInstance(); + /** + * Test datetime object. + */ + private static final LocalDateTime testDateTime = LocalDateTime.ofEpochSecond(1610633705, 0, ZoneOffset.UTC); + /** + * Test date object. + */ + private static final LocalDate testDate = LocalDate.of(2021, 1, 14); + + /** + * The aggregate value of the aggregate function. + */ + @Parameterized.Parameter(0) + public PropertyValue aggregate; + + /** + * The increment value of the aggregate function. + */ + @Parameterized.Parameter(1) + public PropertyValue increment; + + /** + * The return value of the aggregate function. + */ + @Parameterized.Parameter(2) + public PropertyValue returnProperty; + + /** + * A possible exception. Should be {@code null} if no exception is expected. + */ + @Parameterized.Parameter(3) + public Class exception; + + /** + * The test parameters. + * + * @return an array of test parameters. + */ + @Parameterized.Parameters(name = "Test Min({0}, {1}) == {2} (throws {3})") + public static Iterable parameters() { + return Arrays.asList( + new Object[]{PropertyValue.create(1L), PropertyValue.create(2L), PropertyValue.create(2L), null}, + new Object[]{PropertyValue.create(2), PropertyValue.create(1), PropertyValue.create(2), null}, + new Object[]{PropertyValue.create(0.3f), PropertyValue.create(0.33), PropertyValue.create(0.33), null}, + new Object[]{PropertyValue.create(BigDecimal.TEN), PropertyValue.create(BigDecimal.ZERO), PropertyValue.create(BigDecimal.TEN), null}, + new Object[]{PropertyValue.create(testDate), PropertyValue.create(testDate.minusDays(1)), PropertyValue.create(testDate), null}, + new Object[]{PropertyValue.create(testDate), PropertyValue.create(testDate), PropertyValue.create(testDate), null}, + new Object[]{PropertyValue.create(testDateTime), PropertyValue.create(testDateTime), PropertyValue.create(testDateTime), null}, + new Object[]{PropertyValue.create(testDateTime), PropertyValue.create(testDateTime.minusHours(1)), PropertyValue.create(testDateTime), null}, + new Object[]{PropertyValue.create(testDateTime), PropertyValue.create(5L), PropertyValue.create(null), UnsupportedTypeException.class}, + new Object[]{PropertyValue.create("foo"), PropertyValue.create(5L), PropertyValue.create(null), UnsupportedTypeException.class} + ); + } + + /** + * Tests the {@link Max#aggregate(PropertyValue, PropertyValue)} function. + */ + @Test + public void testAggregate() { + if (exception == null) { + assertEquals(returnProperty, maxInstance.aggregate(aggregate, increment)); + } else { + assertThrows(exception, () -> maxInstance.aggregate(aggregate, increment)); + } + } + + /** + * Test class implementing the interface to be tested. + */ + public static class MaxInstance implements Max { + @Override + public String getAggregatePropertyKey() { + return null; + } + + @Override + public PropertyValue getIncrement(Element element) { + return null; + } + } +} diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java new file mode 100644 index 000000000000..962cadbe6554 --- /dev/null +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java @@ -0,0 +1,127 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.flink.model.impl.operators.aggregation.functions.min; + +import org.gradoop.common.exceptions.UnsupportedTypeException; +import org.gradoop.common.model.api.entities.Element; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.GradoopFlinkTestBase; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; + +/** + * Test class for {@link Min} interface. + */ +@RunWith(Parameterized.class) +public class MinTest extends GradoopFlinkTestBase { + + /** + * An instance of the interface to test. + */ + private final Min minInstance = new MinInstance(); + /** + * Test datetime object. + */ + private static final LocalDateTime testDateTime = LocalDateTime.ofEpochSecond(1610633705, 0, ZoneOffset.UTC); + /** + * Test date object. + */ + private static final LocalDate testDate = LocalDate.of(2021, 1, 14); + + /** + * The aggregate value of the aggregate function. + */ + @Parameterized.Parameter(0) + public PropertyValue aggregate; + + /** + * The increment value of the aggregate function. + */ + @Parameterized.Parameter(1) + public PropertyValue increment; + + /** + * The return value of the aggregate function. + */ + @Parameterized.Parameter(2) + public PropertyValue returnProperty; + + /** + * A possible exception. Should be {@code null} if no exception is expected. + */ + @Parameterized.Parameter(3) + public Class exception; + + /** + * The test parameters. + * + * @return an array of test parameters. + */ + @Parameterized.Parameters(name = "Test Min({0}, {1}) == {2} (throws {3})") + public static Iterable parameters() { + return Arrays.asList( + new Object[]{PropertyValue.create(1L), PropertyValue.create(2L), PropertyValue.create(1L), null}, + new Object[]{PropertyValue.create(2), PropertyValue.create(1), PropertyValue.create(1), null}, + new Object[]{PropertyValue.create(0.3f), PropertyValue.create(0.33), PropertyValue.create(0.3f), null}, + new Object[]{PropertyValue.create(BigDecimal.TEN), PropertyValue.create(BigDecimal.ZERO), PropertyValue.create(BigDecimal.ZERO), null}, + new Object[]{PropertyValue.create(testDate), PropertyValue.create(testDate.plusDays(1)), PropertyValue.create(testDate), null}, + new Object[]{PropertyValue.create(testDate), PropertyValue.create(testDate), PropertyValue.create(testDate), null}, + new Object[]{PropertyValue.create(testDateTime), PropertyValue.create(testDate), PropertyValue.create(testDate), null}, + new Object[]{PropertyValue.create(testDate), PropertyValue.create(testDateTime), PropertyValue.create(testDate), null}, + new Object[]{PropertyValue.create(testDateTime), PropertyValue.create(testDateTime), PropertyValue.create(testDateTime), null}, + new Object[]{PropertyValue.create(testDateTime), PropertyValue.create(testDateTime.plusHours(1)), PropertyValue.create(testDateTime), null}, + new Object[]{PropertyValue.create(testDateTime), PropertyValue.create(5L), PropertyValue.create(null), UnsupportedTypeException.class}, + new Object[]{PropertyValue.create("foo"), PropertyValue.create(5L), PropertyValue.create(null), UnsupportedTypeException.class} + ); + } + + /** + * Tests the {@link Min#aggregate(PropertyValue, PropertyValue)} function. + */ + @Test + public void testAggregate() { + if (exception == null) { + assertEquals(returnProperty, minInstance.aggregate(aggregate, increment)); + } else { + assertThrows(exception, () -> minInstance.aggregate(aggregate, increment)); + } + } + + /** + * Test class implementing the interface to be tested. + */ + public static class MinInstance implements Min { + @Override + public String getAggregatePropertyKey() { + return null; + } + + @Override + public PropertyValue getIncrement(Element element) { + return null; + } + } +} From 70de002867317e878093b0352ba1ae0188afff09 Mon Sep 17 00:00:00 2001 From: Christopher Rost <18614530+ChrizZz110@users.noreply.github.com> Date: Fri, 12 Feb 2021 11:26:20 +0100 Subject: [PATCH 05/19] [#1500] Added optional unit parameter to duration aggregations (#1507) fixes #1500 --- .../AbstractDurationAggregateFunction.java | 34 ++++- .../functions/AverageDuration.java | 64 +++++++- .../aggregation/functions/MaxDuration.java | 61 +++++++- .../aggregation/functions/MinDuration.java | 63 ++++++-- .../functions/AverageDurationTest.java | 91 ++++++++++- .../MinMaxDurationWithTemporalUnitTest.java | 142 ++++++++++++++++++ 6 files changed, 423 insertions(+), 32 deletions(-) create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java index d670bef4ea13..52e0bf76d787 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java @@ -21,27 +21,57 @@ import org.gradoop.temporal.model.api.TimeDimension; import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalUnit; +import java.util.Arrays; +import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * Abstract base class for functions aggregating the duration of temporal elements for a certain {@link TimeDimension}. */ public abstract class AbstractDurationAggregateFunction extends BaseAggregateFunction { + /** + * The default temporal unit. + */ + public static final TemporalUnit DEFAULT_UNIT = ChronoUnit.MILLIS; + + /** + * A list of supported temporal units. + */ + static final List SUPPORTED_UNITS = Arrays.asList(ChronoUnit.MILLIS, ChronoUnit.SECONDS, + ChronoUnit.MINUTES, ChronoUnit.HOURS, ChronoUnit.DAYS); + /** * Selects which time dimension is considered by this aggregate function. */ protected final TimeDimension dimension; + /** + * The unit to parse the duration after the aggregation. + */ + protected final TemporalUnit timeUnit; + /** * Creates a new instance of this base aggregate function. * - * @param aggregatePropertyKey aggregate property key + * @param aggregatePropertyKey the property key of the new property where the aggregated value is stored * @param dimension the given TimeDimension + * @param unit the temporal unit into which the result is converted. The supported units are specified in + * {@link AbstractDurationAggregateFunction#SUPPORTED_UNITS}. */ - AbstractDurationAggregateFunction(String aggregatePropertyKey, TimeDimension dimension) { + AbstractDurationAggregateFunction(String aggregatePropertyKey, TimeDimension dimension, TemporalUnit unit) { super(aggregatePropertyKey); this.dimension = Objects.requireNonNull(dimension); + Objects.requireNonNull(unit); + if (!SUPPORTED_UNITS.contains(unit)) { + throw new IllegalArgumentException("The given unit [" + unit + + "] is not supported. Supported temporal units are [" + + SUPPORTED_UNITS.stream().map(TemporalUnit::toString).collect(Collectors.joining(",")) + "]"); + } + this.timeUnit = unit; } /** diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java index 45b12c98e9ce..d23efc021278 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java @@ -15,14 +15,16 @@ */ package org.gradoop.temporal.model.impl.operators.aggregation.functions; +import org.gradoop.common.exceptions.UnsupportedTypeException; import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.common.model.impl.properties.Type; import org.gradoop.flink.model.impl.operators.aggregation.functions.average.Average; import org.gradoop.temporal.model.api.functions.TemporalAggregateFunction; import org.gradoop.temporal.model.api.TimeDimension; import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import java.time.temporal.TemporalUnit; import java.util.Arrays; -import java.util.Objects; /** * Calculate the average duration of a time dimension of one given {@link TimeDimension} of temporal elements. @@ -37,19 +39,39 @@ public class AverageDuration extends AbstractDurationAggregateFunction private static final PropertyValue ONE = PropertyValue.create(1L); /** - * Selects which time dimension is considered by this aggregate function. + * Creates a new instance of this aggregate function. + * + * @param aggregatePropertyKey the property key of the new property where the aggregated value is stored + * @param dimension the time dimension to consider + * @param unit the temporal unit into which the result is converted. The supported units are specified in + * {@link AbstractDurationAggregateFunction#SUPPORTED_UNITS}. */ - private final TimeDimension dimension; + public AverageDuration(String aggregatePropertyKey, TimeDimension dimension, TemporalUnit unit) { + super(aggregatePropertyKey, dimension, unit); + } /** * Create an instance of the {@link AverageDuration} aggregate function. * - * @param aggregatePropertyKey The aggregate property key. + * @param aggregatePropertyKey the property key of the new property where the aggregated value is stored * @param dimension the time dimension to consider */ public AverageDuration(String aggregatePropertyKey, TimeDimension dimension) { - super(aggregatePropertyKey, dimension); - this.dimension = Objects.requireNonNull(dimension); + this(aggregatePropertyKey, dimension, AbstractDurationAggregateFunction.DEFAULT_UNIT); + } + + /** + * Creates a new instance of this aggregate function. The the property key of the new property, where the + * aggregated value is stored, will be defined as "avgDuration_" + {dimension} + "_" + {unit}. Use + * constructor {@link AverageDuration#AverageDuration(String, TimeDimension, TemporalUnit)} to specify a + * user-defined key. + * + * @param dimension the time dimension to consider + * @param unit the temporal unit into which the result is converted. The supported units are specified in + * {@link AbstractDurationAggregateFunction#SUPPORTED_UNITS}. + */ + public AverageDuration(TimeDimension dimension, TemporalUnit unit) { + this("avgDuration_" + dimension + "_" + unit, dimension, unit); } /** @@ -70,6 +92,36 @@ public PropertyValue getIncrement(TemporalElement element) { return PropertyValue.create(Arrays.asList(duration, ONE)); } + /** + * After calling {@link Average#postAggregate(PropertyValue)}, this function transforms the resulting + * aggregate value to the specified temporal unit. + * + * @param result the result of the AverageDuration aggregation as {@link Double} in milliseconds, or null if + * nothing was aggregated. + * @return By default (no time unit or the default unit [millis] is specified), the result of the + * AverageDuration aggregation as {@link Double} in milliseconds is returned. If a different + * temporal unit is given in {@link AbstractDurationAggregateFunction#timeUnit}, a {@link Double} of + * the desired unit is returned. + * @throws UnsupportedTypeException if the type of the given property value is different from {@link Double} + * or null. + * @see Average#postAggregate(PropertyValue) + */ + @Override + public PropertyValue postAggregate(PropertyValue result) throws UnsupportedTypeException { + // First call the postAggregate of the interface to calculate the average aggregate + result = Average.super.postAggregate(result); + // Check if the aggregate value is of type null or double. + if (!result.isNull() && !result.isDouble()) { + throw new UnsupportedTypeException("The result type of the average duration aggregation must be " + + "one of [" + Type.NULL + ", " + Type.DOUBLE + "], but is [" + result.getType() + "]."); + } + if (timeUnit != AbstractDurationAggregateFunction.DEFAULT_UNIT && result.isDouble()) { + // It is not a default unit, so we have to map the result value to the desired unit. + result.setDouble(result.getDouble() / timeUnit.getDuration().toMillis()); + } + return result; + } + @Override public String toString() { return String.format("%s(%s)", getClass().getSimpleName(), dimension); diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java index ce3cf3bd33e6..8ecd050c9ca1 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java @@ -15,12 +15,16 @@ */ package org.gradoop.temporal.model.impl.operators.aggregation.functions; +import org.gradoop.common.exceptions.UnsupportedTypeException; import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.common.model.impl.properties.Type; import org.gradoop.flink.model.impl.operators.aggregation.functions.max.Max; import org.gradoop.temporal.model.api.TimeDimension; import org.gradoop.temporal.model.api.functions.TemporalAggregateFunction; import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import java.time.temporal.TemporalUnit; + /** * Calculates the maximum duration of a {@link TimeDimension} of temporal elements. * @@ -29,13 +33,39 @@ public class MaxDuration extends AbstractDurationAggregateFunction implements Max, TemporalAggregateFunction { /** - * Creates a new instance of this base aggregate function. + * Creates a new instance of this aggregate function. + * + * @param aggregatePropertyKey the property key of the new property where the aggregated value is stored + * @param dimension the time dimension to consider + * @param unit the temporal unit into which the result is converted. The supported units are specified in + * {@link AbstractDurationAggregateFunction#SUPPORTED_UNITS}. + */ + public MaxDuration(String aggregatePropertyKey, TimeDimension dimension, TemporalUnit unit) { + super(aggregatePropertyKey, dimension, unit); + } + + /** + * Creates a new instance of this aggregate function. * - * @param aggregatePropertyKey the given aggregate property key + * @param aggregatePropertyKey the property key of the new property where the aggregated value is stored * @param dimension the time dimension to consider */ public MaxDuration(String aggregatePropertyKey, TimeDimension dimension) { - super(aggregatePropertyKey, dimension); + super(aggregatePropertyKey, dimension, AbstractDurationAggregateFunction.DEFAULT_UNIT); + } + + /** + * Creates a new instance of this aggregate function. The the property key of the new property, where the + * aggregated value is stored, will be defined as "maxDuration_" + {dimension} + "_" + {unit}. Use + * constructor {@link MaxDuration#MaxDuration(String, TimeDimension, TemporalUnit)} to specify a + * user-defined key. + * + * @param dimension the time dimension to consider + * @param unit the temporal unit into which the result is converted. The supported units are specified in + * {@link AbstractDurationAggregateFunction#SUPPORTED_UNITS}. + */ + public MaxDuration(TimeDimension dimension, TemporalUnit unit) { + this("maxDuration_" + dimension + "_" + unit, dimension, unit); } /** @@ -55,17 +85,32 @@ public PropertyValue getIncrement(TemporalElement element) { } /** - * Method to check whether all aggregated durations had been default values. + * Method to check whether all aggregated durations had been default values or need to be transformed to + * another unit. * - * @param result the result of the MaxDuration Aggregation - * @return the unchanged result or {@link PropertyValue#NULL_VALUE}, if the maximum duration is - * {@link TemporalElement#DEFAULT_TIME_FROM} + * @param result the result of the MaxDuration aggregation as {@link Long} in milliseconds + * @return By default (no time unit or the default unit [millis] is specified), the result of the + * MaxDuration Aggregation as {@link Long} in milliseconds is returned. If a different time unit is + * given in {@link AbstractDurationAggregateFunction#timeUnit}, a {@link Double} of + * the desired unit is returned. If the maximum duration is + * {@link TemporalElement#DEFAULT_TIME_FROM}, the value {@link PropertyValue#NULL_VALUE}is returned. + * @throws UnsupportedTypeException if the type of the given property value is different from {@link Long}. */ @Override - public PropertyValue postAggregate(PropertyValue result) { + public PropertyValue postAggregate(PropertyValue result) throws UnsupportedTypeException { + // First check if the aggregated result is of type long. + if (!result.isLong()) { + throw new UnsupportedTypeException("The result type of the max duration aggregation must be [" + + Type.LONG + "], but is [" + result.getType() + "]."); + } + // If the result is a default value, set it as null. if (result.getLong() == TemporalElement.DEFAULT_TIME_FROM) { return PropertyValue.NULL_VALUE; } + // If a time unit is specified, convert it. + if (timeUnit != AbstractDurationAggregateFunction.DEFAULT_UNIT) { + result.setDouble((double) result.getLong() / timeUnit.getDuration().toMillis()); + } return result; } } diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java index 34fae24d1a53..2b6d3cd6a428 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java @@ -15,28 +15,57 @@ */ package org.gradoop.temporal.model.impl.operators.aggregation.functions; +import org.gradoop.common.exceptions.UnsupportedTypeException; import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.common.model.impl.properties.Type; import org.gradoop.flink.model.impl.operators.aggregation.functions.min.Min; import org.gradoop.temporal.model.api.TimeDimension; import org.gradoop.temporal.model.api.functions.TemporalAggregateFunction; import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import java.time.temporal.TemporalUnit; + /** * Calculates the minimum duration of a {@link TimeDimension} of temporal elements. * - * Time intervals with either the start or end time set to the respective default value are evaluated as - * {@link Long#MAX_VALUE}. + * Time intervals with either the start or end time set to the respective default value are evaluated as zero. */ public class MinDuration extends AbstractDurationAggregateFunction implements Min, TemporalAggregateFunction { /** - * Creates a new instance of this base aggregate function. + * Creates a new instance of this aggregate function. + * + * @param aggregatePropertyKey the property key of the new property where the aggregated value is stored + * @param dimension the time dimension to consider + * @param unit the temporal unit into which the result is converted. The supported units are specified in + * {@link AbstractDurationAggregateFunction#SUPPORTED_UNITS}. + */ + public MinDuration(String aggregatePropertyKey, TimeDimension dimension, TemporalUnit unit) { + super(aggregatePropertyKey, dimension, unit); + } + + /** + * Creates a new instance of this aggregate function. * - * @param aggregatePropertyKey the given aggregate property key + * @param aggregatePropertyKey the property key of the new property where the aggregated value is stored * @param dimension the time dimension to consider */ public MinDuration(String aggregatePropertyKey, TimeDimension dimension) { - super(aggregatePropertyKey, dimension); + super(aggregatePropertyKey, dimension, AbstractDurationAggregateFunction.DEFAULT_UNIT); + } + + /** + * Creates a new instance of this aggregate function. The the property key of the new property, where the + * aggregated value is stored, will be defined as "minDuration_" + {dimension} + "_" + {unit}. Use + * constructor {@link MinDuration#MinDuration(String, TimeDimension, TemporalUnit)} to specify a + * user-defined key. + * + * @param dimension the time dimension to consider + * @param unit the temporal unit into which the result is converted. The supported units are specified in + * {@link AbstractDurationAggregateFunction#SUPPORTED_UNITS}. + */ + public MinDuration(TimeDimension dimension, TemporalUnit unit) { + this("minDuration_" + dimension + "_" + unit, dimension, unit); } /** @@ -56,16 +85,32 @@ public PropertyValue getIncrement(TemporalElement element) { } /** - * Method to check whether all aggregated durations had been default values. + * Method to check whether all aggregated durations had been default values or need to be transformed to + * another unit. * - * @param result the result of the MinDuration Aggregation - * @return null, if the minimum duration is {@link TemporalElement#DEFAULT_TIME_TO} + * @param result the result of the MinDuration aggregation as {@link Long} in milliseconds + * @return By default (no time unit or the default unit [millis] is specified), the result of the + * MinDuration Aggregation as {@link Long} in milliseconds is returned. If a different time unit is + * given in {@link AbstractDurationAggregateFunction#timeUnit}, a {@link Double} of + * the desired unit is returned. If the minimum duration is {@link TemporalElement#DEFAULT_TIME_TO}, + * the value {@link PropertyValue#NULL_VALUE}is returned. + * @throws UnsupportedTypeException if the type of the given property value is different from {@link Long}. */ @Override - public PropertyValue postAggregate(PropertyValue result) { + public PropertyValue postAggregate(PropertyValue result) throws UnsupportedTypeException { + // First check if the aggregated result is of type long. + if (!result.isLong()) { + throw new UnsupportedTypeException("The result type of the min duration aggregation must be [" + + Type.LONG + "], but is [" + result.getType() + "]."); + } + // If the result is a default value, set it as null. if (result.getLong() == TemporalElement.DEFAULT_TIME_TO) { return PropertyValue.NULL_VALUE; } + // If a time unit is specified, convert it. + if (timeUnit != AbstractDurationAggregateFunction.DEFAULT_UNIT) { + result.setDouble((double) result.getLong() / timeUnit.getDuration().toMillis()); + } return result; } } diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java index 76994d214df9..0397734cf152 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java @@ -32,7 +32,10 @@ import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalUnit; import java.util.Arrays; +import java.util.List; import static org.gradoop.common.model.impl.properties.PropertyValue.create; import static org.gradoop.flink.model.impl.operators.aggregation.functions.average.Average.IGNORED_VALUE; @@ -41,6 +44,8 @@ import static org.gradoop.temporal.model.impl.pojo.TemporalElement.DEFAULT_TIME_FROM; import static org.gradoop.temporal.model.impl.pojo.TemporalElement.DEFAULT_TIME_TO; import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertTrue; +import static org.testng.AssertJUnit.assertNotNull; /** * Test for the {@link AverageDuration} aggregate function. @@ -187,18 +192,90 @@ public void testWithAggregation() throws Exception { DataSet vertices = getExecutionEnvironment().fromElements(v1, v2, v3, v4, v5); DataSet edges = getExecutionEnvironment().fromElements(e1, e2, e3, e4, e5); TemporalGraph result = graphFactory.fromDataSets(vertices, edges) - .aggregate(new AverageDuration("avgDurTx", TRANSACTION_TIME), - new AverageDuration("avgDurValid", VALID_TIME), + .aggregate( + new AverageDuration("avgDurTx", TRANSACTION_TIME), + new AverageDuration("avgDurVal", VALID_TIME), new AverageVertexDuration("avgVertexDurTx", TRANSACTION_TIME), - new AverageVertexDuration("avgVertexDurValid", VALID_TIME), + new AverageVertexDuration("avgVertexDurVal", VALID_TIME), new AverageEdgeDuration("avgEdgeDurTx", TRANSACTION_TIME), - new AverageEdgeDuration("avgEdgeDurValid", VALID_TIME)); + new AverageEdgeDuration("avgEdgeDurVal", VALID_TIME), + new AverageDuration("avgDurTxMillis", TRANSACTION_TIME, ChronoUnit.MILLIS), + new AverageDuration("avgDurValMillis", VALID_TIME, ChronoUnit.MILLIS), + new AverageDuration("avgDurTxSec", TRANSACTION_TIME, ChronoUnit.SECONDS), + new AverageDuration("avgDurValSec", VALID_TIME, ChronoUnit.SECONDS), + new AverageDuration("avgDurTxMin", TRANSACTION_TIME, ChronoUnit.MINUTES), + new AverageDuration("avgDurValMin", VALID_TIME, ChronoUnit.MINUTES), + new AverageDuration("avgDurTxHr", TRANSACTION_TIME, ChronoUnit.HOURS), + new AverageDuration("avgDurValHr", VALID_TIME, ChronoUnit.HOURS), + new AverageDuration("avgDurTxDays", TRANSACTION_TIME, ChronoUnit.DAYS), + new AverageDuration("avgDurValDays", VALID_TIME, ChronoUnit.DAYS), + new AverageDuration(TRANSACTION_TIME, ChronoUnit.SECONDS), + new AverageDuration(VALID_TIME, ChronoUnit.SECONDS)); Properties headProperties = result.getGraphHead().collect().get(0).getProperties(); + assertNotNull(headProperties); assertEquals(18.5d, headProperties.get("avgDurTx").getDouble(), 1e-7d); - assertEquals(12.d, headProperties.get("avgDurValid").getDouble(), 1e-7d); + assertEquals(12.d, headProperties.get("avgDurVal").getDouble(), 1e-7d); assertEquals(2.d, headProperties.get("avgVertexDurTx").getDouble(), 1e-7d); - assertEquals(5.d, headProperties.get("avgVertexDurValid").getDouble(), 1e-7d); + assertEquals(5.d, headProperties.get("avgVertexDurVal").getDouble(), 1e-7d); assertEquals(35.d, headProperties.get("avgEdgeDurTx").getDouble(), 1e-7d); - assertEquals(19.d, headProperties.get("avgEdgeDurValid").getDouble(), 1e-7d); + assertEquals(19.d, headProperties.get("avgEdgeDurVal").getDouble(), 1e-7d); + + assertEquals(18.5d, headProperties.get("avgDurTxMillis").getDouble(), 1e-7d); + assertEquals(12.d, headProperties.get("avgDurValMillis").getDouble(), 1e-7d); + assertEquals(18.5e-3, headProperties.get("avgDurTxSec").getDouble(), 1e-7d); + assertEquals(12e-3d, headProperties.get("avgDurValSec").getDouble(), 1e-7d); + assertEquals(18.5e-3 / 60, headProperties.get("avgDurTxMin").getDouble(), 1e-7d); + assertEquals(12e-3d / 60, headProperties.get("avgDurValMin").getDouble(), 1e-7d); + assertEquals(18.5e-3 / 3600, headProperties.get("avgDurTxHr").getDouble(), 1e-7d); + assertEquals(12e-3d / 3600, headProperties.get("avgDurValHr").getDouble(), 1e-7d); + assertEquals(18.5e-3 / (3600 * 24), headProperties.get("avgDurTxDays").getDouble(), 1e-7d); + assertEquals(12e-3d / (3600 * 24), headProperties.get("avgDurValDays").getDouble(), 1e-7d); + + assertTrue(headProperties.containsKey("avgDuration_VALID_TIME_Seconds")); + assertEquals(12e-3d, headProperties.get("avgDuration_VALID_TIME_Seconds").getDouble(), 1e-7d); + assertTrue(headProperties.containsKey("avgDuration_TRANSACTION_TIME_Seconds")); + assertEquals(18.5e-3, headProperties.get("avgDuration_TRANSACTION_TIME_Seconds").getDouble(), 1e-7d); } + + /** + * Provides a tuple of input, time unit and output elements to test the + * {@link AverageDuration#postAggregate(PropertyValue)} function. + *
+ * Provided params: + *

    + *
  1. The simulated aggregated value
  2. + *
  3. The temporal unit to use
  4. + *
  5. Expected output of {@link AverageDuration#postAggregate(PropertyValue)}
  6. + *
+ * + * @return Object[][] + */ + @DataProvider(name = "postAggTemporalUnits") + public static Object[][] postAggregateParameters() { + List list = Arrays.asList(PropertyValue.create(123456789L * 2), + PropertyValue.create(2L)); + return new Object[][] { + new Object[] {PropertyValue.create(list), ChronoUnit.MILLIS, PropertyValue.create((double) 123456789)}, + new Object[] {PropertyValue.create(list), ChronoUnit.SECONDS, PropertyValue.create(123456.789)}, + new Object[] {PropertyValue.create(list), ChronoUnit.MINUTES, PropertyValue.create((double) 123456789 / (1000 * 60))}, + new Object[] {PropertyValue.create(list), ChronoUnit.HOURS, PropertyValue.create((double) 123456789 / (1000 * 60 * 60))}, + new Object[] {PropertyValue.create(list), ChronoUnit.DAYS, PropertyValue.create((double) 123456789 / (1000 * 60 * 60 * 24))} + }; + } + + /** + * Tests the function {@link AverageDuration#postAggregate(PropertyValue)}. + * + * @param aggregatedValue the value returned from the aggregate function as input for the post processing + * @param temporalUnit the temporal unit to use + * @param expectedOutputValue the expected result of the post processing + */ + @Test(dataProvider = "postAggTemporalUnits") + public void testPostAggregateWithTimeUnits(PropertyValue aggregatedValue, TemporalUnit temporalUnit, + PropertyValue expectedOutputValue) { + AverageDuration averageDuration = new AverageDuration("myKey", VALID_TIME, temporalUnit); + PropertyValue resultValue = averageDuration.postAggregate(aggregatedValue); + assertEquals(expectedOutputValue, resultValue); + } + } diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java new file mode 100644 index 000000000000..9380cecc8132 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java @@ -0,0 +1,142 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.aggregation.functions; + +import org.gradoop.common.exceptions.UnsupportedTypeException; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalUnit; + +import static org.testng.AssertJUnit.assertEquals; +import static org.gradoop.temporal.model.api.TimeDimension.VALID_TIME; + +/** + * Test class to check the unit converting functionality of the {@link MinDuration} and {@link MaxDuration} + * aggregation classes. + */ +public class MinMaxDurationWithTemporalUnitTest extends TemporalGradoopTestBase { + + /** + * Provides test data to check several unit conversions. + * + * @return Object[][] with several postAggregate inputs, units and expected outputs. + */ + @DataProvider(name = "units") + public static Object[][] parameters() { + return new Object[][] { + new Object[] {PropertyValue.create(0L), ChronoUnit.MILLIS, PropertyValue.create(0L)}, + new Object[] {PropertyValue.create(123456789L), ChronoUnit.MILLIS, PropertyValue.create(123456789L)}, + new Object[] {PropertyValue.create(123456789L), ChronoUnit.SECONDS, PropertyValue.create(123456.789)}, + new Object[] {PropertyValue.create(123456789L), ChronoUnit.MINUTES, PropertyValue.create((double) 123456789 / (1000 * 60))}, + new Object[] {PropertyValue.create(123456789L), ChronoUnit.HOURS, PropertyValue.create((double) 123456789 / (1000 * 60 * 60))}, + new Object[] {PropertyValue.create(123456789L), ChronoUnit.DAYS, PropertyValue.create((double) 123456789 / (1000 * 60 * 60 * 24))} + }; + } + + /** + * Tests the {@link MinDuration#postAggregate(PropertyValue)} function. + * + * @param aggregatedValue the aggregated value as input of the postAggregate function + * @param temporalUnit the temporal unit to test + * @param expectedOutputValue the expected output of the postAggregate function + */ + @Test(dataProvider = "units") + public void testMinDurationPostAggregate(PropertyValue aggregatedValue, TemporalUnit temporalUnit, + PropertyValue expectedOutputValue) { + MinDuration minDuration = new MinDuration("myKey", VALID_TIME, temporalUnit); + PropertyValue resultValue = minDuration.postAggregate(aggregatedValue); + assertEquals(expectedOutputValue, resultValue); + } + + /** + * Test the expected exception by providing a unsupported property value type as input. + */ + @Test(expectedExceptions = { UnsupportedTypeException.class }, expectedExceptionsMessageRegExp = + "The result type of the min duration aggregation must be \\[long\\], but is \\[null\\].") + public void testMinDurationPostAggregateWrongType() { + MinDuration minDuration = new MinDuration("myKey", VALID_TIME, ChronoUnit.DAYS); + minDuration.postAggregate(PropertyValue.NULL_VALUE); + } + + /** + * Test if the postAggregate returns a null property if a default timestamp is given. + */ + @Test + public void testMinDurationPostAggregateDefaultResult() { + MinDuration minDuration = new MinDuration("myKey", VALID_TIME, ChronoUnit.DAYS); + PropertyValue resultValue = minDuration.postAggregate(PropertyValue.create( + TemporalElement.DEFAULT_TIME_TO)); + assertEquals(PropertyValue.NULL_VALUE, resultValue); + } + + /** + * Tests the {@link MaxDuration#postAggregate(PropertyValue)} function. + * + * @param aggregatedValue the aggregated value as input of the postAggregate function + * @param temporalUnit the temporal unit to test + * @param expectedOutputValue the expected output of the postAggregate function + */ + @Test(dataProvider = "units") + public void testMaxDurationPostAggregate(PropertyValue aggregatedValue, TemporalUnit temporalUnit, + PropertyValue expectedOutputValue) { + MaxDuration maxDuration = new MaxDuration("myKey", VALID_TIME, temporalUnit); + PropertyValue resultValue = maxDuration.postAggregate(aggregatedValue); + assertEquals(expectedOutputValue, resultValue); + } + + /** + * Test the expected exception by providing a unsupported property value type as input. + */ + @Test(expectedExceptions = { UnsupportedTypeException.class }, expectedExceptionsMessageRegExp = + "The result type of the max duration aggregation must be \\[long\\], but is \\[null\\].") + public void testMaxDurationPostAggregateWrongType() { + MaxDuration maxDuration = new MaxDuration("myKey", VALID_TIME, ChronoUnit.DAYS); + maxDuration.postAggregate(PropertyValue.NULL_VALUE); + } + + /** + * Test if the postAggregate returns a null property if a default timestamp is given. + */ + @Test + public void testMaxDurationPostAggregateDefaultResult() { + MaxDuration maxDuration = new MaxDuration("myKey", VALID_TIME, ChronoUnit.DAYS); + PropertyValue resultValue = maxDuration.postAggregate(PropertyValue.create( + TemporalElement.DEFAULT_TIME_FROM)); + assertEquals(PropertyValue.NULL_VALUE, resultValue); + } + + /** + * Test the expected exception of MinDuration by providing a unsupported temporal unit. + */ + @Test(expectedExceptions = { IllegalArgumentException.class }, expectedExceptionsMessageRegExp = + "The given unit \\[.*\\] is not supported. Supported temporal units are \\[.*\\]") + public void testInvalidUnitMinDuration() { + new MinDuration("myKey", VALID_TIME, ChronoUnit.CENTURIES); + } + + /** + * Test the expected exception of MaxDuration by providing a unsupported temporal unit. + */ + @Test(expectedExceptions = { IllegalArgumentException.class }, expectedExceptionsMessageRegExp = + "The given unit \\[.*\\] is not supported. Supported temporal units are \\[.*\\]") + public void testInvalidUnitMaxDuration() { + new MaxDuration("myKey", VALID_TIME, ChronoUnit.CENTURIES); + } +} From 09baad2ae73370f82073c9b8fbbde85a4f94fda2 Mon Sep 17 00:00:00 2001 From: Timo <24251362+timo95@users.noreply.github.com> Date: Fri, 12 Feb 2021 15:12:40 +0100 Subject: [PATCH 06/19] [#1498] Fix CSV parsing for empty id sets (#1509) fixes #1498 --- .../flink/io/impl/csv/CSVConstants.java | 8 +++ .../impl/csv/functions/CSVLineToElement.java | 25 +++++--- .../io/impl/csv/functions/ElementToCSV.java | 11 ++-- .../csv/functions/CSVLineToElementTest.java | 60 +++++++++++++++++++ 4 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java index 9fb59672b382..d8d6ab017dcf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java @@ -43,6 +43,14 @@ public class CSVConstants { * Used to separate key and value of maps in the CSV files. */ public static final String MAP_SEPARATOR = "="; + /** + * Template for lists in CSV files. + */ + public static final String LIST_TEMPLATE = "[%s]"; + /** + * Template for maps in CSV files + */ + public static final String MAP_TEMPLATE = "{%s}"; /** * System constant file separator. */ diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java index 4adb65ac5cbf..b0da2c3bb79d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java @@ -28,7 +28,12 @@ import org.gradoop.flink.io.impl.csv.metadata.CSVMetaData; import org.gradoop.flink.io.impl.csv.metadata.CSVMetaDataSource; +import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; + +import static org.gradoop.flink.io.impl.csv.CSVConstants.LIST_TEMPLATE; /** * Base class for reading an {@link Element} from CSV. Handles the {@link MetaData} which is @@ -86,20 +91,24 @@ protected Properties parseProperties(String type, String label, String propertyV /** * Parses the CSV string that contains EPGMGraphHead ids. + * The csv string is formatted as a list: {@code "[id0,id1,id3,...]"} * * @param gradoopIdsString The csv token string. * @return gradoop ids contained in the string */ protected GradoopIdSet parseGradoopIds(String gradoopIdsString) { - String[] gradoopIds = gradoopIdsString - .substring(1, gradoopIdsString.length() - 1) - .split(CSVConstants.LIST_DELIMITER); + // Check for empty id list string and return empty list + // Splitting the empty list string would result in 1 empty string instead + // If list string is not empty, parse as GradoopIds + List gradoopIds = gradoopIdsString.equals(String.format(LIST_TEMPLATE, "")) ? Collections + .emptyList() : Arrays.stream(gradoopIdsString + .substring(1, gradoopIdsString.length() - 1) + .split(CSVConstants.LIST_DELIMITER)) + .map(String::trim) + .map(GradoopId::fromString) + .collect(Collectors.toList()); - GradoopIdSet gradoopIdSet = new GradoopIdSet(); - for (String g : gradoopIds) { - gradoopIdSet.add(GradoopId.fromString(g.trim())); - } - return gradoopIdSet; + return GradoopIdSet.fromExisting(gradoopIds); } /** diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java index 48edddf945e6..b478d80db331 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java @@ -30,6 +30,9 @@ import java.util.Collection; import java.util.stream.Collectors; +import static org.gradoop.flink.io.impl.csv.CSVConstants.LIST_TEMPLATE; +import static org.gradoop.flink.io.impl.csv.CSVConstants.MAP_TEMPLATE; + /** * Base class to convert an EPGM element into a CSV representation. * @@ -95,9 +98,9 @@ private String propertyValueToCsvString(PropertyValue p) { if (p.isList() || p.isSet()) { return collectionToCsvString((Collection) p.getObject()); } else if (p.isMap()) { - return p.getMap().entrySet().stream() + return String.format(MAP_TEMPLATE, p.getMap().entrySet().stream() .map(e -> escape(e.getKey()) + CSVConstants.MAP_SEPARATOR + escape(e.getValue())) - .collect(Collectors.joining(CSVConstants.LIST_DELIMITER, "{", "}")); + .collect(Collectors.joining(CSVConstants.LIST_DELIMITER))); } else { return escape(p); } @@ -110,9 +113,9 @@ private String propertyValueToCsvString(PropertyValue p) { * @return CSV string */ protected String collectionToCsvString(Collection collection) { - return collection.stream() + return String.format(LIST_TEMPLATE, collection.stream() .map(o -> o instanceof PropertyValue ? escape((PropertyValue) o) : o.toString()) - .collect(Collectors.joining(CSVConstants.LIST_DELIMITER, "[", "]")); + .collect(Collectors.joining(CSVConstants.LIST_DELIMITER))); } /** diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java new file mode 100644 index 000000000000..e4a273f58689 --- /dev/null +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java @@ -0,0 +1,60 @@ +/* + * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.flink.io.impl.csv.functions; + +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.id.GradoopIdSet; +import org.junit.Test; +import org.mockito.Mockito; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +/** + * Tests CSVLineToElement + */ +public class CSVLineToElementTest { + + /** + * Test parsing of graph ids. + */ + @Test + public void testParseGradoopIds() { + List testData = Arrays.asList( + "[]", + "[000000000000000000000001]", + "[000000000000000000000001,000000000000000000000002]", + "[000000000000000000000003, 000000000000000000000001 ,000000000000000000000002]" + ); + GradoopId id1 = GradoopId.fromString("000000000000000000000001"); + GradoopId id2 = GradoopId.fromString("000000000000000000000002"); + GradoopId id3 = GradoopId.fromString("000000000000000000000003"); + + List results = Arrays.asList( + new GradoopIdSet(), + GradoopIdSet.fromExisting(id1), + GradoopIdSet.fromExisting(id1, id2), + GradoopIdSet.fromExisting(id1, id2, id3) + ); + + CSVLineToElement mock = Mockito.mock(CSVLineToElement.class, Mockito.CALLS_REAL_METHODS); + for (int i = 0; i < testData.size(); i++) { + assertEquals(mock.parseGradoopIds(testData.get(i)), results.get(i)); + } + } +} From 24199790f365e01b74a0e5f12ea07b5a127fbd52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20G=C3=B3mez?= Date: Mon, 22 Feb 2021 15:22:51 +0100 Subject: [PATCH 07/19] [#1508] updated notice, pom and header to 2021 Years of our header files were updated to year 2021. --- NOTICE | 2 +- NOTICE-binary | 2 +- gradoop-checkstyle/src/main/resources/gradoop/LICENSE.txt | 2 +- .../src/main/java/org/gradoop/common/config/GradoopConfig.java | 2 +- .../src/main/java/org/gradoop/common/config/package-info.java | 2 +- .../org/gradoop/common/exceptions/UnsupportedTypeException.java | 2 +- .../main/java/org/gradoop/common/exceptions/package-info.java | 2 +- .../java/org/gradoop/common/model/api/entities/Attributed.java | 2 +- .../main/java/org/gradoop/common/model/api/entities/Edge.java | 2 +- .../java/org/gradoop/common/model/api/entities/EdgeFactory.java | 2 +- .../java/org/gradoop/common/model/api/entities/Element.java | 2 +- .../org/gradoop/common/model/api/entities/ElementFactory.java | 2 +- .../common/model/api/entities/ElementFactoryProvider.java | 2 +- .../org/gradoop/common/model/api/entities/GraphElement.java | 2 +- .../java/org/gradoop/common/model/api/entities/GraphHead.java | 2 +- .../org/gradoop/common/model/api/entities/GraphHeadFactory.java | 2 +- .../org/gradoop/common/model/api/entities/Identifiable.java | 2 +- .../java/org/gradoop/common/model/api/entities/Labeled.java | 2 +- .../main/java/org/gradoop/common/model/api/entities/Vertex.java | 2 +- .../org/gradoop/common/model/api/entities/VertexFactory.java | 2 +- .../org/gradoop/common/model/api/entities/package-info.java | 2 +- .../common/model/api/strategies/PropertyValueStrategy.java | 2 +- .../org/gradoop/common/model/api/strategies/package-info.java | 2 +- .../common/model/impl/comparators/IdentifiableComparator.java | 2 +- .../org/gradoop/common/model/impl/comparators/package-info.java | 2 +- .../main/java/org/gradoop/common/model/impl/id/GradoopId.java | 2 +- .../java/org/gradoop/common/model/impl/id/GradoopIdSet.java | 2 +- .../java/org/gradoop/common/model/impl/id/package-info.java | 2 +- .../java/org/gradoop/common/model/impl/metadata/MetaData.java | 2 +- .../gradoop/common/model/impl/metadata/PropertyMetaData.java | 2 +- .../org/gradoop/common/model/impl/metadata/package-info.java | 2 +- .../main/java/org/gradoop/common/model/impl/pojo/EPGMEdge.java | 2 +- .../org/gradoop/common/model/impl/pojo/EPGMEdgeFactory.java | 2 +- .../java/org/gradoop/common/model/impl/pojo/EPGMElement.java | 2 +- .../org/gradoop/common/model/impl/pojo/EPGMGraphElement.java | 2 +- .../java/org/gradoop/common/model/impl/pojo/EPGMGraphHead.java | 2 +- .../gradoop/common/model/impl/pojo/EPGMGraphHeadFactory.java | 2 +- .../java/org/gradoop/common/model/impl/pojo/EPGMVertex.java | 2 +- .../org/gradoop/common/model/impl/pojo/EPGMVertexFactory.java | 2 +- .../java/org/gradoop/common/model/impl/pojo/package-info.java | 2 +- .../common/model/impl/properties/DateTimeSerializer.java | 2 +- .../org/gradoop/common/model/impl/properties/Properties.java | 2 +- .../java/org/gradoop/common/model/impl/properties/Property.java | 2 +- .../org/gradoop/common/model/impl/properties/PropertyValue.java | 2 +- .../gradoop/common/model/impl/properties/PropertyValueList.java | 2 +- .../common/model/impl/properties/PropertyValueUtils.java | 2 +- .../java/org/gradoop/common/model/impl/properties/Type.java | 2 +- .../org/gradoop/common/model/impl/properties/bytes/Bytes.java | 2 +- .../common/model/impl/properties/bytes/UnsafeAvailChecker.java | 2 +- .../common/model/impl/properties/bytes/package-info.java | 2 +- .../org/gradoop/common/model/impl/properties/package-info.java | 2 +- .../strategies/AbstractFixSizedPropertyValueStrategy.java | 2 +- .../strategies/AbstractVariableSizedPropertyValueStrategy.java | 2 +- .../model/impl/properties/strategies/BigDecimalStrategy.java | 2 +- .../model/impl/properties/strategies/BooleanStrategy.java | 2 +- .../common/model/impl/properties/strategies/DateStrategy.java | 2 +- .../model/impl/properties/strategies/DateTimeStrategy.java | 2 +- .../common/model/impl/properties/strategies/DoubleStrategy.java | 2 +- .../common/model/impl/properties/strategies/FloatStrategy.java | 2 +- .../model/impl/properties/strategies/GradoopIdStrategy.java | 2 +- .../model/impl/properties/strategies/IntegerStrategy.java | 2 +- .../common/model/impl/properties/strategies/ListStrategy.java | 2 +- .../common/model/impl/properties/strategies/LongStrategy.java | 2 +- .../common/model/impl/properties/strategies/MapStrategy.java | 2 +- .../common/model/impl/properties/strategies/NullStrategy.java | 2 +- .../properties/strategies/PropertyValueStrategyFactory.java | 2 +- .../impl/properties/strategies/PropertyValueStrategyUtils.java | 2 +- .../common/model/impl/properties/strategies/SetStrategy.java | 2 +- .../common/model/impl/properties/strategies/ShortStrategy.java | 2 +- .../common/model/impl/properties/strategies/StringStrategy.java | 2 +- .../common/model/impl/properties/strategies/TimeStrategy.java | 2 +- .../common/model/impl/properties/strategies/package-info.java | 2 +- .../src/main/java/org/gradoop/common/util/AsciiGraphLoader.java | 2 +- .../src/main/java/org/gradoop/common/util/GradoopConstants.java | 2 +- gradoop-common/src/main/java/org/gradoop/common/util/Order.java | 2 +- .../src/main/java/org/gradoop/common/util/package-info.java | 2 +- .../src/test/java/org/gradoop/common/GradoopTestUtils.java | 2 +- .../java/org/gradoop/common/model/impl/id/GradoopIdTest.java | 2 +- .../java/org/gradoop/common/model/impl/id/GradoopIdsTest.java | 2 +- .../org/gradoop/common/model/impl/metadata/MetaDataTest.java | 2 +- .../test/java/org/gradoop/common/model/impl/pojo/EdgeTest.java | 2 +- .../java/org/gradoop/common/model/impl/pojo/ElementTest.java | 2 +- .../org/gradoop/common/model/impl/pojo/GraphElementTest.java | 2 +- .../java/org/gradoop/common/model/impl/pojo/GraphHeadTest.java | 2 +- .../java/org/gradoop/common/model/impl/pojo/VertexTest.java | 2 +- .../gradoop/common/model/impl/properties/PropertiesTest.java | 2 +- .../org/gradoop/common/model/impl/properties/PropertyTest.java | 2 +- .../common/model/impl/properties/PropertyValueListTest.java | 2 +- .../gradoop/common/model/impl/properties/PropertyValueTest.java | 2 +- .../common/model/impl/properties/PropertyValueTestProvider.java | 2 +- .../common/model/impl/properties/PropertyValueUtilsTest.java | 2 +- .../test/java/org/gradoop/common/util/AsciiGraphLoaderTest.java | 2 +- .../dataintegration/importer/impl/csv/MinimalCSVImporter.java | 2 +- .../importer/impl/csv/functions/CsvRowToProperties.java | 2 +- .../importer/impl/csv/functions/PropertiesToVertex.java | 2 +- .../importer/impl/csv/functions/package-info.java | 2 +- .../gradoop/dataintegration/importer/impl/csv/package-info.java | 2 +- .../dataintegration/importer/impl/json/MinimalJSONImporter.java | 2 +- .../importer/impl/json/functions/MinimalJsonToVertex.java | 2 +- .../importer/impl/json/functions/package-info.java | 2 +- .../dataintegration/importer/impl/json/package-info.java | 2 +- .../java/org/gradoop/dataintegration/importer/package-info.java | 2 +- .../dataintegration/transformation/ConnectNeighbors.java | 2 +- .../gradoop/dataintegration/transformation/EdgeToVertex.java | 2 +- .../transformation/PropagatePropertyToNeighbor.java | 2 +- .../dataintegration/transformation/VertexDeduplication.java | 2 +- .../gradoop/dataintegration/transformation/VertexToEdge.java | 2 +- .../transformation/api/PropertyTransformationFunction.java | 2 +- .../dataintegration/transformation/api/package-info.java | 2 +- .../transformation/functions/AccumulatePropagatedValues.java | 2 +- .../transformation/functions/BuildIdPropertyValuePairs.java | 2 +- .../functions/BuildTargetVertexIdPropertyValuePairs.java | 2 +- .../functions/CreateCartesianNeighborhoodEdges.java | 2 +- .../transformation/functions/CreateEdgesFromTriple.java | 2 +- .../functions/CreateMappingFromMarkedDuplicates.java | 2 +- .../transformation/functions/CreateNeighborList.java | 2 +- .../transformation/functions/CreateVertexFromEdges.java | 2 +- .../functions/EdgesFromLocalTransitiveClosure.java | 2 +- .../transformation/functions/GetPropertiesAsList.java | 2 +- .../transformation/functions/MarkDuplicatesInGroup.java | 2 +- .../dataintegration/transformation/functions/package-info.java | 2 +- .../transformation/impl/BasePropertyTransformationFunction.java | 2 +- .../transformation/impl/ExtractPropertyFromVertex.java | 2 +- .../dataintegration/transformation/impl/InvertEdges.java | 2 +- .../dataintegration/transformation/impl/Neighborhood.java | 2 +- .../dataintegration/transformation/impl/NeighborhoodVertex.java | 2 +- .../transformation/impl/PropertyTransformation.java | 2 +- .../transformation/impl/config/EdgeDirection.java | 2 +- .../transformation/impl/config/package-info.java | 2 +- .../transformation/impl/functions/CreateNewEdges.java | 2 +- .../transformation/impl/functions/CreateNewVertex.java | 2 +- .../impl/functions/CreateNewVertexWithEqualityCondense.java | 2 +- .../dataintegration/transformation/impl/functions/DivideBy.java | 2 +- .../impl/functions/ExtractPropertyWithOriginId.java | 2 +- .../transformation/impl/functions/package-info.java | 2 +- .../dataintegration/transformation/impl/package-info.java | 2 +- .../gradoop/dataintegration/transformation/package-info.java | 2 +- .../importer/impl/csv/MinimalCSVImporterTest.java | 2 +- .../importer/impl/json/MinimalJSONImporterTest.java | 2 +- .../importer/impl/json/functions/MinimalJsonToVertexTest.java | 2 +- .../dataintegration/transformation/ConnectNeighborsTest.java | 2 +- .../dataintegration/transformation/EdgeToVertexTest.java | 2 +- .../transformation/PropagatePropertyToNeighborTest.java | 2 +- .../dataintegration/transformation/VertexDeduplicationTest.java | 2 +- .../dataintegration/transformation/VertexToEdgeTest.java | 2 +- .../functions/AccumulatePropagatedValuesTest.java | 2 +- .../transformation/functions/BuildIdPropertyValuePairsTest.java | 2 +- .../functions/BuildTargetVertexIdPropertyValuePairsTest.java | 2 +- .../functions/CreateCartesianNeighborhoodEdgesTest.java | 2 +- .../transformation/functions/CreateEdgesFromTripleTest.java | 2 +- .../functions/CreateMappingFromMarkedDuplicatesTest.java | 2 +- .../transformation/functions/CreateVertexFromEdgesTest.java | 2 +- .../transformation/functions/GetPropertiesAsListTest.java | 2 +- .../transformation/functions/MarkDuplicatesInGroupTest.java | 2 +- .../transformation/functions/NeighborhoodTest.java | 2 +- .../transformation/impl/ExtractPropertyFromVertexTest.java | 2 +- .../dataintegration/transformation/impl/InvertEdgesTest.java | 2 +- .../transformation/impl/PropertyTransformationTest.java | 2 +- .../org/gradoop/examples/aggregation/AggregationExample.java | 2 +- .../examples/aggregation/functions/AggregateListOfNames.java | 2 +- .../gradoop/examples/aggregation/functions/package-info.java | 2 +- .../java/org/gradoop/examples/aggregation/package-info.java | 2 +- .../java/org/gradoop/examples/common/SocialNetworkGraph.java | 2 +- .../src/main/java/org/gradoop/examples/common/package-info.java | 2 +- .../gradoop/examples/communities/GellyCommunitiesExample.java | 2 +- .../java/org/gradoop/examples/communities/package-info.java | 2 +- .../org/gradoop/examples/frequentpattern/DIMSpanExample.java | 2 +- .../org/gradoop/examples/frequentpattern/data/DIMSpanData.java | 2 +- .../org/gradoop/examples/frequentpattern/data/package-info.java | 2 +- .../java/org/gradoop/examples/frequentpattern/package-info.java | 2 +- .../java/org/gradoop/examples/grouping/SchemaGraphExample.java | 2 +- .../main/java/org/gradoop/examples/grouping/package-info.java | 2 +- .../gradoop/examples/keyedgrouping/KeyedGroupingExample.java | 2 +- .../examples/keyedgrouping/functions/AgeRoundedTo10.java | 2 +- .../gradoop/examples/keyedgrouping/functions/package-info.java | 2 +- .../java/org/gradoop/examples/keyedgrouping/package-info.java | 2 +- .../java/org/gradoop/examples/patternmatch/GDLQueryExample.java | 2 +- .../java/org/gradoop/examples/patternmatch/package-info.java | 2 +- .../java/org/gradoop/examples/quickstart/QuickstartExample.java | 2 +- .../org/gradoop/examples/quickstart/data/QuickstartData.java | 2 +- .../java/org/gradoop/examples/quickstart/data/package-info.java | 2 +- .../main/java/org/gradoop/examples/quickstart/package-info.java | 2 +- .../examples/aggregation/TemporalAggregationExample.java | 2 +- .../java/org/gradoop/examples/aggregation/package-info.java | 2 +- .../java/org/gradoop/examples/common/TemporalCitiBikeGraph.java | 2 +- .../common/functions/TransformLongPropertiesToDateTime.java | 2 +- .../org/gradoop/examples/common/functions/package-info.java | 2 +- .../src/main/java/org/gradoop/examples/common/package-info.java | 2 +- .../java/org/gradoop/examples/difference/DifferenceExample.java | 2 +- .../main/java/org/gradoop/examples/difference/package-info.java | 2 +- .../org/gradoop/examples/grouping/TemporalGroupingExample.java | 2 +- .../main/java/org/gradoop/examples/grouping/package-info.java | 2 +- .../java/org/gradoop/examples/snapshot/SnapshotExample.java | 2 +- .../main/java/org/gradoop/examples/snapshot/package-info.java | 2 +- .../flink/algorithms/btgs/BusinessTransactionGraphs.java | 2 +- .../gradoop/flink/algorithms/btgs/functions/BtgMessenger.java | 2 +- .../org/gradoop/flink/algorithms/btgs/functions/BtgUpdater.java | 2 +- .../flink/algorithms/btgs/functions/CollectGradoopIds.java | 2 +- .../flink/algorithms/btgs/functions/ComponentToNewBtgId.java | 2 +- .../org/gradoop/flink/algorithms/btgs/functions/MasterData.java | 2 +- .../flink/algorithms/btgs/functions/NewBtgGraphHead.java | 2 +- .../org/gradoop/flink/algorithms/btgs/functions/SetBtgId.java | 2 +- .../org/gradoop/flink/algorithms/btgs/functions/SetBtgIds.java | 2 +- .../gradoop/flink/algorithms/btgs/functions/TargetIdBtgId.java | 2 +- .../flink/algorithms/btgs/functions/TransactionalData.java | 2 +- .../gradoop/flink/algorithms/btgs/functions/package-info.java | 2 +- .../java/org/gradoop/flink/algorithms/btgs/package-info.java | 2 +- .../java/org/gradoop/flink/algorithms/fsm/TransactionalFSM.java | 2 +- .../java/org/gradoop/flink/algorithms/fsm/dimspan/DIMSpan.java | 2 +- .../fsm/dimspan/comparison/AlphabeticalLabelComparator.java | 2 +- .../algorithms/fsm/dimspan/comparison/DFSBranchComparator.java | 2 +- .../algorithms/fsm/dimspan/comparison/DFSCodeComparator.java | 2 +- .../fsm/dimspan/comparison/DirectedDFSBranchComparator.java | 2 +- .../dimspan/comparison/InverseProportionalLabelComparator.java | 2 +- .../algorithms/fsm/dimspan/comparison/LabelComparator.java | 2 +- .../fsm/dimspan/comparison/ProportionalLabelComparator.java | 2 +- .../fsm/dimspan/comparison/UndirectedDFSBranchComparator.java | 2 +- .../flink/algorithms/fsm/dimspan/comparison/package-info.java | 2 +- .../flink/algorithms/fsm/dimspan/config/DIMSpanConfig.java | 2 +- .../flink/algorithms/fsm/dimspan/config/DIMSpanConstants.java | 2 +- .../flink/algorithms/fsm/dimspan/config/DataflowStep.java | 2 +- .../flink/algorithms/fsm/dimspan/config/DictionaryType.java | 2 +- .../flink/algorithms/fsm/dimspan/config/package-info.java | 2 +- .../functions/conversion/DFSCodeToEPGMGraphTransaction.java | 2 +- .../conversion/EPGMGraphTransactionToLabeledGraph.java | 2 +- .../fsm/dimspan/functions/conversion/package-info.java | 2 +- .../fsm/dimspan/functions/mining/CompressPattern.java | 2 +- .../fsm/dimspan/functions/mining/CreateCollector.java | 2 +- .../fsm/dimspan/functions/mining/ExpandFrequentPatterns.java | 2 +- .../flink/algorithms/fsm/dimspan/functions/mining/Frequent.java | 2 +- .../fsm/dimspan/functions/mining/GrowFrequentPatterns.java | 2 +- .../functions/mining/InitSingleEdgePatternEmbeddingsMap.java | 2 +- .../dimspan/functions/mining/IsFrequentPatternCollector.java | 2 +- .../algorithms/fsm/dimspan/functions/mining/NotObsolete.java | 2 +- .../fsm/dimspan/functions/mining/ReportSupportedPatterns.java | 2 +- .../algorithms/fsm/dimspan/functions/mining/VerifyPattern.java | 2 +- .../algorithms/fsm/dimspan/functions/mining/package-info.java | 2 +- .../flink/algorithms/fsm/dimspan/functions/package-info.java | 2 +- .../functions/preprocessing/AggregateMultipleFunctions.java | 2 +- .../fsm/dimspan/functions/preprocessing/CreateDictionary.java | 2 +- .../dimspan/functions/preprocessing/EncodeAndPruneEdges.java | 2 +- .../dimspan/functions/preprocessing/EncodeAndPruneVertices.java | 2 +- .../fsm/dimspan/functions/preprocessing/MinFrequency.java | 2 +- .../fsm/dimspan/functions/preprocessing/NotEmpty.java | 2 +- .../fsm/dimspan/functions/preprocessing/ReportEdgeLabels.java | 2 +- .../fsm/dimspan/functions/preprocessing/ReportVertexLabels.java | 2 +- .../fsm/dimspan/functions/preprocessing/package-info.java | 2 +- .../flink/algorithms/fsm/dimspan/gspan/DirectedGSpanLogic.java | 2 +- .../gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogic.java | 2 +- .../flink/algorithms/fsm/dimspan/gspan/GSpanLogicBase.java | 2 +- .../algorithms/fsm/dimspan/gspan/UndirectedGSpanLogic.java | 2 +- .../flink/algorithms/fsm/dimspan/gspan/package-info.java | 2 +- .../flink/algorithms/fsm/dimspan/model/DFSCodeUtils.java | 2 +- .../gradoop/flink/algorithms/fsm/dimspan/model/GraphUtils.java | 2 +- .../flink/algorithms/fsm/dimspan/model/GraphUtilsBase.java | 2 +- .../flink/algorithms/fsm/dimspan/model/SearchGraphUtils.java | 2 +- .../algorithms/fsm/dimspan/model/SearchGraphUtilsBase.java | 2 +- .../flink/algorithms/fsm/dimspan/model/Simple16Compressor.java | 2 +- .../algorithms/fsm/dimspan/model/SortedSearchGraphUtils.java | 2 +- .../algorithms/fsm/dimspan/model/UnsortedSearchGraphUtils.java | 2 +- .../flink/algorithms/fsm/dimspan/model/package-info.java | 2 +- .../org/gradoop/flink/algorithms/fsm/dimspan/package-info.java | 2 +- .../fsm/dimspan/tuples/GraphWithPatternEmbeddingsMap.java | 2 +- .../algorithms/fsm/dimspan/tuples/LabeledGraphIntString.java | 2 +- .../algorithms/fsm/dimspan/tuples/LabeledGraphStringString.java | 2 +- .../algorithms/fsm/dimspan/tuples/PatternEmbeddingsMap.java | 2 +- .../flink/algorithms/fsm/dimspan/tuples/package-info.java | 2 +- .../java/org/gradoop/flink/algorithms/fsm/package-info.java | 2 +- .../fsm/transactional/CategoryCharacteristicSubgraphs.java | 2 +- .../algorithms/fsm/transactional/ThinkLikeAnEmbeddingTFSM.java | 2 +- .../flink/algorithms/fsm/transactional/common/FSMConfig.java | 2 +- .../algorithms/fsm/transactional/common/TFSMConstants.java | 2 +- .../common/functions/DropPropertiesAndGraphContainment.java | 2 +- .../fsm/transactional/common/functions/EdgeLabels.java | 2 +- .../fsm/transactional/common/functions/FilterEdgesByLabel.java | 2 +- .../transactional/common/functions/FilterVerticesByLabel.java | 2 +- .../algorithms/fsm/transactional/common/functions/NotEmpty.java | 2 +- .../fsm/transactional/common/functions/SortedDictionary.java | 2 +- .../transactional/common/functions/ToDirectedAdjacencyList.java | 2 +- .../common/functions/ToUndirectedAdjacencyList.java | 2 +- .../fsm/transactional/common/functions/VertexLabels.java | 2 +- .../fsm/transactional/common/functions/package-info.java | 2 +- .../flink/algorithms/fsm/transactional/common/package-info.java | 2 +- .../flink/algorithms/fsm/transactional/package-info.java | 2 +- .../fsm/transactional/tle/ThinkLikeAnEmbeddingFSMBase.java | 2 +- .../algorithms/fsm/transactional/tle/TransactionalFSMBase.java | 2 +- .../transactional/tle/canonicalization/CanonicalLabeler.java | 2 +- .../fsm/transactional/tle/canonicalization/package-info.java | 2 +- .../transactional/tle/functions/CCSSingleEdgeEmbeddings.java | 2 +- .../fsm/transactional/tle/functions/CCSSubgraphDecoder.java | 2 +- .../fsm/transactional/tle/functions/CCSSubgraphOnly.java | 2 +- .../tle/functions/CCSWrapInSubgraphEmbeddings.java | 2 +- .../fsm/transactional/tle/functions/CategoryEdgeLabels.java | 2 +- .../fsm/transactional/tle/functions/CategoryFrequent.java | 2 +- .../tle/functions/CategoryFrequentAndInteresting.java | 2 +- .../fsm/transactional/tle/functions/CategoryGraphCounts.java | 2 +- .../fsm/transactional/tle/functions/CategoryMinFrequencies.java | 2 +- .../fsm/transactional/tle/functions/CategoryVertexLabels.java | 2 +- .../fsm/transactional/tle/functions/CategoryWithCount.java | 2 +- .../algorithms/fsm/transactional/tle/functions/GraphId.java | 2 +- .../fsm/transactional/tle/functions/IsCharacteristic.java | 2 +- .../algorithms/fsm/transactional/tle/functions/IsResult.java | 2 +- .../fsm/transactional/tle/functions/JoinEmbeddings.java | 2 +- .../algorithms/fsm/transactional/tle/functions/LabelOnly.java | 2 +- .../fsm/transactional/tle/functions/MergeEmbeddings.java | 2 +- .../fsm/transactional/tle/functions/MinEdgeCount.java | 2 +- .../fsm/transactional/tle/functions/MinFrequency.java | 2 +- .../fsm/transactional/tle/functions/SingleEdgeEmbeddings.java | 2 +- .../fsm/transactional/tle/functions/SubgraphDecoder.java | 2 +- .../transactional/tle/functions/TFSMSingleEdgeEmbeddings.java | 2 +- .../fsm/transactional/tle/functions/TFSMSubgraphDecoder.java | 2 +- .../fsm/transactional/tle/functions/TFSMSubgraphOnly.java | 2 +- .../tle/functions/TFSMWrapInSubgraphEmbeddings.java | 2 +- .../algorithms/fsm/transactional/tle/functions/ToCCSGraph.java | 2 +- .../algorithms/fsm/transactional/tle/functions/ToFSMGraph.java | 2 +- .../algorithms/fsm/transactional/tle/functions/ToTFSMGraph.java | 2 +- .../tle/functions/WithoutInfrequentEdgeLabels.java | 2 +- .../tle/functions/WithoutInfrequentVertexLabels.java | 2 +- .../fsm/transactional/tle/functions/package-info.java | 2 +- .../fsm/transactional/tle/interestingness/Interestingness.java | 2 +- .../fsm/transactional/tle/interestingness/package-info.java | 2 +- .../flink/algorithms/fsm/transactional/tle/package-info.java | 2 +- .../flink/algorithms/fsm/transactional/tle/pojos/CCSGraph.java | 2 +- .../flink/algorithms/fsm/transactional/tle/pojos/Embedding.java | 2 +- .../flink/algorithms/fsm/transactional/tle/pojos/FSMEdge.java | 2 +- .../flink/algorithms/fsm/transactional/tle/pojos/FSMGraph.java | 2 +- .../flink/algorithms/fsm/transactional/tle/pojos/TFSMGraph.java | 2 +- .../algorithms/fsm/transactional/tle/pojos/package-info.java | 2 +- .../algorithms/fsm/transactional/tle/tuples/CCSSubgraph.java | 2 +- .../fsm/transactional/tle/tuples/CCSSubgraphEmbeddings.java | 2 +- .../algorithms/fsm/transactional/tle/tuples/Categorizable.java | 2 +- .../fsm/transactional/tle/tuples/CategoryCountableLabel.java | 2 +- .../flink/algorithms/fsm/transactional/tle/tuples/Subgraph.java | 2 +- .../fsm/transactional/tle/tuples/SubgraphEmbeddings.java | 2 +- .../algorithms/fsm/transactional/tle/tuples/TFSMSubgraph.java | 2 +- .../fsm/transactional/tle/tuples/TFSMSubgraphEmbeddings.java | 2 +- .../algorithms/fsm/transactional/tle/tuples/package-info.java | 2 +- .../org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java | 2 +- .../gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java | 2 +- .../gelly/clusteringcoefficient/ClusteringCoefficientBase.java | 2 +- .../GellyGlobalClusteringCoefficientDirected.java | 2 +- .../GellyGlobalClusteringCoefficientUndirected.java | 2 +- .../GellyLocalClusteringCoefficientDirected.java | 2 +- .../GellyLocalClusteringCoefficientUndirected.java | 2 +- .../functions/LocalCCResultTupleToVertexJoin.java | 2 +- .../functions/LocalDirectedCCResultToTupleMap.java | 2 +- .../functions/LocalUndirectedCCResultToTupleMap.java | 2 +- .../gelly/clusteringcoefficient/functions/package-info.java | 2 +- .../algorithms/gelly/clusteringcoefficient/package-info.java | 2 +- .../connectedcomponents/AnnotateWeaklyConnectedComponents.java | 2 +- .../connectedcomponents/ValueWeaklyConnectedComponents.java | 2 +- .../WeaklyConnectedComponentsAsCollection.java | 2 +- .../connectedcomponents/functions/CreateLongSourceIds.java | 2 +- .../connectedcomponents/functions/CreateLongTargetIds.java | 2 +- .../functions/GellyVertexValueToVertexPropertyJoin.java | 2 +- .../connectedcomponents/functions/MapVertexIdComponentId.java | 2 +- .../functions/VertexPropertyToEdgePropertyJoin.java | 2 +- .../gelly/connectedcomponents/functions/package-info.java | 2 +- .../algorithms/gelly/connectedcomponents/package-info.java | 2 +- .../flink/algorithms/gelly/functions/EdgeToGellyEdge.java | 2 +- .../algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java | 2 +- .../gelly/functions/EdgeToGellyEdgeWithNullValue.java | 2 +- .../gelly/functions/EdgeToGellyEdgeWithPropertyValue.java | 2 +- .../flink/algorithms/gelly/functions/ElementToGellyEdge.java | 2 +- .../flink/algorithms/gelly/functions/ElementToGellyVertex.java | 2 +- .../gelly/functions/LongTupleToGellyEdgeWithLongValue.java | 2 +- .../gelly/functions/LongTupleToGellyVertexWithLongValue.java | 2 +- .../flink/algorithms/gelly/functions/VertexToGellyVertex.java | 2 +- .../gelly/functions/VertexToGellyVertexWithGradoopId.java | 2 +- .../gelly/functions/VertexToGellyVertexWithNullValue.java | 2 +- .../gelly/functions/VertexToGellyVertexWithPropertyValue.java | 2 +- .../algorithms/gelly/functions/WritePropertyToGraphHeadMap.java | 2 +- .../gradoop/flink/algorithms/gelly/functions/package-info.java | 2 +- .../main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java | 2 +- .../flink/algorithms/gelly/hits/functions/HITSToAttributes.java | 2 +- .../algorithms/gelly/hits/functions/HitsResultKeySelector.java | 2 +- .../flink/algorithms/gelly/hits/functions/package-info.java | 2 +- .../org/gradoop/flink/algorithms/gelly/hits/package-info.java | 2 +- .../gelly/labelpropagation/GellyLabelPropagation.java | 2 +- .../gelly/labelpropagation/GradoopLabelPropagation.java | 2 +- .../algorithms/gelly/labelpropagation/LabelPropagation.java | 2 +- .../gelly/labelpropagation/functions/LPMessageFunction.java | 2 +- .../gelly/labelpropagation/functions/LPUpdateFunction.java | 2 +- .../gelly/labelpropagation/functions/LPVertexJoin.java | 2 +- .../gelly/labelpropagation/functions/package-info.java | 2 +- .../flink/algorithms/gelly/labelpropagation/package-info.java | 2 +- .../java/org/gradoop/flink/algorithms/gelly/package-info.java | 2 +- .../org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java | 2 +- .../algorithms/gelly/pagerank/functions/PageRankResultKey.java | 2 +- .../gelly/pagerank/functions/PageRankToAttribute.java | 2 +- .../flink/algorithms/gelly/pagerank/functions/package-info.java | 2 +- .../gradoop/flink/algorithms/gelly/pagerank/package-info.java | 2 +- .../flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java | 2 +- .../gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java | 2 +- .../randomjump/functions/GellyVertexWithEPGMVertexJoin.java | 2 +- .../functions/GellyVertexWithLongIdToGradoopIdJoin.java | 2 +- .../randomjump/functions/GetVisitedGellyEdgeLongIdsFlatMap.java | 2 +- .../randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java | 2 +- .../functions/LongIdToGellyVertexWithVCIValueMap.java | 2 +- .../functions/LongIdTupleToGellyEdgeWithLongValueJoin.java | 2 +- .../gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java | 2 +- .../gelly/randomjump/functions/ReplaceTargetWithLongIdJoin.java | 2 +- .../gelly/randomjump/functions/VCIComputeFunction.java | 2 +- .../algorithms/gelly/randomjump/functions/VCIVertexValue.java | 2 +- .../functions/VertexWithVisitedSourceTargetIdJoin.java | 2 +- .../functions/VisitedGellyEdgesWithLongIdToGradoopIdJoin.java | 2 +- .../algorithms/gelly/randomjump/functions/package-info.java | 2 +- .../gradoop/flink/algorithms/gelly/randomjump/package-info.java | 2 +- .../gelly/shortestpaths/SingleSourceShortestPaths.java | 2 +- .../functions/SingleSourceShortestPathsAttribute.java | 2 +- .../algorithms/gelly/shortestpaths/functions/package-info.java | 2 +- .../flink/algorithms/gelly/shortestpaths/package-info.java | 2 +- .../gelly/trianglecounting/GellyTriangleCounting.java | 2 +- .../flink/algorithms/gelly/trianglecounting/package-info.java | 2 +- .../algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java | 2 +- .../functions/DistinctVertexDegreesToAttribute.java | 2 +- .../algorithms/gelly/vertexdegrees/functions/package-info.java | 2 +- .../flink/algorithms/gelly/vertexdegrees/package-info.java | 2 +- .../main/java/org/gradoop/flink/algorithms/package-info.java | 2 +- .../src/main/java/org/gradoop/flink/io/api/DataSink.java | 2 +- .../src/main/java/org/gradoop/flink/io/api/DataSource.java | 2 +- .../java/org/gradoop/flink/io/api/metadata/MetaDataSink.java | 2 +- .../java/org/gradoop/flink/io/api/metadata/MetaDataSource.java | 2 +- .../io/api/metadata/functions/ElementToPropertyMetaData.java | 2 +- .../flink/io/api/metadata/functions/ReducePropertyMetaData.java | 2 +- .../gradoop/flink/io/api/metadata/functions/package-info.java | 2 +- .../java/org/gradoop/flink/io/api/metadata/package-info.java | 2 +- .../src/main/java/org/gradoop/flink/io/api/package-info.java | 2 +- .../src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java | 2 +- .../main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java | 2 +- .../main/java/org/gradoop/flink/io/impl/csv/CSVDataSink.java | 2 +- .../main/java/org/gradoop/flink/io/impl/csv/CSVDataSource.java | 2 +- .../org/gradoop/flink/io/impl/csv/functions/CSVLineToEdge.java | 2 +- .../gradoop/flink/io/impl/csv/functions/CSVLineToElement.java | 2 +- .../gradoop/flink/io/impl/csv/functions/CSVLineToGraphHead.java | 2 +- .../gradoop/flink/io/impl/csv/functions/CSVLineToVertex.java | 2 +- .../org/gradoop/flink/io/impl/csv/functions/EdgeToCSVEdge.java | 2 +- .../org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java | 2 +- .../flink/io/impl/csv/functions/GraphHeadToCSVGraphHead.java | 2 +- .../org/gradoop/flink/io/impl/csv/functions/StringEscaper.java | 2 +- .../gradoop/flink/io/impl/csv/functions/VertexToCSVVertex.java | 2 +- .../org/gradoop/flink/io/impl/csv/functions/package-info.java | 2 +- .../gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSink.java | 2 +- .../gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java | 2 +- .../io/impl/csv/indexed/functions/IndexedCSVFileFormat.java | 2 +- .../io/impl/csv/indexed/functions/MultipleFileOutputFormat.java | 2 +- .../flink/io/impl/csv/indexed/functions/package-info.java | 2 +- .../org/gradoop/flink/io/impl/csv/indexed/package-info.java | 2 +- .../org/gradoop/flink/io/impl/csv/metadata/CSVMetaData.java | 2 +- .../gradoop/flink/io/impl/csv/metadata/CSVMetaDataParser.java | 2 +- .../org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSink.java | 2 +- .../gradoop/flink/io/impl/csv/metadata/CSVMetaDataSource.java | 2 +- .../org/gradoop/flink/io/impl/csv/metadata/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/csv/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/csv/tuples/CSVEdge.java | 2 +- .../java/org/gradoop/flink/io/impl/csv/tuples/CSVElement.java | 2 +- .../java/org/gradoop/flink/io/impl/csv/tuples/CSVGraphHead.java | 2 +- .../java/org/gradoop/flink/io/impl/csv/tuples/CSVVertex.java | 2 +- .../java/org/gradoop/flink/io/impl/csv/tuples/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/dot/DOTDataSink.java | 2 +- .../flink/io/impl/dot/functions/AbstractDotFileFormat.java | 2 +- .../gradoop/flink/io/impl/dot/functions/DotFileFormatHtml.java | 2 +- .../flink/io/impl/dot/functions/DotFileFormatSimple.java | 2 +- .../org/gradoop/flink/io/impl/dot/functions/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/dot/package-info.java | 2 +- .../org/gradoop/flink/io/impl/edgelist/EdgeListDataSource.java | 2 +- .../flink/io/impl/edgelist/VertexLabeledEdgeListDataSource.java | 2 +- .../flink/io/impl/edgelist/functions/CreateImportEdge.java | 2 +- .../flink/io/impl/edgelist/functions/CreateImportVertex.java | 2 +- .../io/impl/edgelist/functions/CreateLabeledImportVertex.java | 2 +- .../gradoop/flink/io/impl/edgelist/functions/package-info.java | 2 +- .../java/org/gradoop/flink/io/impl/edgelist/package-info.java | 2 +- .../java/org/gradoop/flink/io/impl/gdl/GDLConsoleOutput.java | 2 +- .../main/java/org/gradoop/flink/io/impl/gdl/GDLDataSink.java | 2 +- .../src/main/java/org/gradoop/flink/io/impl/gdl/GDLEncoder.java | 2 +- .../flink/io/impl/gdl/functions/GraphTransactionsToGDL.java | 2 +- .../org/gradoop/flink/io/impl/gdl/functions/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/gdl/package-info.java | 2 +- .../java/org/gradoop/flink/io/impl/graph/GraphDataSource.java | 2 +- .../org/gradoop/flink/io/impl/graph/functions/InitEdge.java | 2 +- .../org/gradoop/flink/io/impl/graph/functions/InitElement.java | 2 +- .../org/gradoop/flink/io/impl/graph/functions/InitVertex.java | 2 +- .../org/gradoop/flink/io/impl/graph/functions/UpdateEdge.java | 2 +- .../org/gradoop/flink/io/impl/graph/functions/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/graph/package-info.java | 2 +- .../java/org/gradoop/flink/io/impl/graph/tuples/ImportEdge.java | 2 +- .../org/gradoop/flink/io/impl/graph/tuples/ImportVertex.java | 2 +- .../org/gradoop/flink/io/impl/graph/tuples/package-info.java | 2 +- .../java/org/gradoop/flink/io/impl/image/ImageDataSink.java | 2 +- .../flink/io/impl/image/functions/SourceCoordinateJoin.java | 2 +- .../flink/io/impl/image/functions/TargetCoordinateJoin.java | 2 +- .../gradoop/flink/io/impl/image/functions/ToCoordsTuple.java | 2 +- .../gradoop/flink/io/impl/image/functions/VertexScaleMap.java | 2 +- .../gradoop/flink/io/impl/image/functions/VertexZoomMap.java | 2 +- .../org/gradoop/flink/io/impl/image/functions/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/image/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/mtx/MtxDataSource.java | 2 +- .../org/gradoop/flink/io/impl/mtx/functions/MtxEdgeToEdge.java | 2 +- .../gradoop/flink/io/impl/mtx/functions/MtxVertexToVertex.java | 2 +- .../org/gradoop/flink/io/impl/mtx/functions/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/mtx/package-info.java | 2 +- .../src/main/java/org/gradoop/flink/io/impl/package-info.java | 2 +- .../flink/io/impl/statistics/GraphStatisticsDataSink.java | 2 +- .../java/org/gradoop/flink/io/impl/statistics/package-info.java | 2 +- .../src/main/java/org/gradoop/flink/io/impl/tlf/TLFBase.java | 2 +- .../main/java/org/gradoop/flink/io/impl/tlf/TLFConstants.java | 2 +- .../main/java/org/gradoop/flink/io/impl/tlf/TLFDataSink.java | 2 +- .../main/java/org/gradoop/flink/io/impl/tlf/TLFDataSource.java | 2 +- .../org/gradoop/flink/io/impl/tlf/constants/package-info.java | 2 +- .../org/gradoop/flink/io/impl/tlf/functions/Dictionary.java | 2 +- .../gradoop/flink/io/impl/tlf/functions/DictionaryEntry.java | 2 +- .../gradoop/flink/io/impl/tlf/functions/EdgeLabelDecoder.java | 2 +- .../org/gradoop/flink/io/impl/tlf/functions/EdgeLabelList.java | 2 +- .../flink/io/impl/tlf/functions/ElementLabelEncoder.java | 2 +- .../flink/io/impl/tlf/functions/GraphTransactionFromText.java | 2 +- .../flink/io/impl/tlf/functions/TLFDictionaryFileFormat.java | 2 +- .../io/impl/tlf/functions/TLFDictionaryMapGroupReducer.java | 2 +- .../org/gradoop/flink/io/impl/tlf/functions/TLFFileFormat.java | 2 +- .../gradoop/flink/io/impl/tlf/functions/VertexLabelDecoder.java | 2 +- .../gradoop/flink/io/impl/tlf/functions/VertexLabelList.java | 2 +- .../org/gradoop/flink/io/impl/tlf/functions/package-info.java | 2 +- .../gradoop/flink/io/impl/tlf/inputformats/TLFInputFormat.java | 2 +- .../gradoop/flink/io/impl/tlf/inputformats/TLFRecordReader.java | 2 +- .../gradoop/flink/io/impl/tlf/inputformats/package-info.java | 2 +- .../main/java/org/gradoop/flink/io/impl/tlf/package-info.java | 2 +- .../main/java/org/gradoop/flink/model/api/epgm/BaseGraph.java | 2 +- .../org/gradoop/flink/model/api/epgm/BaseGraphCollection.java | 2 +- .../flink/model/api/epgm/BaseGraphCollectionFactory.java | 2 +- .../flink/model/api/epgm/BaseGraphCollectionOperators.java | 2 +- .../java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java | 2 +- .../org/gradoop/flink/model/api/epgm/BaseGraphOperators.java | 2 +- .../gradoop/flink/model/api/epgm/GraphCollectionOperators.java | 2 +- .../org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java | 2 +- .../java/org/gradoop/flink/model/api/epgm/package-info.java | 2 +- .../flink/model/api/functions/AggregateDefaultValue.java | 2 +- .../gradoop/flink/model/api/functions/AggregateFunction.java | 2 +- .../flink/model/api/functions/EdgeAggregateFunction.java | 2 +- .../java/org/gradoop/flink/model/api/functions/Function.java | 2 +- .../flink/model/api/functions/GraphHeadReduceFunction.java | 2 +- .../java/org/gradoop/flink/model/api/functions/KeyFunction.java | 2 +- .../flink/model/api/functions/KeyFunctionWithDefaultValue.java | 2 +- .../flink/model/api/functions/TransformationFunction.java | 2 +- .../flink/model/api/functions/VertexAggregateFunction.java | 2 +- .../org/gradoop/flink/model/api/functions/package-info.java | 2 +- .../org/gradoop/flink/model/api/layouts/BaseLayoutFactory.java | 2 +- .../gradoop/flink/model/api/layouts/GraphCollectionLayout.java | 2 +- .../flink/model/api/layouts/GraphCollectionLayoutFactory.java | 2 +- .../main/java/org/gradoop/flink/model/api/layouts/Layout.java | 2 +- .../org/gradoop/flink/model/api/layouts/LogicalGraphLayout.java | 2 +- .../flink/model/api/layouts/LogicalGraphLayoutFactory.java | 2 +- .../java/org/gradoop/flink/model/api/layouts/package-info.java | 2 +- .../operators/ApplicableUnaryBaseGraphToBaseGraphOperator.java | 2 +- .../BinaryBaseGraphCollectionToBaseGraphCollectionOperator.java | 2 +- .../api/operators/BinaryBaseGraphCollectionToValueOperator.java | 2 +- .../model/api/operators/BinaryBaseGraphToBaseGraphOperator.java | 2 +- .../model/api/operators/BinaryBaseGraphToValueOperator.java | 2 +- .../flink/model/api/operators/GraphCollectionGenerator.java | 2 +- .../org/gradoop/flink/model/api/operators/GraphGenerator.java | 2 +- .../flink/model/api/operators/GraphTransactionsGenerator.java | 2 +- .../flink/model/api/operators/GraphTransactionsOperators.java | 2 +- .../flink/model/api/operators/GraphsToGraphOperator.java | 2 +- .../java/org/gradoop/flink/model/api/operators/Operator.java | 2 +- .../operators/ReducibleBinaryBaseGraphToBaseGraphOperator.java | 2 +- .../UnaryBaseGraphCollectionToBaseGraphCollectionOperator.java | 2 +- .../operators/UnaryBaseGraphCollectionToBaseGraphOperator.java | 2 +- .../api/operators/UnaryBaseGraphCollectionToValueOperator.java | 2 +- .../operators/UnaryBaseGraphToBaseGraphCollectionOperator.java | 2 +- .../model/api/operators/UnaryBaseGraphToBaseGraphOperator.java | 2 +- .../model/api/operators/UnaryBaseGraphToValueOperator.java | 2 +- .../api/operators/UnaryCollectionToCollectionOperator.java | 2 +- .../model/api/operators/UnaryGraphToCollectionOperator.java | 2 +- .../flink/model/api/operators/UnaryGraphToGraphOperator.java | 2 +- .../flink/model/api/operators/UnaryGraphToValueOperator.java | 2 +- .../org/gradoop/flink/model/api/operators/package-info.java | 2 +- .../main/java/org/gradoop/flink/model/api/tuples/Countable.java | 2 +- .../java/org/gradoop/flink/model/api/tuples/package-info.java | 2 +- .../flink/model/impl/comparators/ElementIdComparator.java | 2 +- .../org/gradoop/flink/model/impl/comparators/package-info.java | 2 +- .../java/org/gradoop/flink/model/impl/epgm/GraphCollection.java | 2 +- .../gradoop/flink/model/impl/epgm/GraphCollectionFactory.java | 2 +- .../java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java | 2 +- .../org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java | 2 +- .../java/org/gradoop/flink/model/impl/epgm/package-info.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/bool/And.java | 2 +- .../org/gradoop/flink/model/impl/functions/bool/Equals.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/bool/False.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/bool/Not.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/bool/Or.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/bool/True.java | 2 +- .../gradoop/flink/model/impl/functions/bool/package-info.java | 2 +- .../flink/model/impl/functions/epgm/ByDifferentGraphId.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/ByDifferentId.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/ByLabel.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/ByProperty.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/BySameId.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/BySourceId.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/ByTargetId.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/epgm/Clone.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/EdgeFromIds.java | 2 +- .../flink/model/impl/functions/epgm/EdgeSourceUpdateJoin.java | 2 +- .../flink/model/impl/functions/epgm/EdgeTargetUpdateJoin.java | 2 +- .../flink/model/impl/functions/epgm/ElementIdUpdater.java | 2 +- .../model/impl/functions/epgm/ElementsOfSelectedGraphs.java | 2 +- .../flink/model/impl/functions/epgm/ExpandGradoopIds.java | 2 +- .../flink/model/impl/functions/epgm/GraphElementExpander.java | 2 +- .../flink/model/impl/functions/epgm/GraphElementSet.java | 2 +- .../impl/functions/epgm/GraphElementsHeadsToTransaction.java | 2 +- .../flink/model/impl/functions/epgm/GraphVerticesEdges.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/epgm/Id.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/IdAsIdSet.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/IdInBroadcast.java | 2 +- .../flink/model/impl/functions/epgm/IdNotInBroadcast.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/IdSetCombiner.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/InitGraphHead.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/epgm/Label.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/LabelCombiner.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/LabelIsIn.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/MergedGraphIds.java | 2 +- .../flink/model/impl/functions/epgm/PairElementWithNewId.java | 2 +- .../model/impl/functions/epgm/PairElementWithPropertyValue.java | 2 +- .../flink/model/impl/functions/epgm/PairTupleWithNewId.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/Properties.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/PropertyGetter.java | 2 +- .../flink/model/impl/functions/epgm/PropertyRemover.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/PropertySetter.java | 2 +- .../flink/model/impl/functions/epgm/RemoveProperties.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/RenameLabel.java | 2 +- .../flink/model/impl/functions/epgm/RenamePropertyKeys.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/SetProperty.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/SourceId.java | 2 +- .../org/gradoop/flink/model/impl/functions/epgm/TargetId.java | 2 +- .../model/impl/functions/epgm/ToGellyEdgeWithNullValue.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/ToGradoopIdSet.java | 2 +- .../flink/model/impl/functions/epgm/ToPropertyValue.java | 2 +- .../flink/model/impl/functions/epgm/TransactionEdges.java | 2 +- .../flink/model/impl/functions/epgm/TransactionFromSets.java | 2 +- .../flink/model/impl/functions/epgm/TransactionGraphHead.java | 2 +- .../flink/model/impl/functions/epgm/TransactionVertices.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/Tuple1WithId.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/VertexFromId.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/package-info.java | 2 +- .../functions/filters/AbstractRichCombinedFilterFunction.java | 2 +- .../org/gradoop/flink/model/impl/functions/filters/And.java | 2 +- .../flink/model/impl/functions/filters/CombinableFilter.java | 2 +- .../org/gradoop/flink/model/impl/functions/filters/Not.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/filters/Or.java | 2 +- .../flink/model/impl/functions/filters/package-info.java | 2 +- .../flink/model/impl/functions/graphcontainment/AddToGraph.java | 2 +- .../impl/functions/graphcontainment/AddToGraphBroadcast.java | 2 +- .../impl/functions/graphcontainment/ExpandGraphsToIdSet.java | 2 +- .../impl/functions/graphcontainment/ExpandGraphsToIds.java | 2 +- .../graphcontainment/GraphContainmentFilterBroadcast.java | 2 +- .../graphcontainment/GraphsContainmentFilterBroadcast.java | 2 +- .../model/impl/functions/graphcontainment/InAllGraphs.java | 2 +- .../impl/functions/graphcontainment/InAllGraphsBroadcast.java | 2 +- .../flink/model/impl/functions/graphcontainment/InAnyGraph.java | 2 +- .../impl/functions/graphcontainment/InAnyGraphBroadcast.java | 2 +- .../flink/model/impl/functions/graphcontainment/InGraph.java | 2 +- .../model/impl/functions/graphcontainment/InGraphBroadcast.java | 2 +- .../impl/functions/graphcontainment/InGraphsBroadcast.java | 2 +- .../flink/model/impl/functions/graphcontainment/InNoGraph.java | 2 +- .../impl/functions/graphcontainment/NotInGraphBroadcast.java | 2 +- .../impl/functions/graphcontainment/NotInGraphsBroadcast.java | 2 +- .../functions/graphcontainment/PairGraphIdWithElementId.java | 2 +- .../impl/functions/graphcontainment/PairVertexWithGraphs.java | 2 +- .../model/impl/functions/graphcontainment/package-info.java | 2 +- .../org/gradoop/flink/model/impl/functions/package-info.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/ObjectTo1.java | 2 +- .../gradoop/flink/model/impl/functions/tuple/Project2To0.java | 2 +- .../gradoop/flink/model/impl/functions/tuple/Project2To1.java | 2 +- .../gradoop/flink/model/impl/functions/tuple/Project3To0.java | 2 +- .../flink/model/impl/functions/tuple/Project3To0And1.java | 2 +- .../flink/model/impl/functions/tuple/Project4To0And1.java | 2 +- .../flink/model/impl/functions/tuple/Project4To1And2And3.java | 2 +- .../gradoop/flink/model/impl/functions/tuple/SwitchPair.java | 2 +- .../gradoop/flink/model/impl/functions/tuple/ToIdWithLabel.java | 2 +- .../flink/model/impl/functions/tuple/Tuple2ToWithCount.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/Value0Of2.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/Value0Of3.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/Value0Of4.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/Value1Of2.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/Value1Of3.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/Value2Of3.java | 2 +- .../org/gradoop/flink/model/impl/functions/tuple/ValueOf1.java | 2 +- .../flink/model/impl/functions/tuple/ValueOfWithCount.java | 2 +- .../gradoop/flink/model/impl/functions/tuple/package-info.java | 2 +- .../org/gradoop/flink/model/impl/functions/utils/AddCount.java | 2 +- .../java/org/gradoop/flink/model/impl/functions/utils/Cast.java | 2 +- .../org/gradoop/flink/model/impl/functions/utils/Duplicate.java | 2 +- .../org/gradoop/flink/model/impl/functions/utils/First.java | 2 +- .../gradoop/flink/model/impl/functions/utils/IsInstance.java | 2 +- .../org/gradoop/flink/model/impl/functions/utils/LeftSide.java | 2 +- .../model/impl/functions/utils/LeftSideWithRightGraphs.java | 2 +- .../flink/model/impl/functions/utils/LeftWhenRightIsNull.java | 2 +- .../gradoop/flink/model/impl/functions/utils/OneSideEmpty.java | 2 +- .../org/gradoop/flink/model/impl/functions/utils/RightSide.java | 2 +- .../model/impl/functions/utils/RightSideWithLeftGraphs.java | 2 +- .../org/gradoop/flink/model/impl/functions/utils/SumCount.java | 2 +- .../org/gradoop/flink/model/impl/functions/utils/Superstep.java | 2 +- .../gradoop/flink/model/impl/functions/utils/package-info.java | 2 +- .../gradoop/flink/model/impl/layouts/common/BaseFactory.java | 2 +- .../gradoop/flink/model/impl/layouts/common/package-info.java | 2 +- .../gradoop/flink/model/impl/layouts/gve/GVEBaseFactory.java | 2 +- .../model/impl/layouts/gve/GVECollectionLayoutFactory.java | 2 +- .../flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java | 2 +- .../org/gradoop/flink/model/impl/layouts/gve/GVELayout.java | 2 +- .../layouts/gve/indexed/IndexedGVECollectionLayoutFactory.java | 2 +- .../impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactory.java | 2 +- .../flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java | 2 +- .../flink/model/impl/layouts/gve/indexed/package-info.java | 2 +- .../org/gradoop/flink/model/impl/layouts/gve/package-info.java | 2 +- .../model/impl/layouts/transactional/TxCollectionLayout.java | 2 +- .../impl/layouts/transactional/TxCollectionLayoutFactory.java | 2 +- .../flink/model/impl/layouts/transactional/package-info.java | 2 +- .../impl/layouts/transactional/tuples/GraphTransaction.java | 2 +- .../model/impl/layouts/transactional/tuples/package-info.java | 2 +- .../flink/model/impl/operators/aggregation/Aggregation.java | 2 +- .../model/impl/operators/aggregation/ApplyAggregation.java | 2 +- .../impl/operators/aggregation/functions/AggregateElements.java | 2 +- .../operators/aggregation/functions/AggregateTransactions.java | 2 +- .../impl/operators/aggregation/functions/AggregateUtil.java | 2 +- .../operators/aggregation/functions/ApplyAggregateElements.java | 2 +- .../operators/aggregation/functions/BaseAggregateFunction.java | 2 +- .../aggregation/functions/CombinePartitionAggregates.java | 2 +- .../aggregation/functions/CombinePartitionApplyAggregates.java | 2 +- .../operators/aggregation/functions/SetAggregateProperties.java | 2 +- .../operators/aggregation/functions/SetAggregateProperty.java | 2 +- .../impl/operators/aggregation/functions/average/Average.java | 2 +- .../aggregation/functions/average/AverageEdgeProperty.java | 2 +- .../aggregation/functions/average/AverageProperty.java | 2 +- .../aggregation/functions/average/AverageVertexProperty.java | 2 +- .../operators/aggregation/functions/average/package-info.java | 2 +- .../model/impl/operators/aggregation/functions/bool/Or.java | 2 +- .../impl/operators/aggregation/functions/bool/package-info.java | 2 +- .../aggregation/functions/containment/HasEdgeLabel.java | 2 +- .../operators/aggregation/functions/containment/HasLabel.java | 2 +- .../aggregation/functions/containment/HasVertexLabel.java | 2 +- .../aggregation/functions/containment/package-info.java | 2 +- .../model/impl/operators/aggregation/functions/count/Count.java | 2 +- .../impl/operators/aggregation/functions/count/EdgeCount.java | 2 +- .../impl/operators/aggregation/functions/count/VertexCount.java | 2 +- .../operators/aggregation/functions/count/package-info.java | 2 +- .../model/impl/operators/aggregation/functions/max/Max.java | 2 +- .../operators/aggregation/functions/max/MaxEdgeProperty.java | 2 +- .../impl/operators/aggregation/functions/max/MaxProperty.java | 2 +- .../operators/aggregation/functions/max/MaxVertexProperty.java | 2 +- .../impl/operators/aggregation/functions/max/package-info.java | 2 +- .../model/impl/operators/aggregation/functions/min/Min.java | 2 +- .../operators/aggregation/functions/min/MinEdgeProperty.java | 2 +- .../impl/operators/aggregation/functions/min/MinProperty.java | 2 +- .../operators/aggregation/functions/min/MinVertexProperty.java | 2 +- .../impl/operators/aggregation/functions/min/package-info.java | 2 +- .../impl/operators/aggregation/functions/package-info.java | 2 +- .../model/impl/operators/aggregation/functions/sum/Sum.java | 2 +- .../operators/aggregation/functions/sum/SumEdgeProperty.java | 2 +- .../impl/operators/aggregation/functions/sum/SumProperty.java | 2 +- .../operators/aggregation/functions/sum/SumVertexProperty.java | 2 +- .../impl/operators/aggregation/functions/sum/package-info.java | 2 +- .../flink/model/impl/operators/aggregation/package-info.java | 2 +- .../base/BinaryCollectionToCollectionOperatorBase.java | 2 +- .../flink/model/impl/operators/base/SetOperatorBase.java | 2 +- .../model/impl/operators/base/functions/LeftJoin0OfTuple2.java | 2 +- .../flink/model/impl/operators/base/functions/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/base/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/cloning/Cloning.java | 2 +- .../impl/operators/cloning/functions/ElementGraphUpdater.java | 2 +- .../model/impl/operators/cloning/functions/Value0Of2ToId.java | 2 +- .../model/impl/operators/cloning/functions/package-info.java | 2 +- .../flink/model/impl/operators/cloning/package-info.java | 2 +- .../flink/model/impl/operators/combination/Combination.java | 2 +- .../model/impl/operators/combination/ReduceCombination.java | 2 +- .../flink/model/impl/operators/combination/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/count/Count.java | 2 +- .../model/impl/operators/count/functions/Tuple1With1L.java | 2 +- .../count/functions/Tuple2FromTupleWithObjectAnd1L.java | 2 +- .../impl/operators/count/functions/Tuple2WithObjectAnd1L.java | 2 +- .../model/impl/operators/count/functions/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/count/package-info.java | 2 +- .../flink/model/impl/operators/difference/Difference.java | 2 +- .../model/impl/operators/difference/DifferenceBroadcast.java | 2 +- .../operators/difference/functions/CreateTuple2WithLong.java | 2 +- .../impl/operators/difference/functions/IdOf0InTuple2.java | 2 +- .../model/impl/operators/difference/functions/RemoveCut.java | 2 +- .../model/impl/operators/difference/functions/package-info.java | 2 +- .../flink/model/impl/operators/difference/package-info.java | 2 +- .../flink/model/impl/operators/distinction/DistinctById.java | 2 +- .../model/impl/operators/distinction/DistinctByIsomorphism.java | 2 +- .../model/impl/operators/distinction/GroupByIsomorphism.java | 2 +- .../impl/operators/distinction/functions/CountGraphHeads.java | 2 +- .../impl/operators/distinction/functions/FirstGraphHead.java | 2 +- .../impl/operators/distinction/functions/GraphHeadGroup.java | 2 +- .../operators/distinction/functions/IdFromGraphHeadString.java | 2 +- .../impl/operators/distinction/functions/package-info.java | 2 +- .../flink/model/impl/operators/distinction/package-info.java | 2 +- .../flink/model/impl/operators/equality/CollectionEquality.java | 2 +- .../impl/operators/equality/CollectionEqualityByGraphIds.java | 2 +- .../flink/model/impl/operators/equality/GraphEquality.java | 2 +- .../flink/model/impl/operators/equality/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/exclusion/Exclusion.java | 2 +- .../flink/model/impl/operators/exclusion/ReduceExclusion.java | 2 +- .../flink/model/impl/operators/exclusion/package-info.java | 2 +- .../model/impl/operators/fusion/AddNewIdToDuplicatedEdge.java | 2 +- .../gradoop/flink/model/impl/operators/fusion/VertexFusion.java | 2 +- .../fusion/functions/CoGroupAssociateOldVerticesWithNewIds.java | 2 +- .../operators/fusion/functions/CoGroupGraphHeadToVertex.java | 2 +- .../impl/operators/fusion/functions/CreateFusedVertex.java | 2 +- .../impl/operators/fusion/functions/FilterSubgraphEdges.java | 2 +- .../operators/fusion/functions/FlatJoinSourceEdgeReference.java | 2 +- .../model/impl/operators/fusion/functions/LeftElementId.java | 2 +- .../fusion/functions/MapFunctionAddGraphElementToGraph2.java | 2 +- .../operators/fusion/functions/MapGraphHeadForNewGraph.java | 2 +- .../operators/fusion/functions/MapVertexToPairWithGraphId.java | 2 +- .../fusion/functions/MapVerticesAsTuplesWithNullId.java | 2 +- .../fusion/functions/UpdateEdgesThoughToBeFusedVertices.java | 2 +- .../model/impl/operators/fusion/functions/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/fusion/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/grouping/Grouping.java | 2 +- .../model/impl/operators/grouping/GroupingGroupCombine.java | 2 +- .../model/impl/operators/grouping/GroupingGroupReduce.java | 2 +- .../flink/model/impl/operators/grouping/GroupingStrategy.java | 2 +- .../model/impl/operators/grouping/functions/BuildBase.java | 2 +- .../impl/operators/grouping/functions/BuildEdgeGroupItem.java | 2 +- .../impl/operators/grouping/functions/BuildGroupItemBase.java | 2 +- .../model/impl/operators/grouping/functions/BuildSuperEdge.java | 2 +- .../impl/operators/grouping/functions/BuildSuperVertex.java | 2 +- .../impl/operators/grouping/functions/BuildVertexGroupItem.java | 2 +- .../grouping/functions/BuildVertexWithSuperVertex.java | 2 +- .../grouping/functions/BuildVertexWithSuperVertexBC.java | 2 +- .../operators/grouping/functions/CombineEdgeGroupItems.java | 2 +- .../operators/grouping/functions/CombineVertexGroupItems.java | 2 +- .../operators/grouping/functions/FilterRegularVertices.java | 2 +- .../impl/operators/grouping/functions/FilterSuperVertices.java | 2 +- .../impl/operators/grouping/functions/LabelGroupFilter.java | 2 +- .../impl/operators/grouping/functions/ReduceEdgeGroupItems.java | 2 +- .../operators/grouping/functions/ReduceVertexGroupItemBase.java | 2 +- .../operators/grouping/functions/ReduceVertexGroupItems.java | 2 +- .../operators/grouping/functions/SetVertexAsSuperVertex.java | 2 +- .../operators/grouping/functions/TransposeVertexGroupItems.java | 2 +- .../impl/operators/grouping/functions/UpdateEdgeGroupItem.java | 2 +- .../model/impl/operators/grouping/functions/package-info.java | 2 +- .../flink/model/impl/operators/grouping/package-info.java | 2 +- .../model/impl/operators/grouping/tuples/EdgeGroupItem.java | 2 +- .../flink/model/impl/operators/grouping/tuples/GroupItem.java | 2 +- .../flink/model/impl/operators/grouping/tuples/LabelGroup.java | 2 +- .../model/impl/operators/grouping/tuples/VertexGroupItem.java | 2 +- .../impl/operators/grouping/tuples/VertexWithSuperVertex.java | 2 +- .../model/impl/operators/grouping/tuples/package-info.java | 2 +- .../flink/model/impl/operators/intersection/Intersection.java | 2 +- .../impl/operators/intersection/IntersectionBroadcast.java | 2 +- .../impl/operators/intersection/functions/GroupCountEquals.java | 2 +- .../impl/operators/intersection/functions/package-info.java | 2 +- .../flink/model/impl/operators/intersection/package-info.java | 2 +- .../flink/model/impl/operators/keyedgrouping/GroupingKeys.java | 2 +- .../flink/model/impl/operators/keyedgrouping/KeyedGrouping.java | 2 +- .../model/impl/operators/keyedgrouping/KeyedGroupingUtils.java | 2 +- .../keyedgrouping/functions/BuildSuperEdgeFromTuple.java | 2 +- .../keyedgrouping/functions/BuildSuperElementFromTuple.java | 2 +- .../keyedgrouping/functions/BuildSuperVertexFromTuple.java | 2 +- .../operators/keyedgrouping/functions/BuildTuplesFromEdges.java | 2 +- .../keyedgrouping/functions/BuildTuplesFromElements.java | 2 +- .../keyedgrouping/functions/BuildTuplesFromVertices.java | 2 +- .../operators/keyedgrouping/functions/FilterSuperVertices.java | 2 +- .../operators/keyedgrouping/functions/GroupingConstants.java | 2 +- .../operators/keyedgrouping/functions/ReduceEdgeTuples.java | 2 +- .../operators/keyedgrouping/functions/ReduceElementTuples.java | 2 +- .../operators/keyedgrouping/functions/ReduceVertexTuples.java | 2 +- .../impl/operators/keyedgrouping/functions/UpdateIdField.java | 2 +- .../impl/operators/keyedgrouping/functions/package-info.java | 2 +- .../impl/operators/keyedgrouping/keys/CompositeKeyFunction.java | 2 +- .../keys/CompositeKeyFunctionWithDefaultValues.java | 2 +- .../impl/operators/keyedgrouping/keys/ConstantKeyFunction.java | 2 +- .../impl/operators/keyedgrouping/keys/LabelKeyFunction.java | 2 +- .../impl/operators/keyedgrouping/keys/PropertyKeyFunction.java | 2 +- .../model/impl/operators/keyedgrouping/keys/package-info.java | 2 +- .../keyedgrouping/labelspecific/AggregatorWrapperWithValue.java | 2 +- .../labelspecific/LabelSpecificAggregatorWrapper.java | 2 +- .../keyedgrouping/labelspecific/LabelSpecificKeyFunction.java | 2 +- .../labelspecific/UnlabeledGroupAggregatorWrapper.java | 2 +- .../operators/keyedgrouping/labelspecific/package-info.java | 2 +- .../flink/model/impl/operators/keyedgrouping/package-info.java | 2 +- .../model/impl/operators/layouting/CentroidFRLayouter.java | 2 +- .../flink/model/impl/operators/layouting/CombiLayouter.java | 2 +- .../flink/model/impl/operators/layouting/FRLayouter.java | 2 +- .../flink/model/impl/operators/layouting/FusingFRLayouter.java | 2 +- .../model/impl/operators/layouting/LayoutingAlgorithm.java | 2 +- .../flink/model/impl/operators/layouting/RandomLayouter.java | 2 +- .../model/impl/operators/layouting/SamplingFRLayouter.java | 2 +- .../layouting/functions/AverageVertexPositionsFunction.java | 2 +- .../layouting/functions/CentroidRepulsionForceMapper.java | 2 +- .../impl/operators/layouting/functions/CentroidUpdater.java | 2 +- .../layouting/functions/DefaultVertexCompareFunction.java | 2 +- .../operators/layouting/functions/FRAttractionFunction.java | 2 +- .../impl/operators/layouting/functions/FRCellIdMapper.java | 2 +- .../impl/operators/layouting/functions/FRCellIdSelector.java | 2 +- .../impl/operators/layouting/functions/FRForceApplicator.java | 2 +- .../impl/operators/layouting/functions/FRRepulsionFunction.java | 2 +- .../impl/operators/layouting/functions/LGraphToEPGMMapper.java | 2 +- .../layouting/functions/LVertexEPGMVertexJoinFunction.java | 2 +- .../impl/operators/layouting/functions/LVertexFlattener.java | 2 +- .../operators/layouting/functions/VertexCompareFunction.java | 2 +- .../model/impl/operators/layouting/functions/VertexFusor.java | 2 +- .../model/impl/operators/layouting/functions/package-info.java | 2 +- .../flink/model/impl/operators/layouting/package-info.java | 2 +- .../flink/model/impl/operators/layouting/util/Centroid.java | 2 +- .../flink/model/impl/operators/layouting/util/Force.java | 2 +- .../flink/model/impl/operators/layouting/util/LEdge.java | 2 +- .../flink/model/impl/operators/layouting/util/LGraph.java | 2 +- .../flink/model/impl/operators/layouting/util/LVertex.java | 2 +- .../model/impl/operators/layouting/util/SimpleGraphElement.java | 2 +- .../flink/model/impl/operators/layouting/util/Vector.java | 2 +- .../flink/model/impl/operators/layouting/util/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/limit/Limit.java | 2 +- .../gradoop/flink/model/impl/operators/limit/package-info.java | 2 +- .../model/impl/operators/matching/common/MatchStrategy.java | 2 +- .../model/impl/operators/matching/common/PostProcessor.java | 2 +- .../model/impl/operators/matching/common/PreProcessor.java | 2 +- .../operators/matching/common/debug/PrintIdWithCandidates.java | 2 +- .../matching/common/debug/PrintTripleWithCandidates.java | 2 +- .../model/impl/operators/matching/common/debug/Printer.java | 2 +- .../impl/operators/matching/common/debug/package-info.java | 2 +- .../operators/matching/common/functions/AbstractBuilder.java | 2 +- .../operators/matching/common/functions/AbstractFilter.java | 2 +- .../matching/common/functions/AddGraphElementToNewGraph.java | 2 +- .../matching/common/functions/BuildIdWithCandidates.java | 2 +- .../matching/common/functions/BuildTripleWithCandidates.java | 2 +- .../matching/common/functions/ElementHasCandidate.java | 2 +- .../matching/common/functions/ElementsFromEmbedding.java | 2 +- .../impl/operators/matching/common/functions/MatchingEdges.java | 2 +- .../impl/operators/matching/common/functions/MatchingPairs.java | 2 +- .../operators/matching/common/functions/MatchingTriples.java | 2 +- .../operators/matching/common/functions/MatchingVertices.java | 2 +- .../operators/matching/common/functions/TripleHasCandidate.java | 2 +- .../impl/operators/matching/common/functions/package-info.java | 2 +- .../impl/operators/matching/common/matching/ElementMatcher.java | 2 +- .../impl/operators/matching/common/matching/package-info.java | 2 +- .../model/impl/operators/matching/common/package-info.java | 2 +- .../impl/operators/matching/common/query/DFSTraverser.java | 2 +- .../impl/operators/matching/common/query/GraphMetrics.java | 2 +- .../impl/operators/matching/common/query/QueryHandler.java | 2 +- .../impl/operators/matching/common/query/RootedTraverser.java | 2 +- .../flink/model/impl/operators/matching/common/query/Step.java | 2 +- .../impl/operators/matching/common/query/TraversalCode.java | 2 +- .../model/impl/operators/matching/common/query/Traverser.java | 2 +- .../model/impl/operators/matching/common/query/Triple.java | 2 +- .../impl/operators/matching/common/query/package-info.java | 2 +- .../impl/operators/matching/common/query/predicates/CNF.java | 2 +- .../operators/matching/common/query/predicates/CNFElement.java | 2 +- .../matching/common/query/predicates/PredicateCollection.java | 2 +- .../matching/common/query/predicates/QueryComparable.java | 2 +- .../matching/common/query/predicates/QueryPredicate.java | 2 +- .../matching/common/query/predicates/booleans/AndPredicate.java | 2 +- .../matching/common/query/predicates/booleans/NotPredicate.java | 2 +- .../matching/common/query/predicates/booleans/OrPredicate.java | 2 +- .../matching/common/query/predicates/booleans/XorPredicate.java | 2 +- .../matching/common/query/predicates/booleans/package-info.java | 2 +- .../query/predicates/comparables/ElementSelectorComparable.java | 2 +- .../common/query/predicates/comparables/LiteralComparable.java | 2 +- .../predicates/comparables/PropertySelectorComparable.java | 2 +- .../common/query/predicates/comparables/package-info.java | 2 +- .../query/predicates/expressions/ComparisonExpression.java | 2 +- .../common/query/predicates/expressions/package-info.java | 2 +- .../matching/common/query/predicates/package-info.java | 2 +- .../operators/matching/common/statistics/GraphStatistics.java | 2 +- .../matching/common/statistics/GraphStatisticsHDFSReader.java | 2 +- .../common/statistics/GraphStatisticsLocalFSReader.java | 2 +- .../matching/common/statistics/GraphStatisticsReader.java | 2 +- .../impl/operators/matching/common/statistics/package-info.java | 2 +- .../model/impl/operators/matching/common/tuples/Embedding.java | 2 +- .../impl/operators/matching/common/tuples/IdWithCandidates.java | 2 +- .../operators/matching/common/tuples/TripleWithCandidates.java | 2 +- .../matching/common/tuples/TripleWithSourceEdgeCandidates.java | 2 +- .../impl/operators/matching/common/tuples/package-info.java | 2 +- .../flink/model/impl/operators/matching/package-info.java | 2 +- .../model/impl/operators/matching/single/PatternMatching.java | 2 +- .../operators/matching/single/cypher/CypherPatternMatching.java | 2 +- .../operators/matching/single/cypher/debug/PrintEmbedding.java | 2 +- .../operators/matching/single/cypher/debug/package-info.java | 2 +- .../matching/single/cypher/functions/ElementsFromEmbedding.java | 2 +- .../matching/single/cypher/functions/ReverseEdgeEmbedding.java | 2 +- .../matching/single/cypher/functions/package-info.java | 2 +- .../matching/single/cypher/operators/PhysicalOperator.java | 2 +- .../single/cypher/operators/add/AddEmbeddingsElements.java | 2 +- .../cypher/operators/add/functions/AddEmbeddingElements.java | 2 +- .../single/cypher/operators/add/functions/package-info.java | 2 +- .../matching/single/cypher/operators/add/package-info.java | 2 +- .../single/cypher/operators/expand/ExpandEmbeddings.java | 2 +- .../single/cypher/operators/expand/ExpandEmbeddingsBulk.java | 2 +- .../single/cypher/operators/expand/ExpandEmbeddingsForLoop.java | 2 +- .../cypher/operators/expand/functions/AdoptEmptyPaths.java | 2 +- .../operators/expand/functions/CreateExpandEmbedding.java | 2 +- .../cypher/operators/expand/functions/ExtractExpandColumn.java | 2 +- .../operators/expand/functions/ExtractKeyedCandidateEdges.java | 2 +- .../expand/functions/FilterPreviousExpandEmbedding.java | 2 +- .../operators/expand/functions/MergeExpandEmbeddings.java | 2 +- .../operators/expand/functions/PostProcessExpandEmbedding.java | 2 +- .../single/cypher/operators/expand/functions/package-info.java | 2 +- .../matching/single/cypher/operators/expand/package-info.java | 2 +- .../single/cypher/operators/expand/tuples/EdgeWithTiePoint.java | 2 +- .../single/cypher/operators/expand/tuples/ExpandEmbedding.java | 2 +- .../single/cypher/operators/expand/tuples/package-info.java | 2 +- .../single/cypher/operators/filter/FilterAndProjectEdges.java | 2 +- .../single/cypher/operators/filter/FilterAndProjectTriples.java | 2 +- .../cypher/operators/filter/FilterAndProjectVertices.java | 2 +- .../cypher/operators/filter/FilterAndProjectVerticesAlt.java | 2 +- .../single/cypher/operators/filter/FilterEmbeddings.java | 2 +- .../cypher/operators/filter/functions/FilterAndProjectEdge.java | 2 +- .../operators/filter/functions/FilterAndProjectTriple.java | 2 +- .../operators/filter/functions/FilterAndProjectVertex.java | 2 +- .../single/cypher/operators/filter/functions/FilterEdge.java | 2 +- .../cypher/operators/filter/functions/FilterEmbedding.java | 2 +- .../single/cypher/operators/filter/functions/FilterVertex.java | 2 +- .../single/cypher/operators/filter/functions/package-info.java | 2 +- .../matching/single/cypher/operators/filter/package-info.java | 2 +- .../matching/single/cypher/operators/join/CartesianProduct.java | 2 +- .../matching/single/cypher/operators/join/JoinEmbeddings.java | 2 +- .../matching/single/cypher/operators/join/ValueJoin.java | 2 +- .../cypher/operators/join/functions/ExtractJoinColumns.java | 2 +- .../operators/join/functions/ExtractPropertyJoinColumns.java | 2 +- .../single/cypher/operators/join/functions/MergeEmbeddings.java | 2 +- .../single/cypher/operators/join/functions/package-info.java | 2 +- .../matching/single/cypher/operators/join/package-info.java | 2 +- .../matching/single/cypher/operators/package-info.java | 2 +- .../matching/single/cypher/operators/project/ProjectEdges.java | 2 +- .../single/cypher/operators/project/ProjectEmbeddings.java | 2 +- .../cypher/operators/project/ProjectEmbeddingsElements.java | 2 +- .../single/cypher/operators/project/ProjectVertices.java | 2 +- .../single/cypher/operators/project/functions/ProjectEdge.java | 2 +- .../cypher/operators/project/functions/ProjectEmbedding.java | 2 +- .../operators/project/functions/ProjectEmbeddingElements.java | 2 +- .../cypher/operators/project/functions/ProjectVertex.java | 2 +- .../single/cypher/operators/project/functions/package-info.java | 2 +- .../matching/single/cypher/operators/project/package-info.java | 2 +- .../impl/operators/matching/single/cypher/package-info.java | 2 +- .../matching/single/cypher/planning/estimation/Estimator.java | 2 +- .../single/cypher/planning/estimation/FilterEstimator.java | 2 +- .../single/cypher/planning/estimation/JoinEstimator.java | 2 +- .../single/cypher/planning/estimation/QueryPlanEstimator.java | 2 +- .../single/cypher/planning/estimation/package-info.java | 2 +- .../single/cypher/planning/planner/greedy/GreedyPlanner.java | 2 +- .../single/cypher/planning/planner/greedy/package-info.java | 2 +- .../matching/single/cypher/planning/planner/package-info.java | 2 +- .../matching/single/cypher/planning/plantable/PlanTable.java | 2 +- .../single/cypher/planning/plantable/PlanTableEntry.java | 2 +- .../matching/single/cypher/planning/plantable/package-info.java | 2 +- .../matching/single/cypher/planning/queryplan/BinaryNode.java | 2 +- .../matching/single/cypher/planning/queryplan/FilterNode.java | 2 +- .../matching/single/cypher/planning/queryplan/JoinNode.java | 2 +- .../matching/single/cypher/planning/queryplan/LeafNode.java | 2 +- .../matching/single/cypher/planning/queryplan/PlanNode.java | 2 +- .../single/cypher/planning/queryplan/ProjectionNode.java | 2 +- .../matching/single/cypher/planning/queryplan/QueryPlan.java | 2 +- .../matching/single/cypher/planning/queryplan/UnaryNode.java | 2 +- .../cypher/planning/queryplan/binary/CartesianProductNode.java | 2 +- .../cypher/planning/queryplan/binary/ExpandEmbeddingsNode.java | 2 +- .../cypher/planning/queryplan/binary/JoinEmbeddingsNode.java | 2 +- .../single/cypher/planning/queryplan/binary/ValueJoinNode.java | 2 +- .../single/cypher/planning/queryplan/binary/package-info.java | 2 +- .../planning/queryplan/leaf/FilterAndProjectEdgesNode.java | 2 +- .../planning/queryplan/leaf/FilterAndProjectVerticesNode.java | 2 +- .../single/cypher/planning/queryplan/leaf/package-info.java | 2 +- .../matching/single/cypher/planning/queryplan/package-info.java | 2 +- .../cypher/planning/queryplan/unary/FilterEmbeddingsNode.java | 2 +- .../cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java | 2 +- .../single/cypher/planning/queryplan/unary/package-info.java | 2 +- .../impl/operators/matching/single/cypher/pojos/Embedding.java | 2 +- .../matching/single/cypher/pojos/EmbeddingFactory.java | 2 +- .../matching/single/cypher/pojos/EmbeddingMetaData.java | 2 +- .../impl/operators/matching/single/cypher/pojos/Triple.java | 2 +- .../operators/matching/single/cypher/pojos/package-info.java | 2 +- .../operators/matching/single/cypher/utils/ExpandDirection.java | 2 +- .../operators/matching/single/cypher/utils/package-info.java | 2 +- .../model/impl/operators/matching/single/package-info.java | 2 +- .../preserving/explorative/ExplorativePatternMatching.java | 2 +- .../single/preserving/explorative/debug/PrintEdgeStep.java | 2 +- .../explorative/debug/PrintEmbeddingWithTiePoint.java | 2 +- .../single/preserving/explorative/debug/PrintVertexStep.java | 2 +- .../single/preserving/explorative/debug/package-info.java | 2 +- .../single/preserving/explorative/functions/BuildEdgeStep.java | 2 +- .../single/preserving/explorative/functions/BuildEmbedding.java | 2 +- .../explorative/functions/BuildEmbeddingFromTriple.java | 2 +- .../explorative/functions/BuildEmbeddingFromVertex.java | 2 +- .../preserving/explorative/functions/BuildVertexStep.java | 2 +- .../preserving/explorative/functions/EdgeHasCandidate.java | 2 +- .../preserving/explorative/functions/UpdateEdgeMapping.java | 2 +- .../single/preserving/explorative/functions/UpdateMapping.java | 2 +- .../explorative/functions/UpdateVertexEdgeMapping.java | 2 +- .../preserving/explorative/functions/UpdateVertexMapping.java | 2 +- .../preserving/explorative/functions/VertexHasCandidate.java | 2 +- .../single/preserving/explorative/functions/package-info.java | 2 +- .../matching/single/preserving/explorative/package-info.java | 2 +- .../preserving/explorative/traverser/DistributedTraverser.java | 2 +- .../preserving/explorative/traverser/SetPairBulkTraverser.java | 2 +- .../explorative/traverser/SetPairForLoopTraverser.java | 2 +- .../preserving/explorative/traverser/SetPairTraverser.java | 2 +- .../preserving/explorative/traverser/TraverserStrategy.java | 2 +- .../explorative/traverser/TripleForLoopTraverser.java | 2 +- .../preserving/explorative/traverser/TripleTraverser.java | 2 +- .../single/preserving/explorative/traverser/package-info.java | 2 +- .../matching/single/preserving/explorative/tuples/EdgeStep.java | 2 +- .../preserving/explorative/tuples/EmbeddingWithTiePoint.java | 2 +- .../single/preserving/explorative/tuples/VertexStep.java | 2 +- .../single/preserving/explorative/tuples/package-info.java | 2 +- .../impl/operators/matching/single/preserving/package-info.java | 2 +- .../matching/single/simulation/dual/DualSimulation.java | 2 +- .../matching/single/simulation/dual/debug/PrintDeletion.java | 2 +- .../matching/single/simulation/dual/debug/PrintFatVertex.java | 2 +- .../matching/single/simulation/dual/debug/PrintMessage.java | 2 +- .../single/simulation/dual/debug/PrintTripleWithDirection.java | 2 +- .../matching/single/simulation/dual/debug/package-info.java | 2 +- .../single/simulation/dual/functions/BuildFatVertex.java | 2 +- .../single/simulation/dual/functions/CloneAndReverse.java | 2 +- .../single/simulation/dual/functions/CombinedMessages.java | 2 +- .../matching/single/simulation/dual/functions/EdgeTriple.java | 2 +- .../single/simulation/dual/functions/GroupedFatVertices.java | 2 +- .../single/simulation/dual/functions/GroupedMessages.java | 2 +- .../single/simulation/dual/functions/UpdateVertexState.java | 2 +- .../single/simulation/dual/functions/UpdatedFatVertices.java | 2 +- .../single/simulation/dual/functions/ValidFatVertices.java | 2 +- .../single/simulation/dual/functions/ValidateNeighborhood.java | 2 +- .../matching/single/simulation/dual/functions/package-info.java | 2 +- .../operators/matching/single/simulation/dual/package-info.java | 2 +- .../matching/single/simulation/dual/tuples/Deletion.java | 2 +- .../matching/single/simulation/dual/tuples/FatVertex.java | 2 +- .../matching/single/simulation/dual/tuples/IdPair.java | 2 +- .../matching/single/simulation/dual/tuples/Message.java | 2 +- .../single/simulation/dual/tuples/TripleWithDirection.java | 2 +- .../matching/single/simulation/dual/tuples/package-info.java | 2 +- .../matching/single/simulation/dual/util/MessageType.java | 2 +- .../matching/single/simulation/dual/util/package-info.java | 2 +- .../impl/operators/matching/single/simulation/package-info.java | 2 +- .../matching/transactional/TransactionalPatternMatching.java | 2 +- .../matching/transactional/algorithm/DepthSearchMatching.java | 2 +- .../transactional/algorithm/PatternMatchingAlgorithm.java | 2 +- .../matching/transactional/algorithm/package-info.java | 2 +- .../matching/transactional/function/AddGraphsToElements.java | 2 +- .../matching/transactional/function/AddMatchesToProperties.java | 2 +- .../transactional/function/BuildGraphWithCandidates.java | 2 +- .../transactional/function/BuildIdWithCandidatesAndGraphs.java | 2 +- .../function/BuildTripleWithCandidatesAndGraphs.java | 2 +- .../matching/transactional/function/ExpandFirstField.java | 2 +- .../matching/transactional/function/FindEmbeddings.java | 2 +- .../matching/transactional/function/GraphIdFilter.java | 2 +- .../transactional/function/GraphTransactionMatcher.java | 2 +- .../matching/transactional/function/HasEmbeddings.java | 2 +- .../transactional/function/InitGraphHeadWithLineage.java | 2 +- .../matching/transactional/function/MergeSecondField.java | 2 +- .../transactional/function/Project4To0And2AndSwitch.java | 2 +- .../transactional/function/Project4To0And3AndSwitch.java | 2 +- .../operators/matching/transactional/function/package-info.java | 2 +- .../impl/operators/matching/transactional/package-info.java | 2 +- .../matching/transactional/tuples/GraphWithCandidates.java | 2 +- .../operators/matching/transactional/tuples/package-info.java | 2 +- .../model/impl/operators/neighborhood/EdgeNeighborhood.java | 2 +- .../flink/model/impl/operators/neighborhood/Neighborhood.java | 2 +- .../impl/operators/neighborhood/ReduceEdgeNeighborhood.java | 2 +- .../impl/operators/neighborhood/ReduceVertexNeighborhood.java | 2 +- .../model/impl/operators/neighborhood/VertexNeighborhood.java | 2 +- .../operators/neighborhood/functions/NeighborEdgeFunction.java | 2 +- .../neighborhood/functions/NeighborEdgeReduceFunction.java | 2 +- .../impl/operators/neighborhood/functions/NeighborFunction.java | 2 +- .../neighborhood/functions/NeighborVertexFunction.java | 2 +- .../neighborhood/functions/NeighborVertexReduceFunction.java | 2 +- .../neighborhood/functions/ShuffledVertexIdsFromEdge.java | 2 +- .../operators/neighborhood/functions/VertexIdsFromEdge.java | 2 +- .../operators/neighborhood/functions/VertexIdsWithEdge.java | 2 +- .../impl/operators/neighborhood/functions/VertexToFieldOne.java | 2 +- .../operators/neighborhood/functions/VertexToFieldZero.java | 2 +- .../impl/operators/neighborhood/functions/package-info.java | 2 +- .../impl/operators/neighborhood/keyselector/IdInTuple.java | 2 +- .../impl/operators/neighborhood/keyselector/package-info.java | 2 +- .../flink/model/impl/operators/neighborhood/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/overlap/Overlap.java | 2 +- .../gradoop/flink/model/impl/operators/overlap/OverlapBase.java | 2 +- .../flink/model/impl/operators/overlap/ReduceOverlap.java | 2 +- .../flink/model/impl/operators/overlap/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/rollup/EdgeRollUp.java | 2 +- .../org/gradoop/flink/model/impl/operators/rollup/RollUp.java | 2 +- .../gradoop/flink/model/impl/operators/rollup/VertexRollUp.java | 2 +- .../gradoop/flink/model/impl/operators/rollup/package-info.java | 2 +- .../flink/model/impl/operators/sampling/PageRankSampling.java | 2 +- .../flink/model/impl/operators/sampling/RandomEdgeSampling.java | 2 +- .../operators/sampling/RandomLimitedDegreeVertexSampling.java | 2 +- .../impl/operators/sampling/RandomNonUniformVertexSampling.java | 2 +- .../model/impl/operators/sampling/RandomVertexEdgeSampling.java | 2 +- .../operators/sampling/RandomVertexNeighborhoodSampling.java | 2 +- .../model/impl/operators/sampling/RandomVertexSampling.java | 2 +- .../flink/model/impl/operators/sampling/RandomWalkSampling.java | 2 +- .../flink/model/impl/operators/sampling/SamplingAlgorithm.java | 2 +- .../model/impl/operators/sampling/common/SamplingConstants.java | 2 +- .../operators/sampling/common/SamplingEvaluationConstants.java | 2 +- .../model/impl/operators/sampling/common/package-info.java | 2 +- .../operators/sampling/functions/AddMaxDegreeCrossFunction.java | 2 +- .../functions/AddPageRankScoresToVertexCrossFunction.java | 2 +- .../impl/operators/sampling/functions/EdgeSourceVertexJoin.java | 2 +- .../impl/operators/sampling/functions/EdgeTargetVertexJoin.java | 2 +- .../impl/operators/sampling/functions/EdgeWithSourceTarget.java | 2 +- .../sampling/functions/EdgesWithSampledVerticesFilter.java | 2 +- .../functions/FilterVerticesWithDegreeOtherThanGiven.java | 2 +- .../sampling/functions/LimitedDegreeVertexRandomFilter.java | 2 +- .../model/impl/operators/sampling/functions/Neighborhood.java | 2 +- .../sampling/functions/NonUniformVertexRandomFilter.java | 2 +- .../sampling/functions/PageRankResultVertexFilter.java | 2 +- .../model/impl/operators/sampling/functions/RandomFilter.java | 2 +- .../model/impl/operators/sampling/functions/RandomVertex.java | 2 +- .../model/impl/operators/sampling/functions/VertexDegree.java | 2 +- .../impl/operators/sampling/functions/VertexToDegreeMap.java | 2 +- .../operators/sampling/functions/VertexWithDegreeFilter.java | 2 +- .../model/impl/operators/sampling/functions/package-info.java | 2 +- .../flink/model/impl/operators/sampling/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/selection/Selection.java | 2 +- .../flink/model/impl/operators/selection/SelectionBase.java | 2 +- .../impl/operators/selection/functions/FilterTransactions.java | 2 +- .../model/impl/operators/selection/functions/package-info.java | 2 +- .../flink/model/impl/operators/selection/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/split/Split.java | 2 +- .../impl/operators/split/functions/AddNewGraphsToEdge.java | 2 +- .../impl/operators/split/functions/AddNewGraphsToVertex.java | 2 +- .../model/impl/operators/split/functions/EdgeToTriple.java | 2 +- .../split/functions/JoinEdgeTupleWithSourceGraphs.java | 2 +- .../split/functions/JoinEdgeTupleWithTargetGraphs.java | 2 +- .../operators/split/functions/JoinVertexIdWithGraphIds.java | 2 +- .../operators/split/functions/MultipleGraphIdsGroupReducer.java | 2 +- .../flink/model/impl/operators/split/functions/SplitValues.java | 2 +- .../model/impl/operators/split/functions/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/split/package-info.java | 2 +- .../impl/operators/statistics/AverageClusteringCoefficient.java | 2 +- .../flink/model/impl/operators/statistics/AverageDegree.java | 2 +- .../model/impl/operators/statistics/AverageIncomingDegree.java | 2 +- .../model/impl/operators/statistics/AverageOutgoingDegree.java | 2 +- .../operators/statistics/ConnectedComponentsDistribution.java | 2 +- .../statistics/ConnectedComponentsDistributionAsValues.java | 2 +- .../flink/model/impl/operators/statistics/DegreeCentrality.java | 2 +- .../model/impl/operators/statistics/DegreeCentralityBase.java | 2 +- .../model/impl/operators/statistics/DistinctEdgeProperties.java | 2 +- .../operators/statistics/DistinctEdgePropertiesByLabel.java | 2 +- .../model/impl/operators/statistics/DistinctProperties.java | 2 +- .../model/impl/operators/statistics/DistinctSourceIds.java | 2 +- .../impl/operators/statistics/DistinctSourceIdsByEdgeLabel.java | 2 +- .../model/impl/operators/statistics/DistinctTargetIds.java | 2 +- .../impl/operators/statistics/DistinctTargetIdsByEdgeLabel.java | 2 +- .../impl/operators/statistics/DistinctVertexProperties.java | 2 +- .../operators/statistics/DistinctVertexPropertiesByLabel.java | 2 +- .../flink/model/impl/operators/statistics/EdgeCount.java | 2 +- .../model/impl/operators/statistics/EdgeLabelDistribution.java | 2 +- .../model/impl/operators/statistics/EdgeValueDistribution.java | 2 +- .../flink/model/impl/operators/statistics/GraphDensity.java | 2 +- .../operators/statistics/IncomingVertexDegreeDistribution.java | 2 +- .../model/impl/operators/statistics/IncomingVertexDegrees.java | 2 +- .../operators/statistics/OutgoingVertexDegreeDistribution.java | 2 +- .../model/impl/operators/statistics/OutgoingVertexDegrees.java | 2 +- .../statistics/SourceLabelAndEdgeLabelDistribution.java | 2 +- .../statistics/TargetLabelAndEdgeLabelDistribution.java | 2 +- .../model/impl/operators/statistics/ValueDistribution.java | 2 +- .../flink/model/impl/operators/statistics/VertexCount.java | 2 +- .../impl/operators/statistics/VertexDegreeDistribution.java | 2 +- .../flink/model/impl/operators/statistics/VertexDegrees.java | 2 +- .../impl/operators/statistics/VertexLabelDistribution.java | 2 +- .../impl/operators/statistics/VertexValueDistribution.java | 2 +- .../functions/AddSumDegreesToGraphHeadCrossFunction.java | 2 +- .../operators/statistics/functions/AggregateListOfWccEdges.java | 2 +- .../statistics/functions/AggregateListOfWccVertices.java | 2 +- .../model/impl/operators/statistics/functions/BothLabels.java | 2 +- .../operators/statistics/functions/CalculateAverageDegree.java | 2 +- .../statistics/functions/CalculateDegreeCentrality.java | 2 +- .../impl/operators/statistics/functions/CalculateDensity.java | 2 +- .../statistics/functions/CombinePropertyValueDistribution.java | 2 +- .../operators/statistics/functions/DegreeDistanceFunction.java | 2 +- .../operators/statistics/functions/ExtractPropertyValues.java | 2 +- .../statistics/functions/ExtractPropertyValuesByLabel.java | 2 +- .../functions/GetConnectedComponentDistributionFlatMap.java | 2 +- .../operators/statistics/functions/SetOrCreateWithCount.java | 2 +- .../model/impl/operators/statistics/functions/SumCounts.java | 2 +- .../operators/statistics/functions/ToSourceIdWithLabel.java | 2 +- .../operators/statistics/functions/ToTargetIdWithLabel.java | 2 +- .../model/impl/operators/statistics/functions/package-info.java | 2 +- .../flink/model/impl/operators/statistics/package-info.java | 2 +- .../writer/DistinctEdgePropertiesByLabelPreparer.java | 2 +- .../statistics/writer/DistinctSourceVertexCountPreparer.java | 2 +- .../statistics/writer/DistinctTargetVertexCountPreparer.java | 2 +- .../writer/DistinctVertexPropertiesByLabelPreparer.java | 2 +- .../impl/operators/statistics/writer/EdgeCountPreparer.java | 2 +- .../writer/SourceAndEdgeLabelDistributionPreparer.java | 2 +- .../model/impl/operators/statistics/writer/StatisticWriter.java | 2 +- .../writer/TargetAndEdgeLabelDistributionPreparer.java | 2 +- .../impl/operators/statistics/writer/VertexCountPreparer.java | 2 +- .../model/impl/operators/statistics/writer/package-info.java | 2 +- .../flink/model/impl/operators/subgraph/ApplySubgraph.java | 2 +- .../gradoop/flink/model/impl/operators/subgraph/Subgraph.java | 2 +- .../operators/subgraph/functions/EdgeToSourceAndTargetId.java | 2 +- .../subgraph/functions/EdgeToSourceAndTargetIdWithGraphIds.java | 2 +- .../subgraph/functions/RightSideWithLeftGraphs2To1.java | 2 +- .../model/impl/operators/subgraph/functions/package-info.java | 2 +- .../flink/model/impl/operators/subgraph/package-info.java | 2 +- .../operators/tostring/CanonicalAdjacencyMatrixBuilder.java | 2 +- .../flink/model/impl/operators/tostring/api/EdgeToString.java | 2 +- .../model/impl/operators/tostring/api/GraphHeadToString.java | 2 +- .../flink/model/impl/operators/tostring/api/VertexToString.java | 2 +- .../flink/model/impl/operators/tostring/api/package-info.java | 2 +- .../impl/operators/tostring/functions/AdjacencyMatrix.java | 2 +- .../operators/tostring/functions/ConcatGraphHeadStrings.java | 2 +- .../impl/operators/tostring/functions/EdgeToDataString.java | 2 +- .../model/impl/operators/tostring/functions/EdgeToIdString.java | 2 +- .../impl/operators/tostring/functions/ElementToDataString.java | 2 +- .../operators/tostring/functions/GraphHeadToDataString.java | 2 +- .../operators/tostring/functions/GraphHeadToEmptyString.java | 2 +- .../impl/operators/tostring/functions/GraphHeadToIdString.java | 2 +- .../operators/tostring/functions/IncomingAdjacencyList.java | 2 +- .../operators/tostring/functions/MultiEdgeStringCombiner.java | 2 +- .../operators/tostring/functions/OutgoingAdjacencyList.java | 2 +- .../impl/operators/tostring/functions/SourceStringUpdater.java | 2 +- .../operators/tostring/functions/SwitchSourceTargetIds.java | 2 +- .../impl/operators/tostring/functions/TargetStringUpdater.java | 2 +- .../operators/tostring/functions/UndirectedAdjacencyList.java | 2 +- .../impl/operators/tostring/functions/VertexToDataString.java | 2 +- .../impl/operators/tostring/functions/VertexToIdString.java | 2 +- .../model/impl/operators/tostring/functions/package-info.java | 2 +- .../flink/model/impl/operators/tostring/package-info.java | 2 +- .../flink/model/impl/operators/tostring/tuples/EdgeString.java | 2 +- .../model/impl/operators/tostring/tuples/GraphHeadString.java | 2 +- .../model/impl/operators/tostring/tuples/VertexString.java | 2 +- .../model/impl/operators/tostring/tuples/package-info.java | 2 +- .../impl/operators/transformation/ApplyTransformation.java | 2 +- .../model/impl/operators/transformation/Transformation.java | 2 +- .../impl/operators/transformation/functions/TransformBase.java | 2 +- .../impl/operators/transformation/functions/TransformEdge.java | 2 +- .../operators/transformation/functions/TransformGraphHead.java | 2 +- .../transformation/functions/TransformGraphTransaction.java | 2 +- .../operators/transformation/functions/TransformVertex.java | 2 +- .../impl/operators/transformation/functions/package-info.java | 2 +- .../flink/model/impl/operators/transformation/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/union/Union.java | 2 +- .../gradoop/flink/model/impl/operators/union/package-info.java | 2 +- .../org/gradoop/flink/model/impl/operators/verify/Verify.java | 2 +- .../flink/model/impl/operators/verify/VerifyCollection.java | 2 +- .../model/impl/operators/verify/VerifyGraphContainment.java | 2 +- .../model/impl/operators/verify/VerifyGraphsContainment.java | 2 +- .../impl/operators/verify/functions/RemoveDanglingGraphIds.java | 2 +- .../model/impl/operators/verify/functions/package-info.java | 2 +- .../gradoop/flink/model/impl/operators/verify/package-info.java | 2 +- .../main/java/org/gradoop/flink/model/impl/package-info.java | 2 +- .../java/org/gradoop/flink/model/impl/tuples/IdWithIdSet.java | 2 +- .../java/org/gradoop/flink/model/impl/tuples/IdWithLabel.java | 2 +- .../java/org/gradoop/flink/model/impl/tuples/WithCount.java | 2 +- .../java/org/gradoop/flink/model/impl/tuples/package-info.java | 2 +- .../representation/common/adjacencylist/AdjacencyListCell.java | 2 +- .../common/adjacencylist/AdjacencyListCellComparator.java | 2 +- .../representation/common/adjacencylist/AdjacencyListRow.java | 2 +- .../flink/representation/common/adjacencylist/package-info.java | 2 +- .../java/org/gradoop/flink/representation/package-info.java | 2 +- .../flink/representation/transactional/AdjacencyList.java | 2 +- .../representation/transactional/RepresentationConverters.java | 2 +- .../flink/representation/transactional/package-info.java | 2 +- .../representation/transactional/traversalcode/Traversal.java | 2 +- .../transactional/traversalcode/TraversalCode.java | 2 +- .../transactional/traversalcode/TraversalEmbedding.java | 2 +- .../transactional/traversalcode/package-info.java | 2 +- .../main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java | 2 +- .../main/java/org/gradoop/flink/util/GradoopFlinkConfig.java | 2 +- .../src/main/java/org/gradoop/flink/util/package-info.java | 2 +- .../flink/algorithms/btgs/BusinessTransactionGraphsTest.java | 2 +- .../fsm/transactional/basic/BasicPatternsDIMSpanTest.java | 2 +- .../algorithms/fsm/transactional/basic/BasicPatternsData.java | 2 +- .../basic/BasicPatternsThinkLikeAnEmbeddingTest.java | 2 +- .../basic/BasicPatternsTransactionalFSMTestBase.java | 2 +- .../GellyClusteringCoefficientTestBase.java | 2 +- .../GellyGlobalClusteringCoefficientDirectedTest.java | 2 +- .../GellyGlobalClusteringCoefficientUndirectedTest.java | 2 +- .../GellyLocalClusteringCoefficientDirectedTest.java | 2 +- .../GellyLocalClusteringCoefficientUndirectedTest.java | 2 +- .../WeaklyConnectedComponentsAsCollectionTest.java | 2 +- .../java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java | 2 +- .../gelly/labelpropagation/GradoopLabelPropagationTest.java | 2 +- .../gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java | 2 +- .../algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java | 2 +- .../gelly/shortestpaths/SingleSourceShortestPathsTest.java | 2 +- .../gelly/trianglecounting/GellyTriangleCountingTest.java | 2 +- .../gelly/vertexdegrees/DistinctVertexDegreesTest.java | 2 +- .../java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java | 2 +- .../java/org/gradoop/flink/io/impl/csv/CSVDataSourceTest.java | 2 +- .../test/java/org/gradoop/flink/io/impl/csv/CSVTestBase.java | 2 +- .../flink/io/impl/csv/functions/CSVLineToElementTest.java | 2 +- .../gradoop/flink/io/impl/csv/functions/StringEscaperTest.java | 2 +- .../flink/io/impl/csv/indexed/IndexedCSVDataSinkTest.java | 2 +- .../flink/io/impl/csv/indexed/IndexedCSVDataSourceTest.java | 2 +- .../java/org/gradoop/flink/io/impl/dot/DOTDataSinkTest.java | 2 +- .../flink/io/impl/dot/functions/DotFileFormatSimpleTest.java | 2 +- .../gradoop/flink/io/impl/edgelist/EdgeListDataSourceTest.java | 2 +- .../io/impl/edgelist/VertexLabeledEdgeListDataSourceTest.java | 2 +- .../java/org/gradoop/flink/io/impl/gdl/GDLDataSinkTest.java | 2 +- .../org/gradoop/flink/io/impl/graph/GraphDataSourceTest.java | 2 +- .../java/org/gradoop/flink/io/impl/image/ImageDataSinkTest.java | 2 +- .../java/org/gradoop/flink/io/impl/mtx/MtxDataSourceTest.java | 2 +- .../flink/io/impl/statistics/GraphStatisticsDataSinkTest.java | 2 +- .../java/org/gradoop/flink/io/impl/tlf/TLFDataSinkTest.java | 2 +- .../java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java | 2 +- .../test/java/org/gradoop/flink/model/GradoopFlinkTestBase.java | 2 +- .../org/gradoop/flink/model/impl/GradoopFlinkTestUtils.java | 2 +- .../java/org/gradoop/flink/model/impl/GraphTransactionTest.java | 2 +- .../java/org/gradoop/flink/model/impl/LogicalGraphTest.java | 2 +- .../flink/model/impl/epgm/GraphCollectionFactoryTest.java | 2 +- .../gradoop/flink/model/impl/functions/epgm/LabelIsInTest.java | 2 +- .../flink/model/impl/functions/epgm/RemovePropertiesTest.java | 2 +- .../flink/model/impl/functions/epgm/RenameLabelTest.java | 2 +- .../flink/model/impl/functions/epgm/RenamePropertyKeysTest.java | 2 +- .../model/impl/functions/epgm/UpdateEdgeSourceTargetTest.java | 2 +- .../filters/AbstractRichCombinedFilterFunctionTest.java | 2 +- .../model/impl/functions/filters/CombinableFilterTest.java | 2 +- .../org/gradoop/flink/model/impl/id/FlinkGradoopIdSetTest.java | 2 +- .../gradoop/flink/model/impl/id/GradoopIdSerializationTest.java | 2 +- .../model/impl/layouts/GraphCollectionLayoutFactoryTest.java | 2 +- .../flink/model/impl/layouts/LogicalGraphLayoutFactoryTest.java | 2 +- .../model/impl/layouts/gve/GVECollectionLayoutFactoryTest.java | 2 +- .../flink/model/impl/layouts/gve/GVEGraphLayoutFactoryTest.java | 2 +- .../org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java | 2 +- .../gve/indexed/IndexedGVECollectionLayoutFactoryTest.java | 2 +- .../layouts/gve/indexed/IndexedGVEGraphLayoutFactoryTest.java | 2 +- .../model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java | 2 +- .../layouts/transactional/TxCollectionLayoutFactoryTest.java | 2 +- .../impl/layouts/transactional/TxCollectionLayoutTest.java | 2 +- .../flink/model/impl/operators/aggregation/AggregationTest.java | 2 +- .../operators/aggregation/ApplyAggregationGVELayoutTest.java | 2 +- .../model/impl/operators/aggregation/ApplyAggregationTest.java | 2 +- .../operators/aggregation/ApplyAggregationTxLayoutTest.java | 2 +- .../model/impl/operators/aggregation/functions/SumPlusOne.java | 2 +- .../aggregation/functions/average/AveragePropertyTest.java | 2 +- .../model/impl/operators/aggregation/functions/max/MaxTest.java | 2 +- .../model/impl/operators/aggregation/functions/min/MinTest.java | 2 +- .../impl/operators/base/BinaryCollectionOperatorsTestBase.java | 2 +- .../model/impl/operators/base/BinaryGraphOperatorsTestBase.java | 2 +- .../impl/operators/base/ReducibleBinaryOperatorsTestBase.java | 2 +- .../gradoop/flink/model/impl/operators/cloning/CloningTest.java | 2 +- .../flink/model/impl/operators/combination/CombinationTest.java | 2 +- .../flink/model/impl/operators/difference/DifferenceTest.java | 2 +- .../model/impl/operators/distinction/DistinctByIdTest.java | 2 +- .../impl/operators/distinction/DistinctByIsomorphismTest.java | 2 +- .../operators/distinction/DistinctByIsomorphismTestBase.java | 2 +- .../impl/operators/distinction/GroupByIsomorphismTest.java | 2 +- .../flink/model/impl/operators/equality/EqualityTest.java | 2 +- .../flink/model/impl/operators/exclusion/ExclusionTest.java | 2 +- .../flink/model/impl/operators/fusion/VertexFusionTest.java | 2 +- .../flink/model/impl/operators/fusion/VertexFusionUtils.java | 2 +- .../model/impl/operators/grouping/GroupingBuilderTest.java | 2 +- .../model/impl/operators/grouping/GroupingGroupCombineTest.java | 2 +- .../grouping/GroupingGroupCombineVertexRetentionTest.java | 2 +- .../model/impl/operators/grouping/GroupingGroupReduceTest.java | 2 +- .../grouping/GroupingGroupReduceVertexRetentionTest.java | 2 +- .../flink/model/impl/operators/grouping/GroupingTestBase.java | 2 +- .../impl/operators/grouping/LabelSpecificGroupingTestBase.java | 2 +- .../grouping/LabelSpecificWithCrossGroupingTestBase.java | 2 +- .../model/impl/operators/grouping/TupleBasedGroupingTest.java | 2 +- .../model/impl/operators/grouping/VertexRetentionTestBase.java | 2 +- .../impl/operators/intersection/ReduceIntersectionTest.java | 2 +- .../keyedgrouping/functions/LabelSpecificAggregationTest.java | 2 +- .../keyedgrouping/keys/LabelSpecificKeyFunctionTest.java | 2 +- .../model/impl/operators/layouting/CentroidFRLayouterTest.java | 2 +- .../flink/model/impl/operators/layouting/FRLayouterTest.java | 2 +- .../model/impl/operators/layouting/FusingFRLayouterTest.java | 2 +- .../model/impl/operators/layouting/LayoutingAlgorithmTest.java | 2 +- .../model/impl/operators/layouting/RandomLayouterTest.java | 2 +- .../model/impl/operators/layouting/SamplingFRLayouterTest.java | 2 +- .../layouting/functions/AverageVertexPositionFunctionTest.java | 2 +- .../layouting/functions/CentroidRepulsionForceMapperTest.java | 2 +- .../impl/operators/layouting/functions/CentroidUpdaterTest.java | 2 +- .../layouting/functions/DefaultVertexCompareFunctionTest.java | 2 +- .../operators/layouting/functions/FRAttractionFunctionTest.java | 2 +- .../model/impl/operators/layouting/functions/FRCellTest.java | 2 +- .../operators/layouting/functions/FRForceApplicatorTest.java | 2 +- .../operators/layouting/functions/FRRepulsionFunctionTest.java | 2 +- .../flink/model/impl/operators/layouting/functions/Util.java | 2 +- .../impl/operators/layouting/functions/VertexFusorTest.java | 2 +- .../flink/model/impl/operators/layouting/util/VectorTest.java | 2 +- .../org/gradoop/flink/model/impl/operators/limit/LimitTest.java | 2 +- .../gradoop/flink/model/impl/operators/matching/TestData.java | 2 +- .../common/functions/AddGraphElementToNewGraphTest.java | 2 +- .../matching/common/functions/ElementsFromEmbeddingTest.java | 2 +- .../impl/operators/matching/common/query/DFSTraverserTest.java | 2 +- .../impl/operators/matching/common/query/GraphMetricsTest.java | 2 +- .../impl/operators/matching/common/query/QueryHandlerTest.java | 2 +- .../model/impl/operators/matching/common/query/TripleTest.java | 2 +- .../matching/common/query/predicates/CNFElementTest.java | 2 +- .../operators/matching/common/query/predicates/CNFTest.java | 2 +- .../common/query/predicates/booleans/AndPredicateTest.java | 2 +- .../common/query/predicates/booleans/NotPredicateTest.java | 2 +- .../common/query/predicates/booleans/OrPredicateTest.java | 2 +- .../common/query/predicates/booleans/XorPredicateTest.java | 2 +- .../predicates/compareables/ElementSelectorComparableTest.java | 2 +- .../query/predicates/compareables/LiteralComparableTest.java | 2 +- .../predicates/compareables/PropertySelectorComparableTest.java | 2 +- .../query/predicates/expressions/ComparisonExpressionTest.java | 2 +- .../common/statistics/GraphStatisticsLocalFSReaderTest.java | 2 +- .../matching/common/statistics/GraphStatisticsTest.java | 2 +- .../impl/operators/matching/single/PatternMatchingTest.java | 2 +- .../matching/single/PatternMatchingWithBindingTest.java | 2 +- .../operators/matching/single/SubgraphHomomorphismTest.java | 2 +- .../impl/operators/matching/single/SubgraphIsomorphismTest.java | 2 +- .../matching/single/cypher/CypherGraphConstructionTest.java | 2 +- .../single/cypher/CypherPatternMatchingHomomorphismTest.java | 2 +- .../single/cypher/CypherPatternMatchingIsomorphismTest.java | 2 +- .../operators/matching/single/cypher/QueryEngineITTests.java | 2 +- .../matching/single/cypher/common/EmbeddingFactoryTest.java | 2 +- .../cypher/common/functions/ReverseEdgeEmbeddingTest.java | 2 +- .../single/cypher/common/pojos/EmbeddingMetaDataTest.java | 2 +- .../matching/single/cypher/common/pojos/EmbeddingTest.java | 2 +- .../matching/single/cypher/common/pojos/EmbeddingTestUtils.java | 2 +- .../single/cypher/operators/OperatorIntegrationTest.java | 2 +- .../matching/single/cypher/operators/PhysicalOperatorTest.java | 2 +- .../cypher/operators/expand/ExpandEmbeddingsBulkTest.java | 2 +- .../cypher/operators/expand/ExpandEmbeddingsForLoopTest.java | 2 +- .../single/cypher/operators/expand/ExpandEmbeddingsTest.java | 2 +- .../cypher/operators/expand/functions/AdoptEmptyPathsTest.java | 2 +- .../expand/functions/CreateInitialExpandEmbeddingTest.java | 2 +- .../operators/expand/functions/ExtractExpandColumnTest.java | 2 +- .../operators/expand/functions/MergeExpandEmbeddingsTest.java | 2 +- .../expand/functions/PostProcessExpandEmbeddingTest.java | 2 +- .../cypher/operators/filter/FilterAndProjectEdgesTest.java | 2 +- .../cypher/operators/filter/FilterAndProjectTriplesTest.java | 2 +- .../cypher/operators/filter/FilterAndProjectVerticesTest.java | 2 +- .../single/cypher/operators/filter/FilterEmbeddingsTest.java | 2 +- .../single/cypher/operators/join/CartesianProductTest.java | 2 +- .../single/cypher/operators/join/JoinEmbeddingsTest.java | 2 +- .../matching/single/cypher/operators/join/ValueJoinTest.java | 2 +- .../cypher/operators/join/functions/ExtractJoinColumnsTest.java | 2 +- .../join/functions/ExtractPropertyJoinColumnsTest.java | 2 +- .../cypher/operators/join/functions/MergeEmbeddingsTest.java | 2 +- .../single/cypher/operators/project/ProjectEdgesTest.java | 2 +- .../single/cypher/operators/project/ProjectEmbeddingsTest.java | 2 +- .../single/cypher/operators/project/ProjectVerticesTest.java | 2 +- .../single/cypher/planning/estimation/EstimatorTestBase.java | 2 +- .../single/cypher/planning/estimation/FilterEstimatorTest.java | 2 +- .../single/cypher/planning/estimation/JoinEstimatorTest.java | 2 +- .../cypher/planning/estimation/QueryPlanEstimatorTest.java | 2 +- .../matching/single/cypher/planning/queryplan/MockPlanNode.java | 2 +- .../planning/queryplan/binary/CartesianProductNodeTest.java | 2 +- .../planning/queryplan/binary/ExpandEmbeddingsNodeTest.java | 2 +- .../planning/queryplan/binary/JoinEmbeddingsNodeTest.java | 2 +- .../cypher/planning/queryplan/binary/ValueJoinNodeTest.java | 2 +- .../planning/queryplan/leaf/FilterAndProjectEdgesNodeTest.java | 2 +- .../queryplan/leaf/FilterAndProjectVerticesNodeTest.java | 2 +- .../planning/queryplan/unary/FilterEmbeddingsNodeTest.java | 2 +- .../planning/queryplan/unary/ProjectEmbeddingsNodeTest.java | 2 +- .../explorative/ExplorativeHomomorphismSetPairBulkTest.java | 2 +- .../ExplorativeHomomorphismSetPairLoopUnrollingTest.java | 2 +- .../explorative/ExplorativeHomomorphismTriplesForLoopTest.java | 2 +- .../explorative/ExplorativeIsomorphismSetPairBulkTest.java | 2 +- .../explorative/ExplorativeIsomorphismSetPairForLoopTest.java | 2 +- .../explorative/ExplorativeIsomorphismTriplesForLoopTest.java | 2 +- .../matching/single/simulation/dual/DualSimulationBulkTest.java | 2 +- .../single/simulation/dual/DualSimulationDeltaTest.java | 2 +- .../matching/single/simulation/dual/DualSimulationTest.java | 2 +- .../transactional/TransactionalPatternMatchingTest.java | 2 +- .../model/impl/operators/neighborhood/NeighborhoodTest.java | 2 +- .../gradoop/flink/model/impl/operators/overlap/OverlapTest.java | 2 +- .../gradoop/flink/model/impl/operators/rollup/RollUpTest.java | 2 +- .../model/impl/operators/sampling/PageRankSamplingTest.java | 2 +- .../operators/sampling/ParameterizedTestForGraphSampling.java | 2 +- .../model/impl/operators/sampling/RandomEdgeSamplingTest.java | 2 +- .../sampling/RandomLimitedDegreeVertexSamplingTest.java | 2 +- .../operators/sampling/RandomNonUniformVertexSamplingTest.java | 2 +- .../impl/operators/sampling/RandomVertexEdgeSamplingTest.java | 2 +- .../sampling/RandomVertexNeighborhoodSamplingTest.java | 2 +- .../model/impl/operators/sampling/RandomVertexSamplingTest.java | 2 +- .../model/impl/operators/sampling/RandomWalkSamplingTest.java | 2 +- .../sampling/statistics/AverageClusteringCoefficientTest.java | 2 +- .../impl/operators/sampling/statistics/AverageDegreeTest.java | 2 +- .../sampling/statistics/AverageIncomingDegreeTest.java | 2 +- .../sampling/statistics/AverageOutgoingDegreeTest.java | 2 +- .../statistics/ConnectedComponentsDistributionTest.java | 2 +- .../operators/sampling/statistics/DegreeCentralityTest.java | 2 +- .../impl/operators/sampling/statistics/GraphDensityTest.java | 2 +- .../sampling/statistics/ValueConnectedComponentsTest.java | 2 +- .../flink/model/impl/operators/selection/SelectionTest.java | 2 +- .../org/gradoop/flink/model/impl/operators/split/SplitTest.java | 2 +- .../flink/model/impl/operators/statistics/StatisticsTest.java | 2 +- .../flink/model/impl/operators/subgraph/SubgraphTest.java | 2 +- .../operators/tostring/CanonicalAdjacencyMatrixBuilderTest.java | 2 +- .../transformation/ApplyTransformationGVELayoutTest.java | 2 +- .../impl/operators/transformation/ApplyTransformationTest.java | 2 +- .../transformation/ApplyTransformationTxLayoutTest.java | 2 +- .../model/impl/operators/transformation/TransformationTest.java | 2 +- .../org/gradoop/flink/model/impl/operators/union/UnionTest.java | 2 +- .../gradoop/flink/model/impl/operators/verify/VerifyTest.java | 2 +- .../gradoop/flink/model/impl/pojo/PojoSerializationTest.java | 2 +- .../model/impl/properties/PropertiesSerializationTest.java | 2 +- .../flink/representation/RepresentationConverterTest.java | 2 +- .../java/org/gradoop/flink/util/FlinkAsciiGraphLoaderTest.java | 2 +- .../archetype-resources/src/main/java/GradoopApplication.java | 2 +- .../gradoop/storage/accumulo/config/GradoopAccumuloConfig.java | 2 +- .../java/org/gradoop/storage/accumulo/config/package-info.java | 2 +- .../org/gradoop/storage/accumulo/impl/AccumuloEPGMStore.java | 2 +- .../storage/accumulo/impl/constants/AccumuloDefault.java | 2 +- .../gradoop/storage/accumulo/impl/constants/AccumuloTables.java | 2 +- .../gradoop/storage/accumulo/impl/constants/package-info.java | 2 +- .../storage/accumulo/impl/handler/AccumuloEdgeHandler.java | 2 +- .../storage/accumulo/impl/handler/AccumuloGraphHandler.java | 2 +- .../storage/accumulo/impl/handler/AccumuloRowHandler.java | 2 +- .../storage/accumulo/impl/handler/AccumuloVertexHandler.java | 2 +- .../org/gradoop/storage/accumulo/impl/handler/package-info.java | 2 +- .../java/org/gradoop/storage/accumulo/impl/io/AccumuloBase.java | 2 +- .../org/gradoop/storage/accumulo/impl/io/AccumuloDataSink.java | 2 +- .../gradoop/storage/accumulo/impl/io/AccumuloDataSource.java | 2 +- .../storage/accumulo/impl/io/inputformats/BaseInputFormat.java | 2 +- .../storage/accumulo/impl/io/inputformats/EdgeInputFormat.java | 2 +- .../accumulo/impl/io/inputformats/GraphHeadInputFormat.java | 2 +- .../accumulo/impl/io/inputformats/VertexInputFormat.java | 2 +- .../storage/accumulo/impl/io/inputformats/package-info.java | 2 +- .../accumulo/impl/io/outputformats/ElementOutputFormat.java | 2 +- .../storage/accumulo/impl/io/outputformats/package-info.java | 2 +- .../java/org/gradoop/storage/accumulo/impl/io/package-info.java | 2 +- .../accumulo/impl/iterator/client/ClientClosableIterator.java | 2 +- .../storage/accumulo/impl/iterator/client/package-info.java | 2 +- .../accumulo/impl/iterator/tserver/BaseElementIterator.java | 2 +- .../accumulo/impl/iterator/tserver/GradoopEdgeIterator.java | 2 +- .../impl/iterator/tserver/GradoopGraphHeadIterator.java | 2 +- .../accumulo/impl/iterator/tserver/GradoopVertexIterator.java | 2 +- .../storage/accumulo/impl/iterator/tserver/package-info.java | 2 +- .../java/org/gradoop/storage/accumulo/impl/package-info.java | 2 +- .../impl/predicate/filter/api/AccumuloElementFilter.java | 2 +- .../accumulo/impl/predicate/filter/api/package-info.java | 2 +- .../storage/accumulo/impl/predicate/filter/calculate/And.java | 2 +- .../storage/accumulo/impl/predicate/filter/calculate/Not.java | 2 +- .../storage/accumulo/impl/predicate/filter/calculate/Or.java | 2 +- .../accumulo/impl/predicate/filter/calculate/package-info.java | 2 +- .../accumulo/impl/predicate/filter/impl/AccumuloLabelIn.java | 2 +- .../accumulo/impl/predicate/filter/impl/AccumuloLabelReg.java | 2 +- .../accumulo/impl/predicate/filter/impl/AccumuloPropEquals.java | 2 +- .../impl/predicate/filter/impl/AccumuloPropLargerThan.java | 2 +- .../accumulo/impl/predicate/filter/impl/AccumuloPropReg.java | 2 +- .../accumulo/impl/predicate/filter/impl/package-info.java | 2 +- .../accumulo/impl/predicate/query/AccumuloQueryHolder.java | 2 +- .../storage/accumulo/impl/predicate/query/package-info.java | 2 +- .../org/gradoop/storage/accumulo/utils/AccumuloFilters.java | 2 +- .../main/java/org/gradoop/storage/accumulo/utils/KryoUtils.java | 2 +- .../java/org/gradoop/storage/accumulo/utils/package-info.java | 2 +- .../gradoop/storage/impl/accumulo/AccumuloStoreTestBase.java | 2 +- .../org/gradoop/storage/impl/accumulo/AccumuloTestSuite.java | 2 +- .../java/org/gradoop/storage/impl/accumulo/basic/StoreTest.java | 2 +- .../java/org/gradoop/storage/impl/accumulo/io/IOBasicTest.java | 2 +- .../storage/impl/accumulo/io/source/IOEdgePredicateTest.java | 2 +- .../storage/impl/accumulo/io/source/IOElementIdRangeTest.java | 2 +- .../storage/impl/accumulo/io/source/IOGraphPredicateTest.java | 2 +- .../storage/impl/accumulo/io/source/IOVertexPredicateTest.java | 2 +- .../impl/accumulo/predicate/StoreBasicPredicateTest.java | 2 +- .../storage/impl/accumulo/predicate/StoreIdsPredicateTest.java | 2 +- .../impl/accumulo/predicate/StoreLabelPredicateTest.java | 2 +- .../storage/impl/accumulo/predicate/StorePropPredicateTest.java | 2 +- .../org/gradoop/storage/hbase/config/GradoopHBaseConfig.java | 2 +- .../java/org/gradoop/storage/hbase/config/package-info.java | 2 +- .../java/org/gradoop/storage/hbase/impl/HBaseEPGMStore.java | 2 +- .../java/org/gradoop/storage/hbase/impl/api/EdgeHandler.java | 2 +- .../java/org/gradoop/storage/hbase/impl/api/ElementHandler.java | 2 +- .../org/gradoop/storage/hbase/impl/api/GraphElementHandler.java | 2 +- .../org/gradoop/storage/hbase/impl/api/GraphHeadHandler.java | 2 +- .../java/org/gradoop/storage/hbase/impl/api/VertexHandler.java | 2 +- .../java/org/gradoop/storage/hbase/impl/api/package-info.java | 2 +- .../gradoop/storage/hbase/impl/constants/HBaseConstants.java | 2 +- .../org/gradoop/storage/hbase/impl/constants/package-info.java | 2 +- .../storage/hbase/impl/factory/HBaseEPGMStoreFactory.java | 2 +- .../org/gradoop/storage/hbase/impl/factory/package-info.java | 2 +- .../gradoop/storage/hbase/impl/handler/HBaseEdgeHandler.java | 2 +- .../gradoop/storage/hbase/impl/handler/HBaseElementHandler.java | 2 +- .../storage/hbase/impl/handler/HBaseGraphElementHandler.java | 2 +- .../storage/hbase/impl/handler/HBaseGraphHeadHandler.java | 2 +- .../gradoop/storage/hbase/impl/handler/HBaseVertexHandler.java | 2 +- .../org/gradoop/storage/hbase/impl/handler/package-info.java | 2 +- .../main/java/org/gradoop/storage/hbase/impl/io/HBaseBase.java | 2 +- .../java/org/gradoop/storage/hbase/impl/io/HBaseDataSink.java | 2 +- .../java/org/gradoop/storage/hbase/impl/io/HBaseDataSource.java | 2 +- .../storage/hbase/impl/io/functions/BuildEdgeMutation.java | 2 +- .../storage/hbase/impl/io/functions/BuildGraphHeadMutation.java | 2 +- .../storage/hbase/impl/io/functions/BuildVertexMutation.java | 2 +- .../gradoop/storage/hbase/impl/io/functions/package-info.java | 2 +- .../hbase/impl/io/inputformats/BaseTableInputFormat.java | 2 +- .../hbase/impl/io/inputformats/EdgeTableInputFormat.java | 2 +- .../hbase/impl/io/inputformats/GraphHeadTableInputFormat.java | 2 +- .../hbase/impl/io/inputformats/VertexTableInputFormat.java | 2 +- .../storage/hbase/impl/io/inputformats/package-info.java | 2 +- .../java/org/gradoop/storage/hbase/impl/io/package-info.java | 2 +- .../gradoop/storage/hbase/impl/iterator/HBaseEdgeIterator.java | 2 +- .../gradoop/storage/hbase/impl/iterator/HBaseGraphIterator.java | 2 +- .../storage/hbase/impl/iterator/HBaseVertexIterator.java | 2 +- .../org/gradoop/storage/hbase/impl/iterator/package-info.java | 2 +- .../main/java/org/gradoop/storage/hbase/impl/package-info.java | 2 +- .../storage/hbase/impl/predicate/filter/HBaseFilterUtils.java | 2 +- .../hbase/impl/predicate/filter/api/HBaseElementFilter.java | 2 +- .../storage/hbase/impl/predicate/filter/api/package-info.java | 2 +- .../storage/hbase/impl/predicate/filter/calculate/And.java | 2 +- .../storage/hbase/impl/predicate/filter/calculate/Not.java | 2 +- .../storage/hbase/impl/predicate/filter/calculate/Or.java | 2 +- .../hbase/impl/predicate/filter/calculate/package-info.java | 2 +- .../storage/hbase/impl/predicate/filter/impl/HBaseLabelIn.java | 2 +- .../storage/hbase/impl/predicate/filter/impl/HBaseLabelReg.java | 2 +- .../hbase/impl/predicate/filter/impl/HBasePropEquals.java | 2 +- .../hbase/impl/predicate/filter/impl/HBasePropLargerThan.java | 2 +- .../storage/hbase/impl/predicate/filter/impl/HBasePropReg.java | 2 +- .../storage/hbase/impl/predicate/filter/impl/package-info.java | 2 +- .../storage/hbase/impl/predicate/filter/package-info.java | 2 +- .../main/java/org/gradoop/storage/hbase/utils/HBaseFilters.java | 2 +- .../java/org/gradoop/storage/hbase/utils/RegionSplitter.java | 2 +- .../java/org/gradoop/storage/hbase/utils/RowKeyDistributor.java | 2 +- .../main/java/org/gradoop/storage/hbase/utils/package-info.java | 2 +- .../org/gradoop/storage/impl/hbase/GradoopHBaseTestBase.java | 2 +- .../java/org/gradoop/storage/impl/hbase/HBaseEPGMStoreTest.java | 2 +- .../org/gradoop/storage/impl/hbase/HBaseGraphStoreTest.java | 2 +- .../gradoop/storage/impl/hbase/io/HBaseDataSinkSourceTest.java | 2 +- .../impl/hbase/predicate/filter/impl/HBaseLabelInTest.java | 2 +- .../impl/hbase/predicate/filter/impl/HBaseLabelRegTest.java | 2 +- .../impl/hbase/predicate/filter/impl/HBasePropEqualsTest.java | 2 +- .../hbase/predicate/filter/impl/HBasePropLargerThanTest.java | 2 +- .../impl/hbase/predicate/filter/impl/HBasePropRegTest.java | 2 +- .../java/org/gradoop/storage/common/api/EPGMConfigProvider.java | 2 +- .../java/org/gradoop/storage/common/api/EPGMGraphInput.java | 2 +- .../java/org/gradoop/storage/common/api/EPGMGraphOutput.java | 2 +- .../gradoop/storage/common/api/EPGMGraphPredictableOutput.java | 2 +- .../main/java/org/gradoop/storage/common/api/package-info.java | 2 +- .../org/gradoop/storage/common/config/GradoopStoreConfig.java | 2 +- .../java/org/gradoop/storage/common/config/package-info.java | 2 +- .../org/gradoop/storage/common/io/FilterableDataSource.java | 2 +- .../main/java/org/gradoop/storage/common/io/package-info.java | 2 +- .../org/gradoop/storage/common/iterator/ClosableIterator.java | 2 +- .../gradoop/storage/common/iterator/EmptyClosableIterator.java | 2 +- .../java/org/gradoop/storage/common/iterator/package-info.java | 2 +- .../storage/common/predicate/filter/api/ElementFilter.java | 2 +- .../storage/common/predicate/filter/api/package-info.java | 2 +- .../gradoop/storage/common/predicate/filter/impl/LabelIn.java | 2 +- .../gradoop/storage/common/predicate/filter/impl/LabelReg.java | 2 +- .../storage/common/predicate/filter/impl/PropEquals.java | 2 +- .../storage/common/predicate/filter/impl/PropLargerThan.java | 2 +- .../gradoop/storage/common/predicate/filter/impl/PropReg.java | 2 +- .../storage/common/predicate/filter/impl/package-info.java | 2 +- .../gradoop/storage/common/predicate/query/ElementQuery.java | 2 +- .../java/org/gradoop/storage/common/predicate/query/Query.java | 2 +- .../gradoop/storage/common/predicate/query/package-info.java | 2 +- .../main/java/org/gradoop/temporal/io/api/TemporalDataSink.java | 2 +- .../java/org/gradoop/temporal/io/api/TemporalDataSource.java | 2 +- .../src/main/java/org/gradoop/temporal/io/api/package-info.java | 2 +- .../org/gradoop/temporal/io/impl/csv/TemporalCSVDataSink.java | 2 +- .../org/gradoop/temporal/io/impl/csv/TemporalCSVDataSource.java | 2 +- .../temporal/io/impl/csv/functions/CSVLineToTemporalEdge.java | 2 +- .../io/impl/csv/functions/CSVLineToTemporalElement.java | 2 +- .../io/impl/csv/functions/CSVLineToTemporalGraphHead.java | 2 +- .../temporal/io/impl/csv/functions/CSVLineToTemporalVertex.java | 2 +- .../io/impl/csv/functions/TemporalEdgeToTemporalCSVEdge.java | 2 +- .../temporal/io/impl/csv/functions/TemporalElementToCSV.java | 2 +- .../csv/functions/TemporalGraphHeadToTemporalCSVGraphHead.java | 2 +- .../impl/csv/functions/TemporalVertexToTemporalCSVVertex.java | 2 +- .../gradoop/temporal/io/impl/csv/functions/package-info.java | 2 +- .../java/org/gradoop/temporal/io/impl/csv/package-info.java | 2 +- .../gradoop/temporal/io/impl/csv/tuples/TemporalCSVEdge.java | 2 +- .../gradoop/temporal/io/impl/csv/tuples/TemporalCSVElement.java | 2 +- .../temporal/io/impl/csv/tuples/TemporalCSVGraphHead.java | 2 +- .../gradoop/temporal/io/impl/csv/tuples/TemporalCSVVertex.java | 2 +- .../org/gradoop/temporal/io/impl/csv/tuples/package-info.java | 2 +- .../temporal/model/api/TemporalGraphCollectionOperators.java | 2 +- .../org/gradoop/temporal/model/api/TemporalGraphOperators.java | 2 +- .../main/java/org/gradoop/temporal/model/api/TimeDimension.java | 2 +- .../temporal/model/api/functions/TemporalAggregateFunction.java | 2 +- .../gradoop/temporal/model/api/functions/TemporalPredicate.java | 2 +- .../temporal/model/api/functions/TimeIntervalExtractor.java | 2 +- .../org/gradoop/temporal/model/api/functions/package-info.java | 2 +- .../main/java/org/gradoop/temporal/model/api/package-info.java | 2 +- .../java/org/gradoop/temporal/model/impl/TemporalGraph.java | 2 +- .../gradoop/temporal/model/impl/TemporalGraphCollection.java | 2 +- .../temporal/model/impl/TemporalGraphCollectionFactory.java | 2 +- .../org/gradoop/temporal/model/impl/TemporalGraphFactory.java | 2 +- .../org/gradoop/temporal/model/impl/functions/package-info.java | 2 +- .../gradoop/temporal/model/impl/functions/predicates/All.java | 2 +- .../gradoop/temporal/model/impl/functions/predicates/AsOf.java | 2 +- .../temporal/model/impl/functions/predicates/Between.java | 2 +- .../temporal/model/impl/functions/predicates/ContainedIn.java | 2 +- .../temporal/model/impl/functions/predicates/CreatedIn.java | 2 +- .../temporal/model/impl/functions/predicates/DeletedIn.java | 2 +- .../temporal/model/impl/functions/predicates/FromTo.java | 2 +- .../temporal/model/impl/functions/predicates/Overlaps.java | 2 +- .../temporal/model/impl/functions/predicates/Precedes.java | 2 +- .../temporal/model/impl/functions/predicates/Succeeds.java | 2 +- .../temporal/model/impl/functions/predicates/ValidDuring.java | 2 +- .../temporal/model/impl/functions/predicates/package-info.java | 2 +- .../temporal/model/impl/functions/tpgm/EdgeToTemporalEdge.java | 2 +- .../model/impl/functions/tpgm/GraphHeadToTemporalGraphHead.java | 2 +- .../temporal/model/impl/functions/tpgm/TemporalEdgeToEdge.java | 2 +- .../model/impl/functions/tpgm/TemporalGraphHeadToGraphHead.java | 2 +- .../model/impl/functions/tpgm/TemporalVertexToVertex.java | 2 +- .../model/impl/functions/tpgm/VertexToTemporalVertex.java | 2 +- .../temporal/model/impl/functions/tpgm/package-info.java | 2 +- .../temporal/model/impl/layout/TemporalBaseLayoutFactory.java | 2 +- .../gradoop/temporal/model/impl/layout/TemporalGVELayout.java | 2 +- .../model/impl/layout/TemporalGraphCollectionLayoutFactory.java | 2 +- .../temporal/model/impl/layout/TemporalGraphLayoutFactory.java | 2 +- .../org/gradoop/temporal/model/impl/layout/package-info.java | 2 +- .../functions/AbstractDurationAggregateFunction.java | 2 +- .../aggregation/functions/AbstractTimeAggregateFunction.java | 2 +- .../impl/operators/aggregation/functions/AverageDuration.java | 2 +- .../operators/aggregation/functions/AverageEdgeDuration.java | 2 +- .../operators/aggregation/functions/AverageVertexDuration.java | 2 +- .../model/impl/operators/aggregation/functions/MaxDuration.java | 2 +- .../impl/operators/aggregation/functions/MaxEdgeDuration.java | 2 +- .../model/impl/operators/aggregation/functions/MaxEdgeTime.java | 2 +- .../model/impl/operators/aggregation/functions/MaxTime.java | 2 +- .../impl/operators/aggregation/functions/MaxVertexDuration.java | 2 +- .../impl/operators/aggregation/functions/MaxVertexTime.java | 2 +- .../model/impl/operators/aggregation/functions/MinDuration.java | 2 +- .../impl/operators/aggregation/functions/MinEdgeDuration.java | 2 +- .../model/impl/operators/aggregation/functions/MinEdgeTime.java | 2 +- .../model/impl/operators/aggregation/functions/MinTime.java | 2 +- .../impl/operators/aggregation/functions/MinVertexDuration.java | 2 +- .../impl/operators/aggregation/functions/MinVertexTime.java | 2 +- .../impl/operators/aggregation/functions/package-info.java | 2 +- .../org/gradoop/temporal/model/impl/operators/diff/Diff.java | 2 +- .../model/impl/operators/diff/functions/DiffPerElement.java | 2 +- .../model/impl/operators/diff/functions/package-info.java | 2 +- .../temporal/model/impl/operators/diff/package-info.java | 2 +- .../impl/operators/keyedgrouping/TemporalGroupingKeys.java | 2 +- .../impl/operators/keyedgrouping/keys/DurationKeyFunction.java | 2 +- .../operators/keyedgrouping/keys/TimeIntervalKeyFunction.java | 2 +- .../impl/operators/keyedgrouping/keys/TimeStampKeyFunction.java | 2 +- .../model/impl/operators/keyedgrouping/keys/package-info.java | 2 +- .../model/impl/operators/keyedgrouping/package-info.java | 2 +- .../org/gradoop/temporal/model/impl/operators/package-info.java | 2 +- .../temporal/model/impl/operators/snapshot/Snapshot.java | 2 +- .../impl/operators/snapshot/functions/ByTemporalPredicate.java | 2 +- .../model/impl/operators/snapshot/functions/package-info.java | 2 +- .../temporal/model/impl/operators/snapshot/package-info.java | 2 +- .../model/impl/operators/tostring/TemporalEdgeToDataString.java | 2 +- .../impl/operators/tostring/TemporalGraphHeadToDataString.java | 2 +- .../impl/operators/tostring/TemporalVertexToDataString.java | 2 +- .../tostring/functions/TemporalElementToDataString.java | 2 +- .../model/impl/operators/tostring/functions/package-info.java | 2 +- .../temporal/model/impl/operators/tostring/package-info.java | 2 +- .../impl/operators/verify/VerifyAndUpdateEdgeValidity.java | 2 +- .../impl/operators/verify/functions/UpdateEdgeValidity.java | 2 +- .../model/impl/operators/verify/functions/package-info.java | 2 +- .../temporal/model/impl/operators/verify/package-info.java | 2 +- .../main/java/org/gradoop/temporal/model/impl/package-info.java | 2 +- .../java/org/gradoop/temporal/model/impl/pojo/TemporalEdge.java | 2 +- .../gradoop/temporal/model/impl/pojo/TemporalEdgeFactory.java | 2 +- .../org/gradoop/temporal/model/impl/pojo/TemporalElement.java | 2 +- .../gradoop/temporal/model/impl/pojo/TemporalGraphElement.java | 2 +- .../org/gradoop/temporal/model/impl/pojo/TemporalGraphHead.java | 2 +- .../temporal/model/impl/pojo/TemporalGraphHeadFactory.java | 2 +- .../org/gradoop/temporal/model/impl/pojo/TemporalVertex.java | 2 +- .../gradoop/temporal/model/impl/pojo/TemporalVertexFactory.java | 2 +- .../java/org/gradoop/temporal/model/impl/pojo/package-info.java | 2 +- .../java/org/gradoop/temporal/util/TemporalGradoopConfig.java | 2 +- .../java/org/gradoop/temporal/util/TimeFormatConversion.java | 2 +- .../src/main/java/org/gradoop/temporal/util/package-info.java | 2 +- .../temporal/io/impl/csv/TemporalCSVSourceAndSinkTest.java | 2 +- .../model/api/functions/TemporalAggregateFunctionTest.java | 2 +- .../temporal/model/impl/TemporalGraphCollectionFactoryTest.java | 2 +- .../temporal/model/impl/TemporalGraphCollectionTest.java | 2 +- .../gradoop/temporal/model/impl/TemporalGraphFactoryTest.java | 2 +- .../java/org/gradoop/temporal/model/impl/TemporalGraphTest.java | 2 +- .../temporal/model/impl/functions/TemporalPredicateTests.java | 2 +- .../temporal/model/impl/layout/TemporalGVELayoutTest.java | 2 +- .../impl/layout/TemporalGraphCollectionLayoutFactoryTest.java | 2 +- .../model/impl/layout/TemporalGraphLayoutFactoryTest.java | 2 +- .../functions/AbstractTimeAggregateFunctionTest.java | 2 +- .../operators/aggregation/functions/AverageDurationTest.java | 2 +- .../operators/aggregation/functions/MinMaxDurationTest.java | 2 +- .../functions/MinMaxDurationWithTemporalUnitTest.java | 2 +- .../impl/operators/aggregation/functions/MinMaxTimeTest.java | 2 +- .../gradoop/temporal/model/impl/operators/diff/DiffTest.java | 2 +- .../model/impl/operators/diff/functions/DiffPerElementTest.java | 2 +- .../model/impl/operators/equality/TemporalEqualityTest.java | 2 +- .../impl/operators/keyedgrouping/TemporalGroupingTest.java | 2 +- .../operators/keyedgrouping/keys/TimeStampKeyFunctionTest.java | 2 +- .../model/impl/operators/snapshot/ByTemporalPredicateTest.java | 2 +- .../temporal/model/impl/operators/snapshot/SnapshotApiTest.java | 2 +- .../temporal/model/impl/operators/snapshot/SnapshotTest.java | 2 +- .../tostring/TemporalCanonicalAdjacencyMatrixBuilderTest.java | 2 +- .../impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java | 2 +- .../impl/operators/verify/functions/UpdateEdgeValidityTest.java | 2 +- .../org/gradoop/temporal/model/impl/pojo/TemporalEdgeTest.java | 2 +- .../gradoop/temporal/model/impl/pojo/TemporalElementTest.java | 2 +- .../temporal/model/impl/pojo/TemporalGraphElementTest.java | 2 +- .../gradoop/temporal/model/impl/pojo/TemporalGraphHeadTest.java | 2 +- .../gradoop/temporal/model/impl/pojo/TemporalVertexTest.java | 2 +- .../java/org/gradoop/temporal/util/TemporalGradoopTestBase.java | 2 +- .../org/gradoop/temporal/util/TemporalGradoopTestUtils.java | 2 +- .../org/gradoop/temporal/util/TimeFormatConversionTest.java | 2 +- pom.xml | 2 +- 1881 files changed, 1881 insertions(+), 1881 deletions(-) diff --git a/NOTICE b/NOTICE index ce30acd912d5..03ae26d58082 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ Gradoop -Copyright 2014-2019 Leipzig University (Database Research Group) +Copyright 2014-2021 Leipzig University (Database Research Group) This product includes software developed at The Apache Software Foundation (http://www.apache.org/). diff --git a/NOTICE-binary b/NOTICE-binary index 67d5dd17f6e0..8f4d6e05f490 100644 --- a/NOTICE-binary +++ b/NOTICE-binary @@ -4,7 +4,7 @@ // ------------------------------------------------------------------ gradoop-accumulo -Copyright 2014-2019 Leipzig University (Database Research Group) +Copyright 2014-2021 Leipzig University (Database Research Group) This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) diff --git a/gradoop-checkstyle/src/main/resources/gradoop/LICENSE.txt b/gradoop-checkstyle/src/main/resources/gradoop/LICENSE.txt index f31386cfc3ff..f538bd1e586f 100644 --- a/gradoop-checkstyle/src/main/resources/gradoop/LICENSE.txt +++ b/gradoop-checkstyle/src/main/resources/gradoop/LICENSE.txt @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/config/GradoopConfig.java b/gradoop-common/src/main/java/org/gradoop/common/config/GradoopConfig.java index f58e5dc1b92e..15f7064eb315 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/config/GradoopConfig.java +++ b/gradoop-common/src/main/java/org/gradoop/common/config/GradoopConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/config/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/config/package-info.java index fdd83cea722a..515a806389fd 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/config/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/config/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/exceptions/UnsupportedTypeException.java b/gradoop-common/src/main/java/org/gradoop/common/exceptions/UnsupportedTypeException.java index 1a83a3e43a0e..fa4d09581d23 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/exceptions/UnsupportedTypeException.java +++ b/gradoop-common/src/main/java/org/gradoop/common/exceptions/UnsupportedTypeException.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/exceptions/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/exceptions/package-info.java index d2c651990f59..87bfb4ecd05c 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/exceptions/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/exceptions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Attributed.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Attributed.java index 02bb1124ac60..7b0c5f3af7f8 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Attributed.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Attributed.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Edge.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Edge.java index e0193b3561c1..642668b6322d 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Edge.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Edge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/EdgeFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/EdgeFactory.java index 3d2bea78fd36..3cb1c9790ffd 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/EdgeFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/EdgeFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Element.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Element.java index 5f968ded927f..e7032478cc4c 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Element.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Element.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactory.java index 3326ae0c9ff3..2ce1477b7486 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactoryProvider.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactoryProvider.java index 6414e7137856..de1e49efd15b 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactoryProvider.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/ElementFactoryProvider.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphElement.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphElement.java index b0c875b7cc80..beac3584bbc6 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphElement.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHead.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHead.java index 3ad3d7cf19c2..cecd1a0780bb 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHead.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHeadFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHeadFactory.java index 3e6a2c1bcb0f..9c5b98e4cedc 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHeadFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/GraphHeadFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Identifiable.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Identifiable.java index 80fc45506354..b76380c0462e 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Identifiable.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Identifiable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Labeled.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Labeled.java index 74a7678a7118..ffba67dc4244 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Labeled.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Labeled.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Vertex.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Vertex.java index 179d6537770d..7eb3d360d675 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Vertex.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/Vertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/VertexFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/VertexFactory.java index 35432b4400ff..79afc695dad1 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/VertexFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/VertexFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/package-info.java index a7ceeb997639..1fe7a94acc57 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/entities/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/PropertyValueStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/PropertyValueStrategy.java index cb329afac73b..ac32587a4fe0 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/PropertyValueStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/PropertyValueStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/package-info.java index 3713fc38850c..fd0394fbef85 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/api/strategies/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/IdentifiableComparator.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/IdentifiableComparator.java index 3c07a9801123..a051d2b9d240 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/IdentifiableComparator.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/IdentifiableComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/package-info.java index ece967cea981..588d595e475f 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/comparators/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopId.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopId.java index 650111087ed7..00f4ed90a4c3 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopId.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopIdSet.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopIdSet.java index 954704efafc5..35c8211656d8 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopIdSet.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/GradoopIdSet.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/package-info.java index 3772ebdb4017..5f8cad71926a 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/id/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/MetaData.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/MetaData.java index 48ecbb344112..b305b19c237e 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/MetaData.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/MetaData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/PropertyMetaData.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/PropertyMetaData.java index 52b997785822..70a9a835aac8 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/PropertyMetaData.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/PropertyMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/package-info.java index dad51154b381..6999520c0bae 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/metadata/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdge.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdge.java index 491b990c0082..e93ad3ff74c7 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdge.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdgeFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdgeFactory.java index 9531209d6677..016945566ee8 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdgeFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMEdgeFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMElement.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMElement.java index 4b43494860bc..006be6c77570 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMElement.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphElement.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphElement.java index 8eff6bd7f242..36183f88bc2e 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphElement.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHead.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHead.java index 0ff1669c4927..db0db7109ff1 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHead.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHeadFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHeadFactory.java index c685734027aa..2ffd0e36eb0d 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHeadFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMGraphHeadFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertex.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertex.java index 4b3d88b373ea..fdb37189fe05 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertex.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertexFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertexFactory.java index a6cf50b994b4..ea89662562d1 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertexFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/EPGMVertexFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/package-info.java index db387615c600..348df56cff94 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/pojo/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/DateTimeSerializer.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/DateTimeSerializer.java index 2679b56f596e..7c7fb94a61bb 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/DateTimeSerializer.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/DateTimeSerializer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Properties.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Properties.java index 4e2588722690..e152a8c3c238 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Properties.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Properties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Property.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Property.java index 2324e159ba49..f645d48a0830 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Property.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Property.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValue.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValue.java index 23fe307dd609..8b5416640bcc 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValue.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java index bc016a6b6f89..f6066f92a4d6 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java index d8f3a8980d4c..dbf5d349731a 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Type.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Type.java index b98c251b5a6e..5568063a0123 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Type.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/Type.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/Bytes.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/Bytes.java index c7efc9ae266f..60512fa98509 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/Bytes.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/Bytes.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/UnsafeAvailChecker.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/UnsafeAvailChecker.java index 9a810d8df469..e328f4f5f89d 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/UnsafeAvailChecker.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/UnsafeAvailChecker.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/package-info.java index 6870ee90afed..72d763837797 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/bytes/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/package-info.java index 127e9d9dd312..f6dbc798ecf6 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractFixSizedPropertyValueStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractFixSizedPropertyValueStrategy.java index 219a75c3e678..29e942ac8172 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractFixSizedPropertyValueStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractFixSizedPropertyValueStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractVariableSizedPropertyValueStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractVariableSizedPropertyValueStrategy.java index d613b4be859c..21ef5d226b4d 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractVariableSizedPropertyValueStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/AbstractVariableSizedPropertyValueStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BigDecimalStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BigDecimalStrategy.java index e970bff3ffd6..3de865438085 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BigDecimalStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BigDecimalStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BooleanStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BooleanStrategy.java index 02f140beda39..87167883271b 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BooleanStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/BooleanStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateStrategy.java index de756910dfc7..a57f0612e1dd 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateTimeStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateTimeStrategy.java index 2b3cc9769be6..1020baecf65b 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateTimeStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DateTimeStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DoubleStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DoubleStrategy.java index 27cd1c98f9d4..4a7fd88a13db 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DoubleStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/DoubleStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/FloatStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/FloatStrategy.java index 0b107067550a..6ba443b9631a 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/FloatStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/FloatStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/GradoopIdStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/GradoopIdStrategy.java index ee5124a44fb9..78c475361540 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/GradoopIdStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/GradoopIdStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/IntegerStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/IntegerStrategy.java index 13a7180d2c45..2bfd042b0911 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/IntegerStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/IntegerStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ListStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ListStrategy.java index 112c4a199804..21e57c2d8302 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ListStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ListStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/LongStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/LongStrategy.java index 5ca9e234deb2..b0e69c06afff 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/LongStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/LongStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/MapStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/MapStrategy.java index 2fbf9d802d56..14fe5517eef6 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/MapStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/MapStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/NullStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/NullStrategy.java index ebab07e3d7d0..f3f534510482 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/NullStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/NullStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyFactory.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyFactory.java index a069686dad2c..8771d58d6d07 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyFactory.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyUtils.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyUtils.java index 97e9298b39a0..ecfc5a160fc1 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyUtils.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/PropertyValueStrategyUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/SetStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/SetStrategy.java index 582e5b9a38f9..53bbd2140052 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/SetStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/SetStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ShortStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ShortStrategy.java index 5aa313bf33ee..ab3f7c598e3b 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ShortStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/ShortStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/StringStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/StringStrategy.java index 5561d02c13b3..4e926b443650 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/StringStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/StringStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/TimeStrategy.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/TimeStrategy.java index cb9a8a27208e..3c531078d46a 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/TimeStrategy.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/TimeStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/package-info.java index 7a7e1203e702..7a9867bab477 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/strategies/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java b/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java index 162526b31f29..63c6f6c4be55 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java +++ b/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/util/GradoopConstants.java b/gradoop-common/src/main/java/org/gradoop/common/util/GradoopConstants.java index 2ff9ff36b72c..2f75c8189d12 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/util/GradoopConstants.java +++ b/gradoop-common/src/main/java/org/gradoop/common/util/GradoopConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/util/Order.java b/gradoop-common/src/main/java/org/gradoop/common/util/Order.java index c785dc4d147e..edc2badb8196 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/util/Order.java +++ b/gradoop-common/src/main/java/org/gradoop/common/util/Order.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/main/java/org/gradoop/common/util/package-info.java b/gradoop-common/src/main/java/org/gradoop/common/util/package-info.java index 62da49c27f8c..77f6e825501d 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/util/package-info.java +++ b/gradoop-common/src/main/java/org/gradoop/common/util/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/GradoopTestUtils.java b/gradoop-common/src/test/java/org/gradoop/common/GradoopTestUtils.java index 618df68ce271..1b0ebcf07eac 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/GradoopTestUtils.java +++ b/gradoop-common/src/test/java/org/gradoop/common/GradoopTestUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdTest.java index f08b52c411e9..1f1a13b4b9bc 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdsTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdsTest.java index e4c66c229406..7fed67b48c50 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdsTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/id/GradoopIdsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/metadata/MetaDataTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/metadata/MetaDataTest.java index 2d3fc4b85879..5b2d749fe750 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/metadata/MetaDataTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/metadata/MetaDataTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/EdgeTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/EdgeTest.java index 931c8de5965c..38d067a121cb 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/EdgeTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/EdgeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/ElementTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/ElementTest.java index 37f0029ac5c8..eaddf89c6e61 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/ElementTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/ElementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphElementTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphElementTest.java index 743a4d5f01f4..e33f343dd203 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphElementTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphElementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphHeadTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphHeadTest.java index d0e98d7f69d4..6ba142f8d6c3 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphHeadTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/GraphHeadTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/VertexTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/VertexTest.java index 6a790e54838d..4bb6fd1ee972 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/VertexTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/pojo/VertexTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertiesTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertiesTest.java index e98439966438..4fd8a153d5c6 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertiesTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertiesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyTest.java index 3288c65df57d..f081bd731278 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueListTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueListTest.java index 1188ad9b9bb2..018cf4087e78 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueListTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueListTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTest.java index db1b15c4a1a7..d4c665050685 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTestProvider.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTestProvider.java index 54ffd644036a..2629493d2d67 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTestProvider.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueTestProvider.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java index d51f9989778c..41bab534e31e 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/model/impl/properties/PropertyValueUtilsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-common/src/test/java/org/gradoop/common/util/AsciiGraphLoaderTest.java b/gradoop-common/src/test/java/org/gradoop/common/util/AsciiGraphLoaderTest.java index c354ef230a03..52e076677678 100644 --- a/gradoop-common/src/test/java/org/gradoop/common/util/AsciiGraphLoaderTest.java +++ b/gradoop-common/src/test/java/org/gradoop/common/util/AsciiGraphLoaderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java index 518184c72bcc..9056a8f15fce 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java index 4d387a6534e8..392c0d061bc7 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/PropertiesToVertex.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/PropertiesToVertex.java index b9d0ac12e072..a5a3b265146a 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/PropertiesToVertex.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/PropertiesToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/package-info.java index 401a7aaf3c55..065f61d7f30e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/package-info.java index f61052e4c96b..ee5d7274204b 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporter.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporter.java index 4cd6a36c5f49..c0f6f65db130 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporter.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertex.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertex.java index e15c340043f9..48984737760e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertex.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/package-info.java index 27160abf2adf..132d190802ea 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/package-info.java index a01a69ddaecb..d2a09c083aa1 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/json/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/package-info.java index e483b29de33a..f6476002620b 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/ConnectNeighbors.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/ConnectNeighbors.java index 960046efd5fd..4bae0d6b240c 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/ConnectNeighbors.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/ConnectNeighbors.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/EdgeToVertex.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/EdgeToVertex.java index a78c13c3724c..c10ed7816f6e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/EdgeToVertex.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/EdgeToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighbor.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighbor.java index 68342c98d8e8..ddcf2282136e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighbor.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighbor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexDeduplication.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexDeduplication.java index 1d0de26c55df..ebce92c87090 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexDeduplication.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexDeduplication.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexToEdge.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexToEdge.java index 2506a10356c8..6808be29ae5d 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexToEdge.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/VertexToEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/PropertyTransformationFunction.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/PropertyTransformationFunction.java index 74362d950821..b23d92a1b138 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/PropertyTransformationFunction.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/PropertyTransformationFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/package-info.java index efdc7d30538d..2a6bb1d9b04b 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValues.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValues.java index bd00501dbb1b..ae5c1aecef19 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValues.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValues.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairs.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairs.java index 209e1914c7aa..0565fd730f35 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairs.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairs.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairs.java index 62407a7fc94d..01e674ee9848 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairs.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdges.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdges.java index a6e1238beae2..d211a349e05c 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdges.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTriple.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTriple.java index 91a7e1a02f39..9572b9efe82e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTriple.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTriple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicates.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicates.java index 3778ef9c803d..fc25aa960bd0 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicates.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateNeighborList.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateNeighborList.java index 32d11453d87d..984c33b2982a 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateNeighborList.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateNeighborList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdges.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdges.java index 1eacace1c4cd..9c79c582e719 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdges.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/EdgesFromLocalTransitiveClosure.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/EdgesFromLocalTransitiveClosure.java index d75d85e94c78..2ccc09ee43de 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/EdgesFromLocalTransitiveClosure.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/EdgesFromLocalTransitiveClosure.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsList.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsList.java index 1ec531658a3d..ae4dfebde084 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsList.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroup.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroup.java index a29cde20a0bb..df6e5c5973d8 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroup.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroup.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/package-info.java index 0f694d3e8df2..f6c464e40bc6 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/BasePropertyTransformationFunction.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/BasePropertyTransformationFunction.java index a6eb8c424696..c987352779f0 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/BasePropertyTransformationFunction.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/BasePropertyTransformationFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertex.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertex.java index 2a02f9324415..0687d19c490e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertex.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/InvertEdges.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/InvertEdges.java index feb3dd5a5520..0617865bc71d 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/InvertEdges.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/InvertEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/Neighborhood.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/Neighborhood.java index f05abc68340b..afcbb9130b68 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/Neighborhood.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/Neighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/NeighborhoodVertex.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/NeighborhoodVertex.java index 40553aaafca3..96f6a02fb84e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/NeighborhoodVertex.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/NeighborhoodVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformation.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformation.java index e1b06549efd8..99484f182f83 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformation.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/EdgeDirection.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/EdgeDirection.java index 1e1e6ea1d8db..ff06783a1164 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/EdgeDirection.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/EdgeDirection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/package-info.java index d8bc55030643..e4f58764882a 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/config/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewEdges.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewEdges.java index c900fa31eb4f..48ad82bc8d89 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewEdges.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertex.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertex.java index 8ef076cdaacf..fd925b522a6e 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertex.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertexWithEqualityCondense.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertexWithEqualityCondense.java index 928f0b965a43..52e67b03275f 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertexWithEqualityCondense.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/CreateNewVertexWithEqualityCondense.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/DivideBy.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/DivideBy.java index 237e030965a5..5d3a7f316211 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/DivideBy.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/DivideBy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/ExtractPropertyWithOriginId.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/ExtractPropertyWithOriginId.java index c1ab58491534..c9e0ca7f71b8 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/ExtractPropertyWithOriginId.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/ExtractPropertyWithOriginId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/package-info.java index c6fd201e5e63..3d4407d9762b 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/package-info.java index cf60814b7f4d..fdbce25b4938 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/package-info.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/package-info.java index c79babf89eac..4f0b700e1cf0 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/package-info.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/transformation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java index 54b2eb689c63..53ba0e379328 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporterTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporterTest.java index 912be5e7ce02..37dfbd35c9ef 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporterTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/MinimalJSONImporterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertexTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertexTest.java index e02c1d819794..e04ef9d125be 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertexTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/json/functions/MinimalJsonToVertexTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java index c86f036520db..6c007c5bd8d0 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/EdgeToVertexTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/EdgeToVertexTest.java index 1d8438e68078..89ac8ab7fc01 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/EdgeToVertexTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/EdgeToVertexTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighborTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighborTest.java index 8c0f8da12335..7a6aaf133835 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighborTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/PropagatePropertyToNeighborTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexDeduplicationTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexDeduplicationTest.java index 448560176bf3..01f410f823f4 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexDeduplicationTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexDeduplicationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexToEdgeTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexToEdgeTest.java index 5d537a2acacc..345c2fd49c85 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexToEdgeTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/VertexToEdgeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValuesTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValuesTest.java index c845a6b057fc..f0fbc6ead945 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValuesTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/AccumulatePropagatedValuesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairsTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairsTest.java index 46d397ebbe87..fcf68c92e742 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairsTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildIdPropertyValuePairsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairsTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairsTest.java index ed55681b197d..4cc83a805333 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairsTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/BuildTargetVertexIdPropertyValuePairsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdgesTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdgesTest.java index 765964dce191..b535753a0322 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdgesTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateCartesianNeighborhoodEdgesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTripleTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTripleTest.java index cd6381494914..52785f5a3fd0 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTripleTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateEdgesFromTripleTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicatesTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicatesTest.java index ebe35fbf1b1d..08475a6ae918 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicatesTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateMappingFromMarkedDuplicatesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdgesTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdgesTest.java index ab6949cf67ac..278a350b9143 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdgesTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/CreateVertexFromEdgesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsListTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsListTest.java index 436888c56de3..3c64a1927306 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsListTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/GetPropertiesAsListTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroupTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroupTest.java index 2fef12c5bc02..d92a29c7c92e 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroupTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/MarkDuplicatesInGroupTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/NeighborhoodTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/NeighborhoodTest.java index 617e942137e6..28c39775d358 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/NeighborhoodTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/functions/NeighborhoodTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertexTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertexTest.java index 56dc2cb8d4f5..39f526427f7e 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertexTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/ExtractPropertyFromVertexTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/InvertEdgesTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/InvertEdgesTest.java index 6e234bdb07b2..155922efa32a 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/InvertEdgesTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/InvertEdgesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformationTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformationTest.java index f2e89913ce92..e4e7db8805b2 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformationTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/impl/PropertyTransformationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/AggregationExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/AggregationExample.java index 3e5a2ba89800..41724ea008b3 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/AggregationExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/AggregationExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/AggregateListOfNames.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/AggregateListOfNames.java index 32d920122053..ba95edfdeac4 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/AggregateListOfNames.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/AggregateListOfNames.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/package-info.java index 6a7cc24ca485..3f7e80688913 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/package-info.java index 7d200698ce55..50fe49e74d70 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/aggregation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/SocialNetworkGraph.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/SocialNetworkGraph.java index abf3583901fb..8487fe0d4471 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/SocialNetworkGraph.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/SocialNetworkGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/package-info.java index 5e608f4d9e0f..e2e24644edc4 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/common/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java index 86019659653a..bd71e7b029c0 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/package-info.java index 0427219f8452..4f1ec1663f19 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/DIMSpanExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/DIMSpanExample.java index 5b8ba31118af..5285a15a53d3 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/DIMSpanExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/DIMSpanExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/DIMSpanData.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/DIMSpanData.java index 1bc0d7b9ac14..4c2b03a46b4e 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/DIMSpanData.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/DIMSpanData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/package-info.java index 5be3e5bb4cfe..250ce850261d 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/data/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/package-info.java index c83f799fde24..babbdf39f2e8 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/frequentpattern/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/SchemaGraphExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/SchemaGraphExample.java index a11d12e5581f..e8cf52e263c2 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/SchemaGraphExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/SchemaGraphExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/package-info.java index d9c7c5adfd47..50af597cd8a8 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/grouping/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/KeyedGroupingExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/KeyedGroupingExample.java index 6f7107b03fd4..84819e9fb021 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/KeyedGroupingExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/KeyedGroupingExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/AgeRoundedTo10.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/AgeRoundedTo10.java index cebec271b37e..bf6d264bb66d 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/AgeRoundedTo10.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/AgeRoundedTo10.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/package-info.java index 16ceaa2820cc..a48ca51b6185 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/package-info.java index 6ce5b9ae21ff..fef6be432d08 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/keyedgrouping/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/GDLQueryExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/GDLQueryExample.java index 0995c1042a31..cfeba5915759 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/GDLQueryExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/GDLQueryExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/package-info.java index 94f630c61dda..57c0ee904965 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/patternmatch/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java index c034c617ee37..e6db7f955256 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/QuickstartData.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/QuickstartData.java index e3b0e822b2de..6f8a54ec6127 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/QuickstartData.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/QuickstartData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/package-info.java index 1a9809845a5b..4254d0d840a6 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/data/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/package-info.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/package-info.java index 481e77cd7e59..507747e37814 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/package-info.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/TemporalAggregationExample.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/TemporalAggregationExample.java index 7745cea0f44e..60df2c6a39a9 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/TemporalAggregationExample.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/TemporalAggregationExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/package-info.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/package-info.java index 4524d2a73271..754151c25a3b 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/package-info.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/aggregation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/TemporalCitiBikeGraph.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/TemporalCitiBikeGraph.java index 61baf03cf5b9..e7fcdc2c257c 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/TemporalCitiBikeGraph.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/TemporalCitiBikeGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/TransformLongPropertiesToDateTime.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/TransformLongPropertiesToDateTime.java index 22e9d6ad21bd..48374f75dd1c 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/TransformLongPropertiesToDateTime.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/TransformLongPropertiesToDateTime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/package-info.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/package-info.java index b472e5776b11..689db4082704 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/package-info.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/package-info.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/package-info.java index e4e0aea3aef1..8051aabb02c5 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/package-info.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/common/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/DifferenceExample.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/DifferenceExample.java index 7abddb473d07..7aea768d2297 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/DifferenceExample.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/DifferenceExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/package-info.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/package-info.java index 37ffcea3e0ed..d0c563bea064 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/package-info.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/difference/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/TemporalGroupingExample.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/TemporalGroupingExample.java index b98365a94cd9..c1e361caf9b9 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/TemporalGroupingExample.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/TemporalGroupingExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/package-info.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/package-info.java index a7c1ad9eb1d0..3074814b285a 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/package-info.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/grouping/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/SnapshotExample.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/SnapshotExample.java index 852c7f2b2e28..109ad0d81a52 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/SnapshotExample.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/SnapshotExample.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/package-info.java b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/package-info.java index 613ad7f92fc3..33ad7787a35a 100644 --- a/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/package-info.java +++ b/gradoop-examples/gradoop-examples-temporal/src/main/java/org/gradoop/examples/snapshot/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphs.java index 8081e3b3c0db..244d13b9f7be 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgMessenger.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgMessenger.java index 57c1080b074d..44038f093e4d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgMessenger.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgMessenger.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgUpdater.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgUpdater.java index ccb774f63085..a21238c4f586 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgUpdater.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/BtgUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/CollectGradoopIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/CollectGradoopIds.java index 22f0cc8ba10d..f6875b0dbdf0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/CollectGradoopIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/CollectGradoopIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/ComponentToNewBtgId.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/ComponentToNewBtgId.java index 8e0fde031dc5..027f7b3d86b4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/ComponentToNewBtgId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/ComponentToNewBtgId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/MasterData.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/MasterData.java index 2627de5390e8..2bfbc01b8726 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/MasterData.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/MasterData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/NewBtgGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/NewBtgGraphHead.java index 600e07961d14..e596135b34a3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/NewBtgGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/NewBtgGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgId.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgId.java index b3fe7d0e2bee..543cee0e062a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgIds.java index 13f2606c670f..461dc5f45ae5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/SetBtgIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TargetIdBtgId.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TargetIdBtgId.java index ff9f0b6c14ea..9787bf2d47f4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TargetIdBtgId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TargetIdBtgId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TransactionalData.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TransactionalData.java index 7360b29de3dd..a5e461e4bd8a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TransactionalData.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/TransactionalData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/package-info.java index 94ac7a26e810..d5cd38926dec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/package-info.java index 0ce5f3c8bd29..9a6434338005 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/btgs/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/TransactionalFSM.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/TransactionalFSM.java index 03a457597169..42ebb30d5100 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/TransactionalFSM.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/TransactionalFSM.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/DIMSpan.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/DIMSpan.java index 3aa6b40cf6f4..ebbb9179ecdf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/DIMSpan.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/DIMSpan.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/AlphabeticalLabelComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/AlphabeticalLabelComparator.java index f8ad195781de..abf2c0d4ec3f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/AlphabeticalLabelComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/AlphabeticalLabelComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSBranchComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSBranchComparator.java index b022e07b0d54..b0afe1c079e9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSBranchComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSBranchComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSCodeComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSCodeComparator.java index f47c64f1f903..401e90e538ba 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSCodeComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DFSCodeComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DirectedDFSBranchComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DirectedDFSBranchComparator.java index 22ded601a69c..7be130716609 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DirectedDFSBranchComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/DirectedDFSBranchComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/InverseProportionalLabelComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/InverseProportionalLabelComparator.java index 930948a66ec9..820013f8f31c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/InverseProportionalLabelComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/InverseProportionalLabelComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/LabelComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/LabelComparator.java index e2d1a542ceb4..e2ffe9c50e9d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/LabelComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/LabelComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/ProportionalLabelComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/ProportionalLabelComparator.java index 970cad783bc2..566968793384 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/ProportionalLabelComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/ProportionalLabelComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/UndirectedDFSBranchComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/UndirectedDFSBranchComparator.java index b880b482a3b2..c14a970bdd5a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/UndirectedDFSBranchComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/UndirectedDFSBranchComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/package-info.java index 4807a1fce828..87999129e5ef 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/comparison/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConfig.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConfig.java index 93d35b13d875..82ff5b5ffcaf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConfig.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConstants.java index 55156d5fef5f..53191c1a7acd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DIMSpanConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DataflowStep.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DataflowStep.java index b4550caef74a..28a5751015f0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DataflowStep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DataflowStep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DictionaryType.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DictionaryType.java index 8768051cbd4f..235acd26b536 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DictionaryType.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/DictionaryType.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/package-info.java index d354158ec82f..7359bdfcc122 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/config/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/DFSCodeToEPGMGraphTransaction.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/DFSCodeToEPGMGraphTransaction.java index de62029c7f37..d3fff4cda6e5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/DFSCodeToEPGMGraphTransaction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/DFSCodeToEPGMGraphTransaction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/EPGMGraphTransactionToLabeledGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/EPGMGraphTransactionToLabeledGraph.java index 1c7c4a1ba846..a4fc56186a98 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/EPGMGraphTransactionToLabeledGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/EPGMGraphTransactionToLabeledGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/package-info.java index faf8a26770fc..e4cda4e32bb4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/conversion/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CompressPattern.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CompressPattern.java index 329e9b9a3110..29f3418e44cd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CompressPattern.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CompressPattern.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CreateCollector.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CreateCollector.java index 9f065d2037b8..ba66f4b5f86f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CreateCollector.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/CreateCollector.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ExpandFrequentPatterns.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ExpandFrequentPatterns.java index da9178c533d2..33259ddc803d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ExpandFrequentPatterns.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ExpandFrequentPatterns.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/Frequent.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/Frequent.java index c4227f722795..b4420664e1a0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/Frequent.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/Frequent.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/GrowFrequentPatterns.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/GrowFrequentPatterns.java index c1d60b04e02c..4ccdacf663f5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/GrowFrequentPatterns.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/GrowFrequentPatterns.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/InitSingleEdgePatternEmbeddingsMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/InitSingleEdgePatternEmbeddingsMap.java index 8456736e0a02..b87ebe3db8c8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/InitSingleEdgePatternEmbeddingsMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/InitSingleEdgePatternEmbeddingsMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/IsFrequentPatternCollector.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/IsFrequentPatternCollector.java index d5da9fba360d..80ce6b0394b5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/IsFrequentPatternCollector.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/IsFrequentPatternCollector.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/NotObsolete.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/NotObsolete.java index 4dd9a57a6efb..3b6917fe5245 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/NotObsolete.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/NotObsolete.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ReportSupportedPatterns.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ReportSupportedPatterns.java index a250b4ec220e..360fbf01118a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ReportSupportedPatterns.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/ReportSupportedPatterns.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/VerifyPattern.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/VerifyPattern.java index a0de73f76f69..6e06803b408f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/VerifyPattern.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/VerifyPattern.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/package-info.java index ac1383b713e3..f30deba8ff63 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/mining/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/package-info.java index 61f37e620926..74ae966a9083 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/AggregateMultipleFunctions.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/AggregateMultipleFunctions.java index ba5b160bcdc2..04ccb0a1d3a7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/AggregateMultipleFunctions.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/AggregateMultipleFunctions.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/CreateDictionary.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/CreateDictionary.java index 7f7135272a20..492a75876982 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/CreateDictionary.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/CreateDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneEdges.java index 830bfbcc1a15..2ce58a836f8c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneVertices.java index bd0d1a55a151..9c7968f10465 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/EncodeAndPruneVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/MinFrequency.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/MinFrequency.java index 45469a06678c..47e6d4d8804b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/MinFrequency.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/MinFrequency.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/NotEmpty.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/NotEmpty.java index 828598d0f058..b5d2a4320cb2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/NotEmpty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/NotEmpty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportEdgeLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportEdgeLabels.java index 0749ab8ce1be..13ebeee42a9c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportEdgeLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportEdgeLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportVertexLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportVertexLabels.java index 4f2becd16ad5..40f4b52bfbbf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportVertexLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/ReportVertexLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/package-info.java index 40426d54193c..cfb144bb35b5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/functions/preprocessing/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/DirectedGSpanLogic.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/DirectedGSpanLogic.java index a3d4339426cb..1fa27bb5b9c0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/DirectedGSpanLogic.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/DirectedGSpanLogic.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogic.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogic.java index 58e7f39142df..e25cfe9f4b02 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogic.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogic.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogicBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogicBase.java index a996b198c044..cd3559dcf00a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogicBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/GSpanLogicBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/UndirectedGSpanLogic.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/UndirectedGSpanLogic.java index f817aeff7070..e995b18310fe 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/UndirectedGSpanLogic.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/UndirectedGSpanLogic.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/package-info.java index ae99147ed002..e0d5416ba8c0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/gspan/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/DFSCodeUtils.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/DFSCodeUtils.java index 2937582f0f04..0b19031caa7b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/DFSCodeUtils.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/DFSCodeUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtils.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtils.java index a27833190fa5..50d14e9ae1c5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtils.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtilsBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtilsBase.java index 1fd1a922c177..77c7d72fa702 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtilsBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/GraphUtilsBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtils.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtils.java index 3efce180a948..f7b83c8ff968 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtils.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtilsBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtilsBase.java index e0f5c84e7e56..659de1316de0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtilsBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SearchGraphUtilsBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/Simple16Compressor.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/Simple16Compressor.java index 68af2e7b8a4c..b11f99ad8b50 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/Simple16Compressor.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/Simple16Compressor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SortedSearchGraphUtils.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SortedSearchGraphUtils.java index 5062587e0ca4..f71711cfc100 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SortedSearchGraphUtils.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/SortedSearchGraphUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/UnsortedSearchGraphUtils.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/UnsortedSearchGraphUtils.java index 3a4303f6e2cb..2242f846c833 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/UnsortedSearchGraphUtils.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/UnsortedSearchGraphUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/package-info.java index 0e697f59270a..4ae4bc888ef2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/model/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/package-info.java index dbbe84d5f809..0a2c51cbd82f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/GraphWithPatternEmbeddingsMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/GraphWithPatternEmbeddingsMap.java index 8947ef1b0e2d..d5ef3bd1c930 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/GraphWithPatternEmbeddingsMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/GraphWithPatternEmbeddingsMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphIntString.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphIntString.java index 139daecc416b..1f6bfc304698 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphIntString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphIntString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphStringString.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphStringString.java index 4fae1df484cc..778b054ad786 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphStringString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/LabeledGraphStringString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/PatternEmbeddingsMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/PatternEmbeddingsMap.java index 093ad3d5e26c..1b0543ceb571 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/PatternEmbeddingsMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/PatternEmbeddingsMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/package-info.java index b017a74367f3..71b9ddbed47e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/dimspan/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/package-info.java index c589a61ebd36..6431dfa5f549 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/CategoryCharacteristicSubgraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/CategoryCharacteristicSubgraphs.java index 064cdff1ec3d..2c282161b312 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/CategoryCharacteristicSubgraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/CategoryCharacteristicSubgraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/ThinkLikeAnEmbeddingTFSM.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/ThinkLikeAnEmbeddingTFSM.java index f1e09b4f71d7..839b2d3f8bc2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/ThinkLikeAnEmbeddingTFSM.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/ThinkLikeAnEmbeddingTFSM.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/FSMConfig.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/FSMConfig.java index f56d35e6ab56..22fff8857ede 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/FSMConfig.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/FSMConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/TFSMConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/TFSMConstants.java index 9243f1493c57..ba00673e2b2b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/TFSMConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/TFSMConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/DropPropertiesAndGraphContainment.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/DropPropertiesAndGraphContainment.java index 6ecde39231af..ed9123093e8f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/DropPropertiesAndGraphContainment.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/DropPropertiesAndGraphContainment.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/EdgeLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/EdgeLabels.java index 4c6a8181cecb..021ed5fe3c9b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/EdgeLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/EdgeLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterEdgesByLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterEdgesByLabel.java index d16b2c59fcdf..4359650e57fe 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterEdgesByLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterEdgesByLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterVerticesByLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterVerticesByLabel.java index e156c2eca322..7712b3c96631 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterVerticesByLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/FilterVerticesByLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/NotEmpty.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/NotEmpty.java index c47f2170b0d2..e6c63a4e5717 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/NotEmpty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/NotEmpty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/SortedDictionary.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/SortedDictionary.java index cc3d8522b92e..50e11e6c3f04 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/SortedDictionary.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/SortedDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToDirectedAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToDirectedAdjacencyList.java index 4331b2e51a97..f3ee5a5e2d5c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToDirectedAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToDirectedAdjacencyList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToUndirectedAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToUndirectedAdjacencyList.java index 8ab8887761d9..a5151af73be4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToUndirectedAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/ToUndirectedAdjacencyList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/VertexLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/VertexLabels.java index 28dd04fd87af..f08f7328cf5c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/VertexLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/VertexLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/package-info.java index 0d41321bb407..081f81ca5c1b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/package-info.java index 81f62da90ae3..3f33ce3500c8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/common/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/package-info.java index 3eb823a0f647..d71c7be5156c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/ThinkLikeAnEmbeddingFSMBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/ThinkLikeAnEmbeddingFSMBase.java index 37add84e38a4..adbdaaa521da 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/ThinkLikeAnEmbeddingFSMBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/ThinkLikeAnEmbeddingFSMBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/TransactionalFSMBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/TransactionalFSMBase.java index 0dfb427f2427..6412df13c300 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/TransactionalFSMBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/TransactionalFSMBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java index fa4186236bea..3224c6dd7922 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/package-info.java index 0803eedd7182..904fb4519121 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSingleEdgeEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSingleEdgeEmbeddings.java index 4267b06c0b8f..a5795dbbe646 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSingleEdgeEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSingleEdgeEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphDecoder.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphDecoder.java index e0af77c32f41..59b22fefa062 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphDecoder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphOnly.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphOnly.java index 19d27dbb5e87..44aefee7af77 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphOnly.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSSubgraphOnly.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSWrapInSubgraphEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSWrapInSubgraphEmbeddings.java index c029a1a848ba..cb75fcb4bfb5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSWrapInSubgraphEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CCSWrapInSubgraphEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryEdgeLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryEdgeLabels.java index 5b09a08a9ad9..a47fac50b4ab 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryEdgeLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryEdgeLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequent.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequent.java index b5dc5cd4784d..648f0d556d99 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequent.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequent.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequentAndInteresting.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequentAndInteresting.java index 9d3251859024..9d8b4ba4ed78 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequentAndInteresting.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryFrequentAndInteresting.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java index d9b3b27dbe64..d8ed7abc85bf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryMinFrequencies.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryMinFrequencies.java index bd612e0bf5d8..22175c471c40 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryMinFrequencies.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryMinFrequencies.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryVertexLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryVertexLabels.java index 0abb26c2ea05..062b2cfc9253 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryVertexLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryVertexLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryWithCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryWithCount.java index 06e658b69a6c..65a02f432f51 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryWithCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryWithCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/GraphId.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/GraphId.java index e196328d5e73..7dae0b4de955 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/GraphId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/GraphId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsCharacteristic.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsCharacteristic.java index 8c07580a36b5..7438cc02b160 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsCharacteristic.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsCharacteristic.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsResult.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsResult.java index 91b208a8a945..c193c3e81b06 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsResult.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/IsResult.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/JoinEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/JoinEmbeddings.java index ed8f3d00380c..35f681d78836 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/JoinEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/JoinEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/LabelOnly.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/LabelOnly.java index 26748c401635..12b89c111a4d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/LabelOnly.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/LabelOnly.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MergeEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MergeEmbeddings.java index 95b83a9f3d27..6ad98a7c5fbc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MergeEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MergeEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinEdgeCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinEdgeCount.java index b5efd4d36f06..81ba4d1196b0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinEdgeCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinEdgeCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinFrequency.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinFrequency.java index ef146327e7f0..2dfb4d41c1b8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinFrequency.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/MinFrequency.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SingleEdgeEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SingleEdgeEmbeddings.java index c9ae61ea12ad..f4c28b2a39f5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SingleEdgeEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SingleEdgeEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SubgraphDecoder.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SubgraphDecoder.java index 2f64cf042770..007a919f4e8c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SubgraphDecoder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/SubgraphDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSingleEdgeEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSingleEdgeEmbeddings.java index caed9ffb929d..84dbb7a66a67 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSingleEdgeEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSingleEdgeEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphDecoder.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphDecoder.java index 8b67ee186936..4e5ab4b5cc8e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphDecoder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphOnly.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphOnly.java index e45002778901..f120cb4347ec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphOnly.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMSubgraphOnly.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMWrapInSubgraphEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMWrapInSubgraphEmbeddings.java index 2769234e70b6..b6a4bf3ef957 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMWrapInSubgraphEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/TFSMWrapInSubgraphEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToCCSGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToCCSGraph.java index c48a7f0232e5..614e9de477e7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToCCSGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToCCSGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToFSMGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToFSMGraph.java index 6f64bffd05ec..afa0758cb182 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToFSMGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToFSMGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToTFSMGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToTFSMGraph.java index 923537aa64ae..44e7b929446c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToTFSMGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/ToTFSMGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentEdgeLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentEdgeLabels.java index 3d7c92ce46c2..28794eb67115 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentEdgeLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentEdgeLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentVertexLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentVertexLabels.java index 4e301f0be10b..bc3a92da0c17 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentVertexLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/WithoutInfrequentVertexLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/package-info.java index e4d2d0973171..a711644cb39d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/Interestingness.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/Interestingness.java index bd31da2666c4..118ef127213f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/Interestingness.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/Interestingness.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/package-info.java index 422d2bda684a..20622652ca97 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/interestingness/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/package-info.java index 2f8559f726a0..c3e4a7f430e0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/CCSGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/CCSGraph.java index abb701106058..2411bb6bda09 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/CCSGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/CCSGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/Embedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/Embedding.java index bee1677e2873..3afafc031245 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/Embedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/Embedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMEdge.java index 9db6bd29d239..dd020086d037 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMGraph.java index 98364e03c5b1..7ee3fdc2551b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/FSMGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/TFSMGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/TFSMGraph.java index 99affc3723fe..8f161f6686fd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/TFSMGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/TFSMGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/package-info.java index 6ffdc8771bb7..be792e0ef6c4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/pojos/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraph.java index 4e6caa559652..71967d79ad1f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraphEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraphEmbeddings.java index 14198f962d45..3bf249319c26 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraphEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CCSSubgraphEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Categorizable.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Categorizable.java index 65ef6116a228..fe1087c4c821 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Categorizable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Categorizable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CategoryCountableLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CategoryCountableLabel.java index 6cea5c5083ba..e1a600f21994 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CategoryCountableLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/CategoryCountableLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Subgraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Subgraph.java index 706d41ce3c6e..94b405d859d3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Subgraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/Subgraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/SubgraphEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/SubgraphEmbeddings.java index 2227a2f80d79..a272f60208db 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/SubgraphEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/SubgraphEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraph.java index eaa4e7b4bd55..e13bd21b2b54 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraphEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraphEmbeddings.java index 9bc95519e006..455dbaf08a3c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraphEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/TFSMSubgraphEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/package-info.java index e80e9fc49745..161dda462342 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java index 288ea8f63a15..0c053729d241 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java index ff7e83d81d31..a5dc396b0ec8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java index fca687a1a91b..0ade49ce3310 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java index 1ac5909994e9..4ce56baab2c2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java index d0f2d95fae9f..ad276a76d78b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java index a0ed6f9bb6bd..da904cc067bd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java index 49194d8b39ba..fd915713cc0f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java index f961951c2ea4..099f9e5c3239 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalDirectedCCResultToTupleMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalDirectedCCResultToTupleMap.java index e6e687895d91..c20097dee686 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalDirectedCCResultToTupleMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalDirectedCCResultToTupleMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalUndirectedCCResultToTupleMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalUndirectedCCResultToTupleMap.java index e42c38df9896..527fb7d4080e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalUndirectedCCResultToTupleMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalUndirectedCCResultToTupleMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/package-info.java index aee7fdfdc553..95345238da64 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/package-info.java index d24223372510..b25604dfbbe6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java index 78ccc21f24fd..3dedbed73b15 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java index e6bc48af486b..4778b9949498 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java index bf1ab10f9763..cd42b39eea67 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java index 78e8492887fa..9c6a3c216b15 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongTargetIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongTargetIds.java index 45eacc302487..fa57d27c63ac 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongTargetIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongTargetIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java index 25967be77c47..1a7510c30a5a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/MapVertexIdComponentId.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/MapVertexIdComponentId.java index 5f5cbac6aba0..48f1715971a8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/MapVertexIdComponentId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/MapVertexIdComponentId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java index 81c517b77ea3..3ff37d9d8af8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/package-info.java index 4dd686e18b90..ff38cb6eea9f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/package-info.java index 83627b6c62b2..4c56518c94d4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java index 92e425d4e67e..29214248cc60 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java index ec138d5db258..c4f04684a0bd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java index 72482e781622..4927bb2b6f43 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java index de2ff9ed66a3..847b4d049e88 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java index a999758109d3..32bcc8810f9b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java index f5162a908986..f83680909627 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyEdgeWithLongValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyEdgeWithLongValue.java index f247fa64f6be..e24648b12964 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyEdgeWithLongValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyEdgeWithLongValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyVertexWithLongValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyVertexWithLongValue.java index f88ab412613a..3ff5c4fa023f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyVertexWithLongValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/LongTupleToGellyVertexWithLongValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java index bb7a12dc1348..48c581100e34 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java index 94d64c02e2c6..0d59aa8216f8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java index bec7579dbf32..b6de078d6954 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java index 010f9a395c2e..bbad6eea13d8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java index f4700314a139..54698cb3d849 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/package-info.java index eb615fdb668b..ae8ae1333705 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java index b80662da01a6..1ad4a1825702 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java index 0e8e276626d1..318c92e0f407 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HitsResultKeySelector.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HitsResultKeySelector.java index 6ac3f9124eb1..8556dae80341 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HitsResultKeySelector.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HitsResultKeySelector.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/package-info.java index b5032ebd1bd7..abd1c6dd67bc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/package-info.java index 025b04a34f43..7026631cab63 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java index feaf9f0e0399..c259651e252b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java index 1dff97ddc715..259e91bf56bf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java index cbeac2485b6d..4691369eb4e0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java index 88d6849eda23..0e5b70f11681 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java index 0a2658d13d60..d0e8c0f89197 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java index d3206daba03a..7a402a2192f4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/package-info.java index 0615e47c514f..ff30db08af91 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/package-info.java index d8f12fe9f6bc..b69aa7935b3b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/package-info.java index 6582d1a778e4..3e6681f51214 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java index b03620ae9b7a..5dcab39ae402 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankResultKey.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankResultKey.java index 95ed4c3a9d76..9f54cc4c0b9f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankResultKey.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankResultKey.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java index 989df2a93b82..3265fbf739a8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/package-info.java index 1be9ad08699b..b9c9357d1252 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/package-info.java index e6cd655f70b7..01f8372750ec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java index 1072767a046f..0829bd6ccf64 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java index f0b917238db2..79ce7ec76f92 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithEPGMVertexJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithEPGMVertexJoin.java index c5cd0a3b182c..a4b190c3b207 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithEPGMVertexJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithEPGMVertexJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithLongIdToGradoopIdJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithLongIdToGradoopIdJoin.java index a90b02855466..118842b8e379 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithLongIdToGradoopIdJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GellyVertexWithLongIdToGradoopIdJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedGellyEdgeLongIdsFlatMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedGellyEdgeLongIdsFlatMap.java index d919cad6c4c6..ff5d6c01284a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedGellyEdgeLongIdsFlatMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedGellyEdgeLongIdsFlatMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java index d5875c7230d9..ff87a4ba88e8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdToGellyVertexWithVCIValueMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdToGellyVertexWithVCIValueMap.java index 0f3e9e1dcd99..75ec8f514126 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdToGellyVertexWithVCIValueMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdToGellyVertexWithVCIValueMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdTupleToGellyEdgeWithLongValueJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdTupleToGellyEdgeWithLongValueJoin.java index c0fa6ebb69d2..f01fab3b279a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdTupleToGellyEdgeWithLongValueJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdTupleToGellyEdgeWithLongValueJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java index b51892e585a9..baa4e3246651 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/ReplaceTargetWithLongIdJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/ReplaceTargetWithLongIdJoin.java index 9f0f96c026bb..7859c0897fed 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/ReplaceTargetWithLongIdJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/ReplaceTargetWithLongIdJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIComputeFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIComputeFunction.java index 0d4d1acf03f2..fb1c7baa7aef 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIComputeFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIComputeFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIVertexValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIVertexValue.java index abbaeec5af31..d47f86b8c315 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIVertexValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VCIVertexValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java index da56d3a66f68..825a4cdccb87 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VisitedGellyEdgesWithLongIdToGradoopIdJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VisitedGellyEdgesWithLongIdToGradoopIdJoin.java index a48d59f0a24e..0bb1eeb8e1d9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VisitedGellyEdgesWithLongIdToGradoopIdJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VisitedGellyEdgesWithLongIdToGradoopIdJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/package-info.java index 728c1e8476c3..a391147cab28 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/package-info.java index b75e98fd2090..5d4da48bd7cc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java index 4110500e0d9e..3da438b5a4a2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java index 40a73293f9fb..8c7985bfcb84 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/package-info.java index 7b1104f35db7..ba95ee51451f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/package-info.java index a7d3f15f2785..c2ce03b93545 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java index 7cba1ef47373..f87a1bebc8ef 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/package-info.java index f6902652bd90..50c78479556f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java index 649048448a5c..f8debfa60dcf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java index c99a68c79855..36842ccbf7b6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/package-info.java index 350e026f5cc6..2db3b8eb125c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/package-info.java index c2b220b224d1..ca5ed72474d8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/package-info.java index 989ec0b96eb5..ac68f1c3ade2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSink.java index 764b1b40b186..bb0c89fce4b7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSource.java index 7196293fa520..f3d2d2f33fcd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/DataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSink.java index e99b4e47aea9..20cf9756bd7a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSource.java index 8f5d14b20039..b62e91802859 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/MetaDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ElementToPropertyMetaData.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ElementToPropertyMetaData.java index 0ac3bfb8d728..538db7b71632 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ElementToPropertyMetaData.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ElementToPropertyMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ReducePropertyMetaData.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ReducePropertyMetaData.java index 379c89746491..70c138d6a3d4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ReducePropertyMetaData.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/ReducePropertyMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/package-info.java index 0361b87c2f8b..32cc0719b8af 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/package-info.java index 63d1cc39d8c5..9d1fc47145c1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/metadata/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/package-info.java index 872164174a6c..66f8a842ac38 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/api/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java index 428c42d0beac..647f086d3b59 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java index d8d6ab017dcf..f56cc6af7da0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSink.java index c72a962e7a0e..61de0389c78d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSource.java index 711af3b77660..802959a361f3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToEdge.java index bb5f68d1bce1..c53309c8e382 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java index b0da2c3bb79d..15c16d655141 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToGraphHead.java index c65a69cbc3a9..5aadb317d034 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToVertex.java index 1cbd9b6e94bb..cb7443716dae 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/EdgeToCSVEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/EdgeToCSVEdge.java index e301753a80e6..f28216a06d3a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/EdgeToCSVEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/EdgeToCSVEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java index b478d80db331..ab5e9337002e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/ElementToCSV.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/GraphHeadToCSVGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/GraphHeadToCSVGraphHead.java index ffba5af62e23..f26bb94c7253 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/GraphHeadToCSVGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/GraphHeadToCSVGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/StringEscaper.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/StringEscaper.java index 3b9c60cfd45a..eff7d3d7070f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/StringEscaper.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/StringEscaper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/VertexToCSVVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/VertexToCSVVertex.java index a9baf7ccf653..55807b30694c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/VertexToCSVVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/VertexToCSVVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/package-info.java index 910735fb68b1..53a4e13f2174 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSink.java index 1cfcb755f3bc..6934ce8a725e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java index 4edb83f117da..aedd95919ace 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/IndexedCSVFileFormat.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/IndexedCSVFileFormat.java index 692ab7c436a1..cfc3b90846d0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/IndexedCSVFileFormat.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/IndexedCSVFileFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/MultipleFileOutputFormat.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/MultipleFileOutputFormat.java index 759382298433..83cedfeeb447 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/MultipleFileOutputFormat.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/MultipleFileOutputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/package-info.java index 4037bce583a8..a9c1433069e4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/package-info.java index e948c57a07df..d82c28d96b6b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaData.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaData.java index c374ae36578d..d395a51dec89 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaData.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataParser.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataParser.java index 7f197507a661..6501236bc62e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataParser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataParser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSink.java index e5d5fc3ad7b5..a17417231bca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSource.java index 503a1533667f..6e611f277f5d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/CSVMetaDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/package-info.java index a942be794533..13b2d69d55c8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/metadata/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/package-info.java index a536215b7889..81077419a552 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVEdge.java index 7809b9dc0bbf..a983b59b9108 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVElement.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVElement.java index 96e01edfc6ea..0e66ed68db61 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVElement.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVGraphHead.java index 021d92e595cc..ab4134be43fc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVVertex.java index a9318b781110..b31c4d4ecc33 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/CSVVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/package-info.java index 6ba4f015f108..6392c60d862f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/DOTDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/DOTDataSink.java index e4b5ea079fdb..e2b3ce570fca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/DOTDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/DOTDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/AbstractDotFileFormat.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/AbstractDotFileFormat.java index 6a51eda73839..be206bf314a6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/AbstractDotFileFormat.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/AbstractDotFileFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatHtml.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatHtml.java index 5226f73a13e6..375f56b1e57f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatHtml.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatHtml.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimple.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimple.java index c4b3bdf9ddd2..5b1db4246900 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/package-info.java index 629e6224fa26..73afa2fb1a8a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/package-info.java index 47a399d77432..8a322859dbe8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/dot/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSource.java index ff467a9ae670..ef0de0c7e3c7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSource.java index 5ea2909fa2ce..becc5a93c573 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportEdge.java index 226f41c3d162..9daf742021df 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportVertex.java index 6250e771cb18..78afacd3207e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateImportVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateLabeledImportVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateLabeledImportVertex.java index 8303fd91ae40..a5aaa266e64b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateLabeledImportVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/CreateLabeledImportVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/package-info.java index d302fe232d24..06f705822720 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/package-info.java index 9433b242b981..4d7b57b25657 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/edgelist/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLConsoleOutput.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLConsoleOutput.java index 70a4ea13cc02..43ddb4a98932 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLConsoleOutput.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLConsoleOutput.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLDataSink.java index 68435d7f78bb..f0ee24f4e199 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLEncoder.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLEncoder.java index 14b1f76456fe..73cabf6e8bb3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLEncoder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/GDLEncoder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/GraphTransactionsToGDL.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/GraphTransactionsToGDL.java index 199029e7854f..4135f1e26200 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/GraphTransactionsToGDL.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/GraphTransactionsToGDL.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/package-info.java index 6db5ab3c4b40..c19e425b74fb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/package-info.java index 16340843c281..22555c836b67 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/gdl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/GraphDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/GraphDataSource.java index e74b4c95340f..41c8f67b8eda 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/GraphDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/GraphDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitEdge.java index 50c26709691c..7c9b9677f9fc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitElement.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitElement.java index 537cd0e834e0..3b232740cd3f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitElement.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitVertex.java index d1cf08f0d485..ba9d344e4778 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/InitVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/UpdateEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/UpdateEdge.java index b2a0ece2dc85..7c4b58bb11a9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/UpdateEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/UpdateEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/package-info.java index a04ea58f8784..7ba950311c89 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/package-info.java index 9846b01cb0ff..9cff7cea2d9a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportEdge.java index 87780ca8e804..f8fbd03f53c6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportVertex.java index 9582a54f3802..887cf1f8ddc0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/ImportVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/package-info.java index 6407d18ed8da..ba58eea75f0f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/graph/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/ImageDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/ImageDataSink.java index c239a20a963a..a63c7c79a16c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/ImageDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/ImageDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/SourceCoordinateJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/SourceCoordinateJoin.java index db60f965ed17..ff7cc0ad8e59 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/SourceCoordinateJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/SourceCoordinateJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/TargetCoordinateJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/TargetCoordinateJoin.java index 72e8a75e5acf..ad640244013e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/TargetCoordinateJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/TargetCoordinateJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/ToCoordsTuple.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/ToCoordsTuple.java index 2a202c439b38..dda173ab46a6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/ToCoordsTuple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/ToCoordsTuple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexScaleMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexScaleMap.java index 5196e7b25ae8..17a3392871e6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexScaleMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexScaleMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexZoomMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexZoomMap.java index 6779d62db53f..1554bebb3d55 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexZoomMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/VertexZoomMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/package-info.java index fa8171a0dbca..f39fad7e2395 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/package-info.java index 06ba928725a5..4006655febfe 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/image/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/MtxDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/MtxDataSource.java index 1ed8cde7966c..ff0a75548273 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/MtxDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/MtxDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxEdgeToEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxEdgeToEdge.java index ff60a07c4225..139d131ac93e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxEdgeToEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxEdgeToEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxVertexToVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxVertexToVertex.java index f3b9ba15c807..a1b625a00bcf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxVertexToVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/MtxVertexToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/package-info.java index a70e897a6571..1e0699c00761 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/package-info.java index 4d2724127f46..0ffa9a9e5f68 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/mtx/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/package-info.java index bcb7913ecb04..8e38677d0746 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSink.java index 85d41e57d4e3..3542391cebbc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/package-info.java index 02cba58e8d77..82acb4ce1ce6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/statistics/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFBase.java index 34c438de9742..3c10dc69599d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFConstants.java index 89a0843961aa..3f8678862047 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSink.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSink.java index 15b9df44aa81..e4476596e93d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSink.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSource.java index 4ed2186ccfcd..de6ce4593fdf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/TLFDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/constants/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/constants/package-info.java index 4ab97313333b..5da90c318785 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/constants/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/constants/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/Dictionary.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/Dictionary.java index d0dd56264637..6ca528a49cda 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/Dictionary.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/Dictionary.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/DictionaryEntry.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/DictionaryEntry.java index 0e028cff392c..e2109ba922ee 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/DictionaryEntry.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/DictionaryEntry.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelDecoder.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelDecoder.java index 29eeffff74b3..a8c8e7189f1c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelDecoder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelList.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelList.java index 32b99568d883..a0d44416de09 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/EdgeLabelList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/ElementLabelEncoder.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/ElementLabelEncoder.java index 0c5ea11d3e1c..953c2e1f9797 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/ElementLabelEncoder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/ElementLabelEncoder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/GraphTransactionFromText.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/GraphTransactionFromText.java index f9cd669fc6c1..137a31d4ac23 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/GraphTransactionFromText.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/GraphTransactionFromText.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryFileFormat.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryFileFormat.java index f21bfe261ce1..272a13c9e7f7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryFileFormat.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryFileFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryMapGroupReducer.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryMapGroupReducer.java index 436b4b63087f..534caa5d268f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryMapGroupReducer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFDictionaryMapGroupReducer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFFileFormat.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFFileFormat.java index a7d3ef9790ac..3d0444e5250f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFFileFormat.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/TLFFileFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelDecoder.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelDecoder.java index 7c236297d019..e9e1ee2dec05 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelDecoder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelList.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelList.java index 7f67c85af2eb..6558c95f84ea 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/VertexLabelList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/package-info.java index 903f2eb9efca..5d522f2546b4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFInputFormat.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFInputFormat.java index 343db7b1122b..b23c8a23d939 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFInputFormat.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFRecordReader.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFRecordReader.java index b91f0aebb763..a06eae6b9351 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFRecordReader.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/TLFRecordReader.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/package-info.java index 07b0bf489036..7eb9cd41724d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/inputformats/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/package-info.java index f6632ce35761..b8b5426c05e2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/tlf/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraph.java index 46688ecab0ec..92175844009b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollection.java index fc02f68eda53..2bfb7a8c65cb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionFactory.java index d3fa1527cacf..fb30a897a2ab 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionOperators.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionOperators.java index 30bbf000249f..1d54f04e6e4e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionOperators.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphCollectionOperators.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java index d2bd082bd279..76c6787111df 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java index be1e1c1b57af..00a31b2252e6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/GraphCollectionOperators.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/GraphCollectionOperators.java index e68a2bb68c28..ffc9ac8a1f48 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/GraphCollectionOperators.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/GraphCollectionOperators.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java index 338d400d0127..0a6f4976f935 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/package-info.java index bbffda6a09d8..cc09add11047 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateDefaultValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateDefaultValue.java index e79982b0934f..163087e80903 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateDefaultValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateDefaultValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateFunction.java index 4741c7f1e8c5..dd0aa2751ddc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/AggregateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/EdgeAggregateFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/EdgeAggregateFunction.java index 889b6430ba76..5efd52596e0d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/EdgeAggregateFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/EdgeAggregateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/Function.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/Function.java index 860d40a62f33..07690d34873a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/Function.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/Function.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/GraphHeadReduceFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/GraphHeadReduceFunction.java index ae7c57f0f0da..abd705d46cbb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/GraphHeadReduceFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/GraphHeadReduceFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunction.java index 25ff8682d720..99a931536e8e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunctionWithDefaultValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunctionWithDefaultValue.java index f5ce538c406c..56ae90316f57 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunctionWithDefaultValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/KeyFunctionWithDefaultValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/TransformationFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/TransformationFunction.java index 6ae6230ccbee..71a949c3be2c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/TransformationFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/TransformationFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/VertexAggregateFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/VertexAggregateFunction.java index 9a9e630f4133..68344969fce9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/VertexAggregateFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/VertexAggregateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/package-info.java index 6df61dc4c286..b5487dafb736 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/BaseLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/BaseLayoutFactory.java index fd27290aec30..416fbe391dd0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/BaseLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/BaseLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayout.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayout.java index dc490b081011..084f65649b62 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayout.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayout.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayoutFactory.java index 5f41b1962918..076af79e1fbc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/GraphCollectionLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/Layout.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/Layout.java index 5936f5c3789a..6fab407ff387 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/Layout.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/Layout.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayout.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayout.java index 85402df88a79..e3b902b901d0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayout.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayout.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java index 6033dad2c9d6..a7bf918313a5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/package-info.java index 8a76292eb086..bd021369af7d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ApplicableUnaryBaseGraphToBaseGraphOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ApplicableUnaryBaseGraphToBaseGraphOperator.java index b23fb42dbf58..e2f1b12d3203 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ApplicableUnaryBaseGraphToBaseGraphOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ApplicableUnaryBaseGraphToBaseGraphOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToBaseGraphCollectionOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToBaseGraphCollectionOperator.java index 1536d0fe8136..040e3ecafcd2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToBaseGraphCollectionOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToBaseGraphCollectionOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToValueOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToValueOperator.java index f39f999f19c8..feee577b80ad 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToValueOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphCollectionToValueOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToBaseGraphOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToBaseGraphOperator.java index f92edaeefe97..e11c28a4807e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToBaseGraphOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToBaseGraphOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToValueOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToValueOperator.java index ddd13e490ebb..b7c7ed37ae2a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToValueOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/BinaryBaseGraphToValueOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphCollectionGenerator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphCollectionGenerator.java index f5ad98a6320d..0eaa0770f1ba 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphCollectionGenerator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphCollectionGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphGenerator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphGenerator.java index 688062d5aa50..88416f7e0690 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphGenerator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsGenerator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsGenerator.java index 9c1177883369..e54f2b8c24a4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsGenerator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsOperators.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsOperators.java index a0f026d4f85e..503c10db10b5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsOperators.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphTransactionsOperators.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphsToGraphOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphsToGraphOperator.java index 2c2cba748117..66e43e696d0c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphsToGraphOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/GraphsToGraphOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/Operator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/Operator.java index f20b010d8ce2..47c76abe1995 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/Operator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/Operator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ReducibleBinaryBaseGraphToBaseGraphOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ReducibleBinaryBaseGraphToBaseGraphOperator.java index 144f303d71c4..d747562dd2d5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ReducibleBinaryBaseGraphToBaseGraphOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/ReducibleBinaryBaseGraphToBaseGraphOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphCollectionOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphCollectionOperator.java index d838d85a1e50..c826b403e688 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphCollectionOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphCollectionOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphOperator.java index 31bb7d581f33..efb6b85ae884 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToBaseGraphOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToValueOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToValueOperator.java index d5032fd2b77a..f1e55b1acd9e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToValueOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphCollectionToValueOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphCollectionOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphCollectionOperator.java index a9b24226ca5e..4072e6339b71 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphCollectionOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphCollectionOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphOperator.java index 4fc43f7e677d..f52f9dc17742 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToBaseGraphOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToValueOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToValueOperator.java index 74e91c3dfaac..6d31aece56d3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToValueOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryBaseGraphToValueOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryCollectionToCollectionOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryCollectionToCollectionOperator.java index 1bf9065b1e26..d39bb0baeea4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryCollectionToCollectionOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryCollectionToCollectionOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToCollectionOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToCollectionOperator.java index bf40d135b940..93e5180b001d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToCollectionOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToCollectionOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToGraphOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToGraphOperator.java index 9412f84561ff..ba7c37929808 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToGraphOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToGraphOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToValueOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToValueOperator.java index 88733540dffc..2efb9cf78909 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToValueOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/UnaryGraphToValueOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/package-info.java index d9d3a58d6042..9c74d7c669b6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/operators/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/Countable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/Countable.java index 00405221c9fd..a5875a1ee294 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/Countable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/Countable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/package-info.java index f675d58f6250..a5b5c3cbe021 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/ElementIdComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/ElementIdComparator.java index 9d8b5e4b8d80..223e472890ef 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/ElementIdComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/ElementIdComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/package-info.java index 68d00951c6ea..4a67f2705901 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/comparators/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollection.java index eacc31f2f5b1..ea2e58167223 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactory.java index 00fe77debe03..7cccea770b94 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java index 29fa9da31cab..b74e076996f5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java index cdad3743041e..0fa08e2ef821 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/package-info.java index 66b59a554264..06f0b79f9642 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/And.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/And.java index c9868bfded3a..6b2acda967ff 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/And.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/And.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Equals.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Equals.java index c18dfd67d1ca..2bc22990ccb5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Equals.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Equals.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/False.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/False.java index b2128c9e82a6..4b0f7fd36187 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/False.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/False.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Not.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Not.java index 1d4f50a71724..9769a2b181f8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Not.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Not.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Or.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Or.java index 3931054aeede..e926430cb216 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Or.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/Or.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/True.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/True.java index e9f14e54f9f0..12d14f4aae45 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/True.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/True.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/package-info.java index 0c26c0713169..fa0340884e48 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/bool/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentGraphId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentGraphId.java index 801f8f0c4a9e..536c0257dfe4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentGraphId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentGraphId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentId.java index 94da5eb961d1..2eb9a5d5ddb7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByDifferentId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByLabel.java index 52d9344391eb..a3c5817a63b4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByProperty.java index ad260da1cb66..f77a0c9bc509 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySameId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySameId.java index 774bc933326b..aec7c2ca3e7f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySameId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySameId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySourceId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySourceId.java index 5bde343d4410..7e693f8e26cb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySourceId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/BySourceId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByTargetId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByTargetId.java index 0e69c095027a..b66339491506 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByTargetId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ByTargetId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Clone.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Clone.java index 6b8848fdfea3..75027d836c4f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Clone.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Clone.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeFromIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeFromIds.java index f690a07c4c20..859240a22c83 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeFromIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeFromIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeSourceUpdateJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeSourceUpdateJoin.java index e30e366e1341..c4bf4f20f5c8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeSourceUpdateJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeSourceUpdateJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeTargetUpdateJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeTargetUpdateJoin.java index 0ea6554e4122..3aa1a2e2156d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeTargetUpdateJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/EdgeTargetUpdateJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementIdUpdater.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementIdUpdater.java index edecd808d15c..573de4291201 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementIdUpdater.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementIdUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementsOfSelectedGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementsOfSelectedGraphs.java index d2270019ae7f..478f20ea3689 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementsOfSelectedGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ElementsOfSelectedGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ExpandGradoopIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ExpandGradoopIds.java index 308b655adfb6..c67fede6009f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ExpandGradoopIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ExpandGradoopIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementExpander.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementExpander.java index 35a956afc2d8..bc9876abf647 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementExpander.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementExpander.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementSet.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementSet.java index 1c829753ae28..08ae2b5e3b00 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementSet.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementSet.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementsHeadsToTransaction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementsHeadsToTransaction.java index feab917a827a..b99b8f56d483 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementsHeadsToTransaction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphElementsHeadsToTransaction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphVerticesEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphVerticesEdges.java index 43b0c424d5f1..059ec4f6e09a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphVerticesEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/GraphVerticesEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Id.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Id.java index f68a74f8c654..7dcc2fbb0e4a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Id.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Id.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdAsIdSet.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdAsIdSet.java index 5713885d37e6..7e555189810e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdAsIdSet.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdAsIdSet.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdInBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdInBroadcast.java index d6ca5e1ad4bc..f39c745af06f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdInBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdInBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdNotInBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdNotInBroadcast.java index d7885a195a5d..1bca87ef0dd3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdNotInBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdNotInBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdSetCombiner.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdSetCombiner.java index da9ba7b2f975..e6494e8b8274 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdSetCombiner.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/IdSetCombiner.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java index eab2a54fee40..b6ff2714575b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Label.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Label.java index 64c729dff4a1..04b19f56846d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Label.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Label.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelCombiner.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelCombiner.java index b7844f1b9837..857712d99e6f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelCombiner.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelCombiner.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsIn.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsIn.java index f98dfb03e511..43cb9eead87c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsIn.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsIn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/MergedGraphIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/MergedGraphIds.java index fe36ad83a685..d59e3ebee8a6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/MergedGraphIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/MergedGraphIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithNewId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithNewId.java index 24fa0f8638f8..76f1728e2a2c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithNewId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithNewId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithPropertyValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithPropertyValue.java index 107dda372411..437589a717be 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithPropertyValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairElementWithPropertyValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairTupleWithNewId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairTupleWithNewId.java index 63fb671698f8..00fd1925788d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairTupleWithNewId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PairTupleWithNewId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Properties.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Properties.java index 8ba9f93255f7..a003a25b1f14 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Properties.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Properties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java index 4e549d0d3b9a..c905f24894bc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java index 3506b263ad46..c0de2a213eeb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertySetter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertySetter.java index cd5ca972ae80..8eaeac75aa58 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertySetter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertySetter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RemoveProperties.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RemoveProperties.java index 0500f2ae8482..66f2446a033e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RemoveProperties.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RemoveProperties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabel.java index 6ffc4393595e..fdea4cb6c8b7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeys.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeys.java index 75ad9b8227d9..9c882e63933c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeys.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeys.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SetProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SetProperty.java index 36fe1dfbe17c..ad559cf40355 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SetProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SetProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SourceId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SourceId.java index 98a3f38a250c..225b46e16aaf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SourceId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/SourceId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TargetId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TargetId.java index 1edb82958645..8bed171ccee1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TargetId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TargetId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGellyEdgeWithNullValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGellyEdgeWithNullValue.java index a341ea5f5870..403f52b8e559 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGellyEdgeWithNullValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGellyEdgeWithNullValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGradoopIdSet.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGradoopIdSet.java index 18debda8afdd..e36e84299a2a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGradoopIdSet.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToGradoopIdSet.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToPropertyValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToPropertyValue.java index 2f94b027581d..417ef48b03a4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToPropertyValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/ToPropertyValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionEdges.java index 4a5b12862dba..806f1e3888e7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionFromSets.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionFromSets.java index b908814f8ef3..460723c28359 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionFromSets.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionFromSets.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionGraphHead.java index eb5b629355e8..31664ff85504 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionVertices.java index e2bb82e3a667..14b4f13c7d31 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/TransactionVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Tuple1WithId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Tuple1WithId.java index 1c98e770c09a..112b1529321a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Tuple1WithId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/Tuple1WithId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/VertexFromId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/VertexFromId.java index cfd15f5aad91..e3897b0d8fcd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/VertexFromId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/VertexFromId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/package-info.java index 6f28a3293828..93ed70a8d24e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunction.java index 83a57374396f..e16baef7d89b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/And.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/And.java index e2356312eaf0..af41b4d6428c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/And.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/And.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilter.java index ac98beebac55..e040edda8f66 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Not.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Not.java index c46c51f911c0..280cca7fac0f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Not.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Not.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Or.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Or.java index 39e7dc2a6fb6..968e9b2ff349 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Or.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/Or.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/package-info.java index 6ab8cde73fef..319607c3763d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/filters/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraph.java index 34dd28fda0c7..311a47342b07 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraphBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraphBroadcast.java index 0c91aa268eb2..ceff7386dcf5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraphBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/AddToGraphBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIdSet.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIdSet.java index c65dcc8e56bc..74479c1a57f4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIdSet.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIdSet.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIds.java index 9e9244769001..27b5a608de7b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/ExpandGraphsToIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphContainmentFilterBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphContainmentFilterBroadcast.java index 94c818614d68..1865d60dcd73 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphContainmentFilterBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphContainmentFilterBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphsContainmentFilterBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphsContainmentFilterBroadcast.java index bf5b02369b47..43d42db8da9d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphsContainmentFilterBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/GraphsContainmentFilterBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphs.java index 9c667dddf44d..0f9c408b1bef 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphsBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphsBroadcast.java index 587cadb27aa4..f2d10e45b027 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphsBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAllGraphsBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraph.java index 52ef9b21be7a..c4b8b66ac5be 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraphBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraphBroadcast.java index 87a92b474b27..6e5081f04d7f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraphBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InAnyGraphBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraph.java index 96a3573dee8b..833a4c7fe20f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphBroadcast.java index b8eb4c0bd0c7..2c35f2a5b2e5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphsBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphsBroadcast.java index de80fd5a657e..389b7af10695 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphsBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InGraphsBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InNoGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InNoGraph.java index 8bc21bed7206..89f415967946 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InNoGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/InNoGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphBroadcast.java index c4a920527c66..09bfc23874f8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphsBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphsBroadcast.java index 698dadadb245..6b836d439e50 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphsBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/NotInGraphsBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairGraphIdWithElementId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairGraphIdWithElementId.java index af78b8bbf474..dbe5630cd504 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairGraphIdWithElementId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairGraphIdWithElementId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairVertexWithGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairVertexWithGraphs.java index 0758766f369f..09b9d34584bb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairVertexWithGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/PairVertexWithGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/package-info.java index 8767d80468fc..67ff8e7c2acd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/graphcontainment/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/package-info.java index 0432b90e83a2..37c341ad4fae 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ObjectTo1.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ObjectTo1.java index 600333bab7b5..eb885a7a993b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ObjectTo1.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ObjectTo1.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To0.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To0.java index 163db73709bb..213f00cf241c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To0.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To0.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To1.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To1.java index d663dc1fb0f0..bdecaad5a1e8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To1.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project2To1.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0.java index dc713880c3e5..d36c6d48a8a3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0And1.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0And1.java index 20d53425b6d8..bd6c39d65d30 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0And1.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project3To0And1.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To0And1.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To0And1.java index 1ba7d5b7a265..ef1f249137d2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To0And1.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To0And1.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To1And2And3.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To1And2And3.java index a804cc9a990a..146941035d07 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To1And2And3.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Project4To1And2And3.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/SwitchPair.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/SwitchPair.java index 1c4084fb990f..e7d2334e06bf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/SwitchPair.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/SwitchPair.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ToIdWithLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ToIdWithLabel.java index a7b577e3d5f0..d1a693b06413 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ToIdWithLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ToIdWithLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Tuple2ToWithCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Tuple2ToWithCount.java index 36668f8b20fe..44618bacb242 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Tuple2ToWithCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Tuple2ToWithCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of2.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of2.java index e9ec83294933..4421feb8e90e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of2.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of2.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of3.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of3.java index 9223b611d8d5..4c1451fccf91 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of3.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of3.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of4.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of4.java index 60ef836f580b..91c40b530097 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of4.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value0Of4.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of2.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of2.java index 2da6531f8bb8..daa34c8d4ff0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of2.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of2.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of3.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of3.java index e59541b3ee86..8325d42ef543 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of3.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value1Of3.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value2Of3.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value2Of3.java index 3758c42ae07d..345f937af33c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value2Of3.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/Value2Of3.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOf1.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOf1.java index edf18050685f..639d8d7373e3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOf1.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOf1.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOfWithCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOfWithCount.java index f67bbdf3477c..fbccd9d1fe54 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOfWithCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/ValueOfWithCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/package-info.java index c302b6c4dbd2..f32450bca533 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/tuple/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/AddCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/AddCount.java index 58b75e760c4b..d0360ca22826 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/AddCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/AddCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Cast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Cast.java index 8eb8f2ed9554..a3de030a84ee 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Cast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Cast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Duplicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Duplicate.java index 11dc98b5a366..9cf12ede6acf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Duplicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Duplicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/First.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/First.java index 60f210ed7b2d..77249ef631e8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/First.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/First.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/IsInstance.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/IsInstance.java index ad725273557d..72c95594e1c7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/IsInstance.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/IsInstance.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSide.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSide.java index b78fd6a6d926..a64f7e3352ef 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSide.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSide.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSideWithRightGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSideWithRightGraphs.java index 2a4b57fb54dc..4853213e7f54 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSideWithRightGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftSideWithRightGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftWhenRightIsNull.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftWhenRightIsNull.java index 444bc2a3cf21..27d256e924cd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftWhenRightIsNull.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/LeftWhenRightIsNull.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/OneSideEmpty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/OneSideEmpty.java index ffaaf11c0e56..4c9004656800 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/OneSideEmpty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/OneSideEmpty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSide.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSide.java index 5399a1e05d6f..dd7e793892d9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSide.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSide.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSideWithLeftGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSideWithLeftGraphs.java index ddd69eeec7a2..ba78ee8608d2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSideWithLeftGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/RightSideWithLeftGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/SumCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/SumCount.java index 194c5167d406..3fdbfb1402be 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/SumCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/SumCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Superstep.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Superstep.java index 2cd3e483cb40..afc73d7b3167 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Superstep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/Superstep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/package-info.java index 1f420f1d5a02..c8ae5cc79568 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/utils/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/BaseFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/BaseFactory.java index 6e34a2bfea8e..866a3b4a2ebe 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/BaseFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/BaseFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/package-info.java index d7f1c10186bd..a8dd826e2495 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/common/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEBaseFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEBaseFactory.java index 8a9f0029e6a5..2d395239c44a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEBaseFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEBaseFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactory.java index 652b18a791be..efcfd485de47 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java index 22b2d653f4c6..de764708b497 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVELayout.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVELayout.java index 848d4e94dc64..eae0de537ae6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVELayout.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVELayout.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactory.java index 6d9d5e26f511..f2bb8e42bf22 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactory.java index 73a13e936567..134cd088bbe4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java index 8bcfd2eabef3..8ec540da69cb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/package-info.java index 80980ec7634b..357072b800fb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/package-info.java index 6e53a0a20170..b5edd3bda52d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayout.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayout.java index 4a334f5101d5..83bda1bf1db8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayout.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayout.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactory.java index 661b696d1053..d1eb65c9c0fb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/package-info.java index 9a4231ccfc19..3e2167c4938c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/GraphTransaction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/GraphTransaction.java index 0ef96afbe50d..827ee32b6bc5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/GraphTransaction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/GraphTransaction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/package-info.java index 5bd7ac51b68e..69cc1b75b38b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/transactional/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/Aggregation.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/Aggregation.java index dd94c36a11ce..b9e59f0e3947 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/Aggregation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/Aggregation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregation.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregation.java index 48b34388d4d5..21a3b863427e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateElements.java index cb45beff2169..fd333601225c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateTransactions.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateTransactions.java index c90be6b48cc4..336cd63f1200 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateTransactions.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateTransactions.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateUtil.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateUtil.java index fd10120497d9..b7eff19f4fc7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateUtil.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/AggregateUtil.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/ApplyAggregateElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/ApplyAggregateElements.java index af4e77d23a6d..1f22c19cecb4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/ApplyAggregateElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/ApplyAggregateElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/BaseAggregateFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/BaseAggregateFunction.java index 3f0112e3c2dd..99ac9b1716d0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/BaseAggregateFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/BaseAggregateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionAggregates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionAggregates.java index 2369984fefdd..41ab5ca82cf5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionAggregates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionAggregates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionApplyAggregates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionApplyAggregates.java index b11de00a1048..1369a27dfe4d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionApplyAggregates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/CombinePartitionApplyAggregates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperties.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperties.java index d7613e19f318..bf330fd96f67 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperties.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperty.java index 250d8c12e43c..d97d17be7adc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SetAggregateProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/Average.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/Average.java index db73e9930c96..13f83096f9d2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/Average.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/Average.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageEdgeProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageEdgeProperty.java index b2d53ef20c23..2ec68ad7f5d7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageEdgeProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageEdgeProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageProperty.java index db22a61a74ec..69b3e9787b65 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageVertexProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageVertexProperty.java index 6e4e66c15fbf..b72528e2f9c7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageVertexProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AverageVertexProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/package-info.java index 299e3e9f1e45..79a11666adcc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/Or.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/Or.java index 10f09f095362..12f0ebf32759 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/Or.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/Or.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/package-info.java index 2ccf9935afb4..2442c5f9f88e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/bool/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasEdgeLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasEdgeLabel.java index 5759d40469bc..19298df4d011 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasEdgeLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasEdgeLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasLabel.java index 95757df55796..5cb7e4e140a5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasVertexLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasVertexLabel.java index 6f28d514e1fa..11c19a3b8214 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasVertexLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/HasVertexLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/package-info.java index 86fc5b06b655..db27d499ed34 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/containment/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/Count.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/Count.java index 9671db5b822c..552cd334bb58 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/Count.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/Count.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/EdgeCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/EdgeCount.java index e52681373f2b..48b1d3920358 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/EdgeCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/EdgeCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/VertexCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/VertexCount.java index 9bd8b580c86f..b6f1c837b42e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/VertexCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/VertexCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/package-info.java index 29f664c709c2..9eb615f3afec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/count/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java index 93c9b79970a8..eaaba7a92cdd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/Max.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxEdgeProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxEdgeProperty.java index 0ccb4c6cc0ce..dde3ae32d3e7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxEdgeProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxEdgeProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxProperty.java index daac5f73ec8f..eb1ad7b6d628 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxVertexProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxVertexProperty.java index e8e05872ab75..5082e3f36f30 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxVertexProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxVertexProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/package-info.java index 8a11609086e6..8368ccaa131d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java index ecb36623763c..a6e5ed9bbe12 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/Min.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinEdgeProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinEdgeProperty.java index 678e98d66efc..639a2c672fad 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinEdgeProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinEdgeProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinProperty.java index 0628add6268c..53cbfe703ecf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinVertexProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinVertexProperty.java index 39c646d7a613..4840566bc1bf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinVertexProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinVertexProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/package-info.java index a82bee0715be..bd9530850dcf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/package-info.java index dc2e3ded0b5d..5315848b6201 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/Sum.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/Sum.java index d0a94aeef95d..36305a2c046c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/Sum.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/Sum.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumEdgeProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumEdgeProperty.java index da3be56e45d6..fc1e645351f3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumEdgeProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumEdgeProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumProperty.java index be3a33a2b336..a90fd3c6dcbf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumVertexProperty.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumVertexProperty.java index 221487e73c68..761173c64c06 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumVertexProperty.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/SumVertexProperty.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/package-info.java index b423de3eb08b..d7f5a5fcfb30 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/functions/sum/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/package-info.java index cb9ad90bca32..82919e7b2d69 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/aggregation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionToCollectionOperatorBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionToCollectionOperatorBase.java index 2a621307f0f1..41a09141d614 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionToCollectionOperatorBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionToCollectionOperatorBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/SetOperatorBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/SetOperatorBase.java index d77c84742047..cbf94e22d521 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/SetOperatorBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/SetOperatorBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/LeftJoin0OfTuple2.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/LeftJoin0OfTuple2.java index cb5e6b365916..bd7102f2735a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/LeftJoin0OfTuple2.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/LeftJoin0OfTuple2.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/package-info.java index 2ef08012ab9b..c358c571da0a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/package-info.java index e49005949ccd..7f3f72fd1df0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/base/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/Cloning.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/Cloning.java index d14b5f2e09c5..3548d53a7bf2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/Cloning.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/Cloning.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/ElementGraphUpdater.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/ElementGraphUpdater.java index 078bcaba0af0..635700977cb4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/ElementGraphUpdater.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/ElementGraphUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/Value0Of2ToId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/Value0Of2ToId.java index 39430a15322d..1d5c65d08a0b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/Value0Of2ToId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/Value0Of2ToId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/package-info.java index a387ea22e89a..95ebc822537a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/package-info.java index a8f746670dc2..39600c306bca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/cloning/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/Combination.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/Combination.java index 0103adebd062..d2571f02ae66 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/Combination.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/Combination.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/ReduceCombination.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/ReduceCombination.java index 0b3567b399f8..0338df85fcf2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/ReduceCombination.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/ReduceCombination.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/package-info.java index e38cce84de52..645b859c756e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/combination/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/Count.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/Count.java index 506b90cbb03a..df6c88951478 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/Count.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/Count.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple1With1L.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple1With1L.java index 84ca559ddeb6..dd6ae79c592f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple1With1L.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple1With1L.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2FromTupleWithObjectAnd1L.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2FromTupleWithObjectAnd1L.java index c40015dc6730..533d16d2f853 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2FromTupleWithObjectAnd1L.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2FromTupleWithObjectAnd1L.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2WithObjectAnd1L.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2WithObjectAnd1L.java index 03f6531a05d3..d3b3b8d59e66 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2WithObjectAnd1L.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/Tuple2WithObjectAnd1L.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/package-info.java index 15a6eb11def9..9625782f45f6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/package-info.java index a6e7eedc5fb5..cda7755d62b1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/count/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/Difference.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/Difference.java index 59d9b7110875..5ce5e9afc842 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/Difference.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/Difference.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/DifferenceBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/DifferenceBroadcast.java index e4302b97a7b4..68b54fd59d8e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/DifferenceBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/DifferenceBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/CreateTuple2WithLong.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/CreateTuple2WithLong.java index f86eaccf43fe..2b33d52323eb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/CreateTuple2WithLong.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/CreateTuple2WithLong.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/IdOf0InTuple2.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/IdOf0InTuple2.java index d39b76ab6b20..ea368414c43c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/IdOf0InTuple2.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/IdOf0InTuple2.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/RemoveCut.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/RemoveCut.java index 1b561461a68e..2049b47ddfca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/RemoveCut.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/RemoveCut.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/package-info.java index 0defc16c0456..1ef735db3c59 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/package-info.java index 6b606d2fa7c1..6091b0ad4433 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/difference/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctById.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctById.java index 2ce91c4ac7c1..68fcbd9b6268 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctById.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctById.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphism.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphism.java index 2d7fd4e201f6..262040ff3448 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphism.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphism.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphism.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphism.java index a866c2fa020e..92da580a2e02 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphism.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphism.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/CountGraphHeads.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/CountGraphHeads.java index 34f71bc2059d..b5c50b760ca6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/CountGraphHeads.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/CountGraphHeads.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/FirstGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/FirstGraphHead.java index 07474918815a..d43bc340ca65 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/FirstGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/FirstGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/GraphHeadGroup.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/GraphHeadGroup.java index 51e10af91b8e..7ade72e83820 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/GraphHeadGroup.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/GraphHeadGroup.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/IdFromGraphHeadString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/IdFromGraphHeadString.java index fb0579b5739b..910b40c88388 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/IdFromGraphHeadString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/IdFromGraphHeadString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/package-info.java index 86a121f7ea26..a10a7f9d8fe0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/package-info.java index 78aba6d758a9..17d4dbe30ced 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/distinction/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEquality.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEquality.java index 925d47deacda..3454d2f58c1a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEquality.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEquality.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEqualityByGraphIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEqualityByGraphIds.java index ea3da967951d..a10b92cc76d8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEqualityByGraphIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/CollectionEqualityByGraphIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/GraphEquality.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/GraphEquality.java index 0198349d349f..bebb837394ae 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/GraphEquality.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/GraphEquality.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/package-info.java index a64fb4a5d68d..585fdced4baf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/equality/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/Exclusion.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/Exclusion.java index 3c96e0dab6b1..d3c41c6a4993 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/Exclusion.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/Exclusion.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/ReduceExclusion.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/ReduceExclusion.java index 075536e4360a..9d96a4bb6083 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/ReduceExclusion.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/ReduceExclusion.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/package-info.java index ec2e806119ec..88c9c25c2e19 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/exclusion/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/AddNewIdToDuplicatedEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/AddNewIdToDuplicatedEdge.java index 83c5789069a8..31b6bb04bf31 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/AddNewIdToDuplicatedEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/AddNewIdToDuplicatedEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusion.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusion.java index 67d791394519..2b97d2510436 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusion.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusion.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupAssociateOldVerticesWithNewIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupAssociateOldVerticesWithNewIds.java index d819968bc4f3..925b42a70b17 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupAssociateOldVerticesWithNewIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupAssociateOldVerticesWithNewIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupGraphHeadToVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupGraphHeadToVertex.java index 5bd5c290f78e..9051d0135105 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupGraphHeadToVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CoGroupGraphHeadToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CreateFusedVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CreateFusedVertex.java index 5456eb3b4e73..d19a12801b5b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CreateFusedVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/CreateFusedVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FilterSubgraphEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FilterSubgraphEdges.java index 934da1cfa542..4615c81118e0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FilterSubgraphEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FilterSubgraphEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FlatJoinSourceEdgeReference.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FlatJoinSourceEdgeReference.java index 564109a6b418..2a42d87203b4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FlatJoinSourceEdgeReference.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/FlatJoinSourceEdgeReference.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/LeftElementId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/LeftElementId.java index 1183a9736f5a..a52a63d023f2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/LeftElementId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/LeftElementId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapFunctionAddGraphElementToGraph2.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapFunctionAddGraphElementToGraph2.java index 637c81e4ffaf..02be459262cd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapFunctionAddGraphElementToGraph2.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapFunctionAddGraphElementToGraph2.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapGraphHeadForNewGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapGraphHeadForNewGraph.java index 93b84c29ae38..e52202f0fc7f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapGraphHeadForNewGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapGraphHeadForNewGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVertexToPairWithGraphId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVertexToPairWithGraphId.java index 6052da98d921..4b06cd625c9a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVertexToPairWithGraphId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVertexToPairWithGraphId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVerticesAsTuplesWithNullId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVerticesAsTuplesWithNullId.java index fd882e2a0010..296e7cc374af 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVerticesAsTuplesWithNullId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/MapVerticesAsTuplesWithNullId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/UpdateEdgesThoughToBeFusedVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/UpdateEdgesThoughToBeFusedVertices.java index 350e6527cd08..853cd433e50f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/UpdateEdgesThoughToBeFusedVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/UpdateEdgesThoughToBeFusedVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/package-info.java index 846d56ad8062..4df159ddd0a9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/package-info.java index 13f2befd92f9..36b4fa56ed3a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/fusion/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/Grouping.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/Grouping.java index 277028f295a5..4d7fd6e5d34e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/Grouping.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/Grouping.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombine.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombine.java index 7a0816c3f43c..2cf7de9ffb4d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombine.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombine.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduce.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduce.java index aaf8a250a87f..7bae710730f3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduce.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduce.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingStrategy.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingStrategy.java index 3217756710bb..0358b7d81ea6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingStrategy.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/GroupingStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildBase.java index a20c5b4c07e8..beebd9c9e81f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildEdgeGroupItem.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildEdgeGroupItem.java index 4115bd125737..3e7cfde45955 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildEdgeGroupItem.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildEdgeGroupItem.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildGroupItemBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildGroupItemBase.java index ee03b4e5658e..1d8856655fe3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildGroupItemBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildGroupItemBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperEdge.java index 18cd2f5833e1..0c12d2f15394 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperVertex.java index 5f50d195b887..0985d359003d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildSuperVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexGroupItem.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexGroupItem.java index 11a28d764f01..6e51d0d1e241 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexGroupItem.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexGroupItem.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertex.java index 3f8891564177..5a2990d96bea 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertexBC.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertexBC.java index 80fedd49ede5..5074ee86d061 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertexBC.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/BuildVertexWithSuperVertexBC.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineEdgeGroupItems.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineEdgeGroupItems.java index 24788494c816..052906c00ebe 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineEdgeGroupItems.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineEdgeGroupItems.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineVertexGroupItems.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineVertexGroupItems.java index 03d4b1523070..56204ad1f4e7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineVertexGroupItems.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/CombineVertexGroupItems.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterRegularVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterRegularVertices.java index 42570b40cc1c..03b34e1f562b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterRegularVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterRegularVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterSuperVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterSuperVertices.java index b1ffdab7d232..de020982a232 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterSuperVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/FilterSuperVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/LabelGroupFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/LabelGroupFilter.java index 78c3a1e559d8..8321099aaf6a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/LabelGroupFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/LabelGroupFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceEdgeGroupItems.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceEdgeGroupItems.java index e14e82120514..e6ba893c8770 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceEdgeGroupItems.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceEdgeGroupItems.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItemBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItemBase.java index 4372c417cdc4..bedc7722b36a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItemBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItemBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItems.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItems.java index f70d369f6ddc..e7ed6b2dda08 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItems.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/ReduceVertexGroupItems.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/SetVertexAsSuperVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/SetVertexAsSuperVertex.java index c3b39dfba8fa..41fed1f394b4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/SetVertexAsSuperVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/SetVertexAsSuperVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/TransposeVertexGroupItems.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/TransposeVertexGroupItems.java index 94caec968458..83ecf5f98819 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/TransposeVertexGroupItems.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/TransposeVertexGroupItems.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/UpdateEdgeGroupItem.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/UpdateEdgeGroupItem.java index 1a7bc0609a76..0cb5127d342f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/UpdateEdgeGroupItem.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/UpdateEdgeGroupItem.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/package-info.java index 51df98f6b9c3..0a9facd3cca0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/package-info.java index 7ac56c9e24e7..af13e3ad7bec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/EdgeGroupItem.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/EdgeGroupItem.java index 6c04fb0b5ca9..579a3d56e94e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/EdgeGroupItem.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/EdgeGroupItem.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/GroupItem.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/GroupItem.java index 84ba0b9aa160..8a20eabb5c4a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/GroupItem.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/GroupItem.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/LabelGroup.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/LabelGroup.java index 156b9f6d6482..1c03ee326633 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/LabelGroup.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/LabelGroup.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexGroupItem.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexGroupItem.java index 47905ccd46c4..83427751fd96 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexGroupItem.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexGroupItem.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexWithSuperVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexWithSuperVertex.java index 4975562966af..3cef10c4c2e9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexWithSuperVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/VertexWithSuperVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/package-info.java index 1d3bf9b2fc95..716ba49919d3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/grouping/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/Intersection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/Intersection.java index 4d068935c015..d76966997e3f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/Intersection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/Intersection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/IntersectionBroadcast.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/IntersectionBroadcast.java index 292741e02a87..7117af4d2f48 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/IntersectionBroadcast.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/IntersectionBroadcast.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/GroupCountEquals.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/GroupCountEquals.java index c5b3d2f992bc..623b769cadb4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/GroupCountEquals.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/GroupCountEquals.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/package-info.java index 12ba416f7cfb..72278ba6dbb7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/package-info.java index b47f4cc35efa..a008836ea52d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/intersection/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/GroupingKeys.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/GroupingKeys.java index 1ecfaaea03cc..7248035f0c9b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/GroupingKeys.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/GroupingKeys.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGrouping.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGrouping.java index f27f2625bde1..fdb681d726d2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGrouping.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGrouping.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGroupingUtils.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGroupingUtils.java index bdc812ddc246..cc08a9a242d3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGroupingUtils.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/KeyedGroupingUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperEdgeFromTuple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperEdgeFromTuple.java index f81845fe95e1..7021dd9a7e10 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperEdgeFromTuple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperEdgeFromTuple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperElementFromTuple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperElementFromTuple.java index a4d93dd5146e..c5bfa7405463 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperElementFromTuple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperElementFromTuple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperVertexFromTuple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperVertexFromTuple.java index 7b189ae4130a..b64dffd4be82 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperVertexFromTuple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildSuperVertexFromTuple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromEdges.java index 1b2e73d6b7b4..206c7de5065a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromElements.java index e5bec526e704..f65c6325dac8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromVertices.java index 9da20a254e10..af456eb038c4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/BuildTuplesFromVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/FilterSuperVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/FilterSuperVertices.java index 13577352d205..9fdf5ff3cfdd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/FilterSuperVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/FilterSuperVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/GroupingConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/GroupingConstants.java index 0fc51e17a6fa..606c981d320c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/GroupingConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/GroupingConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceEdgeTuples.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceEdgeTuples.java index fdc128125e3a..3e076e60fe37 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceEdgeTuples.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceEdgeTuples.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceElementTuples.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceElementTuples.java index ddd14c867957..9fc36a9233f5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceElementTuples.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceElementTuples.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceVertexTuples.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceVertexTuples.java index 4370fd357a40..4d2cc9dfb242 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceVertexTuples.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/ReduceVertexTuples.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/UpdateIdField.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/UpdateIdField.java index 9716b026e689..1b991dcee5b5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/UpdateIdField.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/UpdateIdField.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/package-info.java index cc5ee3da73b4..5c45e22d5d9f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunction.java index 2d12cb11a9ba..3514548b6bda 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunctionWithDefaultValues.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunctionWithDefaultValues.java index 6b476001c067..bbc9fc943773 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunctionWithDefaultValues.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/CompositeKeyFunctionWithDefaultValues.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/ConstantKeyFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/ConstantKeyFunction.java index 64546acc92c9..274c271eb022 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/ConstantKeyFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/ConstantKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelKeyFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelKeyFunction.java index f313ce66db8a..b77150f9032a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelKeyFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/PropertyKeyFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/PropertyKeyFunction.java index 886d12263aab..dba3aa333309 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/PropertyKeyFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/PropertyKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/package-info.java index a701a6ce66e5..eceeec1314f0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/AggregatorWrapperWithValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/AggregatorWrapperWithValue.java index 556b846f8da5..ca654484e237 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/AggregatorWrapperWithValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/AggregatorWrapperWithValue.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificAggregatorWrapper.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificAggregatorWrapper.java index d864c2c3b358..00e286baa3dc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificAggregatorWrapper.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificAggregatorWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificKeyFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificKeyFunction.java index 4572e7f1364e..bd213d9777a5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificKeyFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/LabelSpecificKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/UnlabeledGroupAggregatorWrapper.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/UnlabeledGroupAggregatorWrapper.java index 342e017c0769..891fd212c569 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/UnlabeledGroupAggregatorWrapper.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/UnlabeledGroupAggregatorWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/package-info.java index ebb5f118c9b4..039d2feaf11f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/labelspecific/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/package-info.java index b929ece6f420..0c6b000c4b5a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/keyedgrouping/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouter.java index 3339dde4ed11..7eec106e2afa 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CombiLayouter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CombiLayouter.java index e6fc5965dbba..038b8d892fa3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CombiLayouter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/CombiLayouter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouter.java index 97fe06d49ae6..409bee7d0e03 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouter.java index d96492256b2a..5324d947478e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithm.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithm.java index f03f8ca867e1..00b504273f36 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithm.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouter.java index f8cdadb1a3d5..e81a41c7bf74 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouter.java index 15fbedbbfc04..e58373a58ade 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionsFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionsFunction.java index aa3c5f9af347..3c48b3d93bb7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionsFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionsFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapper.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapper.java index dac3170e6f98..1476ff571b5a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapper.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdater.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdater.java index e5024ab620bf..504d7269e2f7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdater.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunction.java index ca0ea4551423..832aa8dbcd69 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunction.java index 78498da539e3..ce6fd0ffe18d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdMapper.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdMapper.java index 17ec8b227d5e..572b48b82f40 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdMapper.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdMapper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdSelector.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdSelector.java index 4590d5606c74..d021299e0977 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdSelector.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellIdSelector.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicator.java index 0d6d69530460..271a1c5ae399 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunction.java index 2eafc89d85fb..4e5dc45826ec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LGraphToEPGMMapper.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LGraphToEPGMMapper.java index 8fb8eed060ff..076ae34b5378 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LGraphToEPGMMapper.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LGraphToEPGMMapper.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexEPGMVertexJoinFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexEPGMVertexJoinFunction.java index d99da707a4fe..641a7cb9484f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexEPGMVertexJoinFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexEPGMVertexJoinFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexFlattener.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexFlattener.java index adacb7ff495e..76669ac1984e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexFlattener.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/LVertexFlattener.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexCompareFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexCompareFunction.java index f768373476b7..b51532fcafb5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexCompareFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexCompareFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusor.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusor.java index bd641a126263..894656516ffd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusor.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/package-info.java index 92183e099e06..e1dc92a9fcbf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/package-info.java index f225ec35ec6a..58c098a9b3b4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Centroid.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Centroid.java index 52696cd9950f..b37a63523af9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Centroid.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Centroid.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Force.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Force.java index f83aa764fa5e..355047cca983 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Force.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Force.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LEdge.java index 613cb596cd44..96dd0d002942 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LGraph.java index 1cf999cae1bd..2e74916a242d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LVertex.java index 1c8e818d4f8b..e7e828ee3c54 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/LVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/SimpleGraphElement.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/SimpleGraphElement.java index fa431f7c8f9b..0b653509da3c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/SimpleGraphElement.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/SimpleGraphElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Vector.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Vector.java index 61499d95f19b..9c36e90aefb8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Vector.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/Vector.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/package-info.java index af019d4d1b0d..b52234ce5d7c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/layouting/util/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/Limit.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/Limit.java index 37a1d318cb1d..7b60a9528823 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/Limit.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/Limit.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/package-info.java index c01bea70b125..bfe67c34c7ed 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/limit/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/MatchStrategy.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/MatchStrategy.java index 0f5970c46a38..029b8d58fe57 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/MatchStrategy.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/MatchStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PostProcessor.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PostProcessor.java index a85b33248b6e..b2e07ecd0bc6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PostProcessor.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PostProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PreProcessor.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PreProcessor.java index 9efcd616b941..f2633ae39246 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PreProcessor.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/PreProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintIdWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintIdWithCandidates.java index 33bf972775fa..85fa331069d6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintIdWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintIdWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintTripleWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintTripleWithCandidates.java index c3b6b1f4edb1..635e0f34ae75 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintTripleWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/PrintTripleWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/Printer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/Printer.java index a677d996efc3..3f3e70a11c4a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/Printer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/Printer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/package-info.java index db6f43cd0773..2bb76afb43ab 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/debug/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractBuilder.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractBuilder.java index 890b5929c673..626dc8c0516a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractBuilder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractFilter.java index 6dbca6e9dfdd..8bf6302fff2c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AbstractFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraph.java index 762ec9e30f29..67b0e73a5cc0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java index 68661859d5dd..ef52568c3027 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java index e1fb880ce02c..ff4043d80773 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementHasCandidate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementHasCandidate.java index 7c716f3e5f90..8b10d89b7e3d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementHasCandidate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementHasCandidate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbedding.java index 1543d7e3f7a5..8f07fd8b4b46 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java index 0cb28933b030..4744132907d8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingPairs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingPairs.java index 59b4915b6e75..844e6bf372e4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingPairs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingPairs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java index 93bebc407fcc..45cfa5304dd5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java index c9fda8495e91..62d7e15ee890 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/TripleHasCandidate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/TripleHasCandidate.java index 5779ccb93205..c50400665277 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/TripleHasCandidate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/TripleHasCandidate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/package-info.java index 15762a7ba8b8..bb806af0d574 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java index 74c2da97cfd7..f9f4f4c945cc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/package-info.java index 81cf6baf496f..3dd5297d4241 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/package-info.java index 5954745ed058..6d99ad253c31 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java index ce713bccedc7..0849e8f405b9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java index 04c1a0f7d254..9710d5d162f5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java index 9dc1f1d64ca5..3baf120cb92f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/RootedTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/RootedTraverser.java index 441be6193159..c05c205094a9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/RootedTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/RootedTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Step.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Step.java index f8f14250dd5e..13f886732c4c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Step.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Step.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/TraversalCode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/TraversalCode.java index 9e28fffc4274..15f2c58612a0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/TraversalCode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/TraversalCode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Traverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Traverser.java index f7cc42c521a3..632dca554e69 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Traverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Traverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java index 87eed58550d6..f1bae81e84f2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/package-info.java index 4bab0e676981..b39d2b1579ca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNF.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNF.java index 455895880726..1d156fb43d03 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNF.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNF.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElement.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElement.java index ce68b602640d..0e2449c81325 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElement.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/PredicateCollection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/PredicateCollection.java index 9f8a89c0ca97..e93db77f9ce6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/PredicateCollection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/PredicateCollection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java index 1551b4d39dac..8c63e7a6ce39 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java index 664be8c12d07..7eebf47cf239 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java index fab93a2fead3..a09fe2d26a75 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java index 15c41bf48227..22b76053edf4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java index 2fc30653a4f6..3c3ea73f65e8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java index 0603aa0d7641..3861a4e38782 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/package-info.java index ef9916c9b19b..b21c720ba0d0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java index cfaf2c1f0ebb..f0f93cc5b1fa 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java index d4d1aae223ff..43dc5c36a063 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java index ffd3cb578995..37cce28bc98b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/package-info.java index 99544f046fec..efffc85cfa04 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java index c65eedb82dfd..4fc42dd9c2f3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/package-info.java index 811c023369f2..20f2f896154d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/package-info.java index 3d721102431e..7f0dad303b3e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatistics.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatistics.java index aa3a5725e0ea..af6035b54380 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatistics.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatistics.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsHDFSReader.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsHDFSReader.java index d7e9a3848282..c0745988c122 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsHDFSReader.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsHDFSReader.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReader.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReader.java index 69ccbf2a98d9..4c235327c5d8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReader.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReader.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsReader.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsReader.java index 946ea821e2e0..e641fc44f4a4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsReader.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsReader.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/package-info.java index 00de787198e1..4da4f75aa958 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/Embedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/Embedding.java index 1d32600f12c2..5ff8f009a73b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/Embedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/Embedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/IdWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/IdWithCandidates.java index e2567bcca5cd..4f783c0d3214 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/IdWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/IdWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithCandidates.java index 455be821d96e..29177880e4d1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithSourceEdgeCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithSourceEdgeCandidates.java index 269f70dc29ad..a3adf27f340e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithSourceEdgeCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/TripleWithSourceEdgeCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/package-info.java index 9cc3a14e259a..166b99064fd2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/package-info.java index 4cecde1cea8e..cb4fcb3bd7dd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatching.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatching.java index edaf95b755f3..7d7261e563fa 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatching.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatching.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatching.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatching.java index f612b6190eac..1074cb900a9e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatching.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatching.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/PrintEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/PrintEmbedding.java index adcafc80e19e..e3c59edef476 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/PrintEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/PrintEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/package-info.java index a24a6aeceac6..7437a8113475 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/debug/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbedding.java index c9c02de2c708..85f4051074b0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ReverseEdgeEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ReverseEdgeEmbedding.java index e1be3a4def1d..0b2406870e5c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ReverseEdgeEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/ReverseEdgeEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/package-info.java index 5975819eecbb..3df8275e31ff 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperator.java index 1f008b2f6dcf..0a0a93b7a071 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/AddEmbeddingsElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/AddEmbeddingsElements.java index 6ab79ecbcd32..e5fb6273e92c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/AddEmbeddingsElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/AddEmbeddingsElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/AddEmbeddingElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/AddEmbeddingElements.java index 796431896d78..63185ea459da 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/AddEmbeddingElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/AddEmbeddingElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/package-info.java index e8a0e86e79c3..6593cdbdc318 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/package-info.java index e38c279ee9cd..94b80b0f7781 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/add/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddings.java index 137b42439b4a..b205b96e675a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulk.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulk.java index 360233ca3209..c8682edd7233 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulk.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulk.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoop.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoop.java index ea8c5dc807c5..91c05db6b015 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoop.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoop.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java index 051e091ab1ba..1729603eb8c7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateExpandEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateExpandEmbedding.java index d46c0b35473c..0ecd79cd8c40 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateExpandEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateExpandEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumn.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumn.java index 036269cff55d..3b509e87c413 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumn.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractKeyedCandidateEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractKeyedCandidateEdges.java index a9eec402cad2..f096f2563047 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractKeyedCandidateEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractKeyedCandidateEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/FilterPreviousExpandEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/FilterPreviousExpandEmbedding.java index 541cbf3afd98..436311c7819c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/FilterPreviousExpandEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/FilterPreviousExpandEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddings.java index 0151b70eb560..55325488b4ac 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbedding.java index a347eafb45fd..81abb9bb9c7a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/package-info.java index d7f2b54bf7ad..5901e4aa9978 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/package-info.java index 74994b98f1e4..6e1ab145ded2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/EdgeWithTiePoint.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/EdgeWithTiePoint.java index 4cd85936b07e..df5ccee07a7a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/EdgeWithTiePoint.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/EdgeWithTiePoint.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/ExpandEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/ExpandEmbedding.java index 3708a10bee19..42b33a4bf2cc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/ExpandEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/ExpandEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/package-info.java index 51995e65f9a7..9d315600049f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdges.java index 05b0ae706b5b..acdb4f7c8146 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriples.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriples.java index db6a945cf09d..83407d886111 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriples.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriples.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVertices.java index 736279f747f2..581c429c9fb3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesAlt.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesAlt.java index 1dcfd35e04e6..37b85b8285cc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesAlt.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesAlt.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddings.java index 0f32c7540078..d2fd8091a3e5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectEdge.java index 64ee2e0e6174..be09d5675bf1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTriple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTriple.java index e28d8d03ae3c..c49528345407 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTriple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTriple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectVertex.java index cc20e51aeacd..0234ced9bc5c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEdge.java index 62a4ecaed137..0842889aff24 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEmbedding.java index cf408fc5b435..bce084ad0da8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterVertex.java index f055387c61c8..865e74ab369c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java index 2ee3655a619e..ba1df4355036 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/package-info.java index 029fa5e139a4..220fe3957e83 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProduct.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProduct.java index 589c1a672fb8..baa5d09a0692 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProduct.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProduct.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddings.java index a6473f51bcb6..caefee8f1021 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoin.java index 6014bc79bf39..17add1e9975e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java index c1a4f9453cfa..68fcea6cdc06 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java index b32faea08003..dd0723344919 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddings.java index e3368852f3a8..a30e9040abf4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/package-info.java index e5ba9ccebe4e..9af17d26dcc3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/package-info.java index a2b4f9f5747e..acc01d1fe623 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/package-info.java index 481e9bb6ed0c..6a2f67b9e243 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdges.java index 39a1d6416ca1..8df4c3d8dd3c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddings.java index e266cd1c137b..3255802b9c3e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsElements.java index 89340b6bdd2c..594609a61816 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVertices.java index 976b5d360ba0..30104d2619db 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEdge.java index c57f4af2b0fa..66454f3ee6a7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbedding.java index 58fb694fee76..10d07b78f779 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbeddingElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbeddingElements.java index 3cafc2bbd1e9..835a11eddc2c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbeddingElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectEmbeddingElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectVertex.java index 971bf8404474..4321bd747c69 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/ProjectVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/package-info.java index 2019ca2f98d5..3978d1c5481f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/package-info.java index 3d43d755a79b..6bfac8a6b876 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/package-info.java index c0314e92b875..d9f43fd4ae7a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/Estimator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/Estimator.java index 83e312f00b5d..8371ce549bd2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/Estimator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/Estimator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimator.java index 01d945189d87..c67a996a550b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java index aa028160b146..df6705e9438e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimator.java index e5d5d3acf729..c16db99424c6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java index 02c164e6ba06..9b958d8b7508 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java index f96afe9164f2..82298521829a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java index 7bbe5e2df0d4..364e635e08f4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/package-info.java index cda4dabd47dd..437c489d305e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTable.java index 0a87108e8d35..70a92aa0e223 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTable.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTableEntry.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTableEntry.java index 0c56847d6160..27f854d5e0ed 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTableEntry.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/PlanTableEntry.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java index 24e32a9a76d5..9e7f4b2e1664 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/BinaryNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/BinaryNode.java index f1e66efda4e0..dfd1fe54aec6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/BinaryNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/BinaryNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/FilterNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/FilterNode.java index 03e279d7140b..4c0842a42263 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/FilterNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/FilterNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/JoinNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/JoinNode.java index e78acb5b5363..1dc3ae1e7840 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/JoinNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/JoinNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/LeafNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/LeafNode.java index 03a6883a79c8..a61dca14dd0b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/LeafNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/LeafNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/PlanNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/PlanNode.java index 3df9824c0ef9..d32e63eaf3ce 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/PlanNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/PlanNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/ProjectionNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/ProjectionNode.java index 21fb3d696221..06d668af21ea 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/ProjectionNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/ProjectionNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/QueryPlan.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/QueryPlan.java index 4964b7e7cf85..bad0141f6573 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/QueryPlan.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/QueryPlan.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/UnaryNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/UnaryNode.java index f1fc18553f52..29ef2634f7fc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/UnaryNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/UnaryNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNode.java index 82665a5c3752..ae882779b1c1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNode.java index ddb3836f7840..a07148a342d7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNode.java index b8cbd6c848fc..528f97525b34 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNode.java index 5687fca73dd7..abeca4db8214 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/package-info.java index b6fa4d0e3320..8445f9a9328e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNode.java index e983793e2df2..cbc877db1924 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNode.java index b17c626f5377..fae282596ca9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java index 7d4f6201d3c4..f2b4f4b7a6d1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java index f967bbeed5f8..948170afed94 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNode.java index ac4f69e8b368..a7a9a937acb2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java index 798d1d106783..f16cba3ee6d5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/package-info.java index a98c6a6fae37..717960b48476 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Embedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Embedding.java index 217457b69a55..b1716129408d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Embedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Embedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingFactory.java index e6e2f0b8640e..0009d9fccc00 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingMetaData.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingMetaData.java index 9ff75556032f..e1da3ea9ba9b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingMetaData.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/EmbeddingMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Triple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Triple.java index 2cd71a14f3a7..2404de6537ce 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Triple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/Triple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/package-info.java index 285e76abc8b9..e395de0b94db 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/pojos/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/ExpandDirection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/ExpandDirection.java index ee66aa711315..180a5e361db8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/ExpandDirection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/ExpandDirection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/package-info.java index f82016bf6de4..36f3df975d4e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/utils/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/package-info.java index ef28b2a2da0c..9860d690ff97 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativePatternMatching.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativePatternMatching.java index e5b60446617d..6c4330f51b5f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativePatternMatching.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativePatternMatching.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEdgeStep.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEdgeStep.java index 4b23aa575cfd..30dcc7319ff3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEdgeStep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEdgeStep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEmbeddingWithTiePoint.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEmbeddingWithTiePoint.java index 5e2162988d7f..6c1ad7c00f09 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEmbeddingWithTiePoint.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintEmbeddingWithTiePoint.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintVertexStep.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintVertexStep.java index a383cb41db44..71af77c3d3db 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintVertexStep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/PrintVertexStep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/package-info.java index dc07dd8eecea..535d72a139cc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/debug/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEdgeStep.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEdgeStep.java index bb74d4ecd68d..b421645c82fb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEdgeStep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEdgeStep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbedding.java index 00219dcfb2e7..51947530a89c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromTriple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromTriple.java index 2c788d467bed..680677167733 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromTriple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromTriple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromVertex.java index 2aa1f301a08c..101dbf7c154a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildEmbeddingFromVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildVertexStep.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildVertexStep.java index 7b8948c7a2ef..72ec2049540c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildVertexStep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/BuildVertexStep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/EdgeHasCandidate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/EdgeHasCandidate.java index 9282aee0524d..91ade24193c3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/EdgeHasCandidate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/EdgeHasCandidate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateEdgeMapping.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateEdgeMapping.java index fa3edc90dc68..ea5c4d94ceb0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateEdgeMapping.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateEdgeMapping.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateMapping.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateMapping.java index 2f0e17c33472..b8b4b6e9b6c5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateMapping.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateMapping.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexEdgeMapping.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexEdgeMapping.java index 2b56c3e036ee..578450749652 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexEdgeMapping.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexEdgeMapping.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexMapping.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexMapping.java index f5afaf64992f..2bd7c4bd3808 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexMapping.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/UpdateVertexMapping.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/VertexHasCandidate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/VertexHasCandidate.java index 132e6db0b851..46ab14e92a26 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/VertexHasCandidate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/VertexHasCandidate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/package-info.java index abe76fb47467..27e3a57b9543 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/package-info.java index 22f877668826..e3cc357a646b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/DistributedTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/DistributedTraverser.java index ee7227474d79..ddf2d9b26f15 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/DistributedTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/DistributedTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairBulkTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairBulkTraverser.java index 38cb8f4b93b8..8d6652ea2390 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairBulkTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairBulkTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairForLoopTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairForLoopTraverser.java index 2839b220c4c2..57954bd3b2cd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairForLoopTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairForLoopTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairTraverser.java index 46c18402b14a..99432a0d95dc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/SetPairTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TraverserStrategy.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TraverserStrategy.java index f280e092bdce..98376278a2be 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TraverserStrategy.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TraverserStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleForLoopTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleForLoopTraverser.java index d0992b9a51c1..4305c28160b5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleForLoopTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleForLoopTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleTraverser.java index 7482e37393af..946073b192e1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/TripleTraverser.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/package-info.java index 2c151d34c671..62ec35cd39a7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/traverser/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EdgeStep.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EdgeStep.java index c31c7d7d4a67..eaa0f30c6f06 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EdgeStep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EdgeStep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EmbeddingWithTiePoint.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EmbeddingWithTiePoint.java index c42c4ac42a9e..96dffd50b885 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EmbeddingWithTiePoint.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/EmbeddingWithTiePoint.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/VertexStep.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/VertexStep.java index f91bc7c6cf62..1fe59c681d33 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/VertexStep.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/VertexStep.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/package-info.java index 0409d20346e3..9eaa938f371f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/package-info.java index d77dc6330f04..970273077f03 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulation.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulation.java index 182ea4621236..f5e121082295 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintDeletion.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintDeletion.java index f24c40a5d54d..76f72e0d29a8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintDeletion.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintDeletion.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintFatVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintFatVertex.java index 8284fdde1c30..f11fb8aab804 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintFatVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintFatVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintMessage.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintMessage.java index 470ca47c4649..a24c44b11ca7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintMessage.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintMessage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintTripleWithDirection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintTripleWithDirection.java index b02ed21cabc7..a08b6c5c15eb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintTripleWithDirection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/PrintTripleWithDirection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/package-info.java index b0c81c2d7137..2d992d5347b5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/debug/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/BuildFatVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/BuildFatVertex.java index cb794ad3f59c..6f6bac7693f2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/BuildFatVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/BuildFatVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CloneAndReverse.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CloneAndReverse.java index 65843f256c3d..b57c857c11ea 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CloneAndReverse.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CloneAndReverse.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CombinedMessages.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CombinedMessages.java index c72d0d8c9c7a..88f90a098a3f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CombinedMessages.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/CombinedMessages.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/EdgeTriple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/EdgeTriple.java index a0e8c2247a12..f7b440113376 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/EdgeTriple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/EdgeTriple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedFatVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedFatVertices.java index 70c7da17d6f7..e984ef2a12ae 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedFatVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedFatVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedMessages.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedMessages.java index 228222ec0920..0690bfa78478 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedMessages.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/GroupedMessages.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdateVertexState.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdateVertexState.java index b2626bd53d02..134cbad15741 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdateVertexState.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdateVertexState.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdatedFatVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdatedFatVertices.java index 87eff41b7165..6c7f599590b9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdatedFatVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/UpdatedFatVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidFatVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidFatVertices.java index 77c4cf63f18b..7ae972f5137a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidFatVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidFatVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java index a2a735f0fb01..b7b9e2386d23 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/package-info.java index 603793f5810f..740495c2977e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/package-info.java index ea8aaeb06bb9..656e9ac29b55 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Deletion.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Deletion.java index 1782dbc1bc24..75b3b0fe07af 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Deletion.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Deletion.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/FatVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/FatVertex.java index 2f771d9192f9..5bba075fa67f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/FatVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/FatVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/IdPair.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/IdPair.java index aa097b3e82cc..69e95396fe72 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/IdPair.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/IdPair.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Message.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Message.java index b2579296872d..39d48704bb16 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Message.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/Message.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/TripleWithDirection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/TripleWithDirection.java index c5202661b5c3..48e93b5da08f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/TripleWithDirection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/TripleWithDirection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/package-info.java index d56f9d18765a..c8f05f6ded0b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/MessageType.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/MessageType.java index bb68bfa02b4c..495b55c87c54 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/MessageType.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/MessageType.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/package-info.java index 26d48c8033e4..29bf1c9bc1bd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/util/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/package-info.java index b5cd1a771943..9ae0d2fea545 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatching.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatching.java index 29d142a55922..e5468dd17af9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatching.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatching.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java index be85d3cc370e..246a89d4bd1a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/PatternMatchingAlgorithm.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/PatternMatchingAlgorithm.java index 84690db20251..46078c8e13ff 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/PatternMatchingAlgorithm.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/PatternMatchingAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/package-info.java index 82ffbc1f7f33..bc6a5f6c4a35 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddGraphsToElements.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddGraphsToElements.java index 7d7fe40c820b..d46ddcdb8720 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddGraphsToElements.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddGraphsToElements.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddMatchesToProperties.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddMatchesToProperties.java index 0cc5d3f2c608..06d36f744488 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddMatchesToProperties.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/AddMatchesToProperties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildGraphWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildGraphWithCandidates.java index bc21a3c6413a..d30d27ffbec8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildGraphWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildGraphWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java index cf439ecdf34c..a9f11a8c7c08 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java index 578bbe9d4221..40bb3da3e7b7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/ExpandFirstField.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/ExpandFirstField.java index 127232d12713..4da505629938 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/ExpandFirstField.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/ExpandFirstField.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/FindEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/FindEmbeddings.java index f8e907c3d9e4..a84198f86fd2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/FindEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/FindEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphIdFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphIdFilter.java index 28e3c4063416..03302d9bd424 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphIdFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphIdFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphTransactionMatcher.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphTransactionMatcher.java index 7c5a59a5a40f..a6a5466026b3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphTransactionMatcher.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/GraphTransactionMatcher.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/HasEmbeddings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/HasEmbeddings.java index 606865451095..d58ec3064fbc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/HasEmbeddings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/HasEmbeddings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/InitGraphHeadWithLineage.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/InitGraphHeadWithLineage.java index 3baffb1fb988..ca3863817486 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/InitGraphHeadWithLineage.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/InitGraphHeadWithLineage.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/MergeSecondField.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/MergeSecondField.java index 685bfa05d90d..46e680ec1393 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/MergeSecondField.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/MergeSecondField.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And2AndSwitch.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And2AndSwitch.java index c29cb9cd1641..d6e19bda8bc2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And2AndSwitch.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And2AndSwitch.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And3AndSwitch.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And3AndSwitch.java index 859654ed5d15..ad3c95a426f9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And3AndSwitch.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/Project4To0And3AndSwitch.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/package-info.java index bb038c58dc94..190b9e3304a1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/package-info.java index 4a6c89488e19..2bbe7019ee48 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/GraphWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/GraphWithCandidates.java index 535561128c96..fa33d33aaca0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/GraphWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/GraphWithCandidates.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/package-info.java index 68a24a65174d..5d199f17dc0f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/EdgeNeighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/EdgeNeighborhood.java index a5648f19b4d4..222654520de3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/EdgeNeighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/EdgeNeighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/Neighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/Neighborhood.java index 014e799cdbf3..9244111314f9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/Neighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/Neighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceEdgeNeighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceEdgeNeighborhood.java index cac59102af30..bd2fb97a96b4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceEdgeNeighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceEdgeNeighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceVertexNeighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceVertexNeighborhood.java index cfac28982da5..206f50c088ae 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceVertexNeighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/ReduceVertexNeighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/VertexNeighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/VertexNeighborhood.java index 6702e2ee9c1a..0b137830c3ca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/VertexNeighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/VertexNeighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeFunction.java index dfbdabbc3048..20d12f08ec68 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeReduceFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeReduceFunction.java index 53d009b0e4e2..43935f2acdfc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeReduceFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborEdgeReduceFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborFunction.java index 41ed6ed83af4..ae9e49b2f5dc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexFunction.java index 7dfa3a4b031d..39fdc96451ab 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexReduceFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexReduceFunction.java index d1ca969b66b1..c3d020631554 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexReduceFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/NeighborVertexReduceFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/ShuffledVertexIdsFromEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/ShuffledVertexIdsFromEdge.java index 060861f8dacf..d028c032f401 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/ShuffledVertexIdsFromEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/ShuffledVertexIdsFromEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsFromEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsFromEdge.java index 1507880c8b0a..ee72dc030d61 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsFromEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsFromEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsWithEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsWithEdge.java index 657bb08b56c0..6a5110628c43 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsWithEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexIdsWithEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldOne.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldOne.java index c606a308f70a..5907304ddabb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldOne.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldOne.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldZero.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldZero.java index 90f394cc27f8..ff1b52942aa1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldZero.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/VertexToFieldZero.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/package-info.java index 725de37946c9..9d249ea9d776 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/IdInTuple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/IdInTuple.java index d1c045e56766..e2719b0acaf5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/IdInTuple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/IdInTuple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/package-info.java index e1470ace2dcc..5acc4a0871b0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/keyselector/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/package-info.java index 654b8c9ff688..dc25b2861369 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/neighborhood/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/Overlap.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/Overlap.java index 3cd762782a86..c0fd85d1a8aa 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/Overlap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/Overlap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/OverlapBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/OverlapBase.java index b9c4816ec8cd..75252cbdc1d3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/OverlapBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/OverlapBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/ReduceOverlap.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/ReduceOverlap.java index 661da560e80a..fe8bceba4115 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/ReduceOverlap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/ReduceOverlap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/package-info.java index 635ca8d1dc91..e470a8b7f91b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/overlap/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/package-info.java index fcbd36a5ebbd..0897f12aa68b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/EdgeRollUp.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/EdgeRollUp.java index 81081bc993b5..71b569cdf595 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/EdgeRollUp.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/EdgeRollUp.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/RollUp.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/RollUp.java index 177d3dc5ed69..5d4d24aca5ec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/RollUp.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/RollUp.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/VertexRollUp.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/VertexRollUp.java index a130e477993e..17271d689f98 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/VertexRollUp.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/VertexRollUp.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/package-info.java index 64facc07332c..532f6681219d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/rollup/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java index ece582accc4a..9da0293e6ec4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSampling.java index 458b84d9b219..09a2aa2b3723 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java index 5ba505b858c6..834110adedc7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java index a96919c472c7..a921c282deb9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSampling.java index 2cebac8fda7d..fb0e2d83ad7c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java index b028374ab916..298c5623ff78 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSampling.java index e9234a4d4681..355b3eaedb64 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java index 15a396a5fe2b..41f0bbc3b364 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/SamplingAlgorithm.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/SamplingAlgorithm.java index 8acf366f0d34..6570da9cd9f5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/SamplingAlgorithm.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/SamplingAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingConstants.java index ebfe04e6a3f0..3ba4785f9f36 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingEvaluationConstants.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingEvaluationConstants.java index 5bd1120998cd..965cb74cb525 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingEvaluationConstants.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/SamplingEvaluationConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/package-info.java index d892fa58a41c..db64e1540932 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/common/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddMaxDegreeCrossFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddMaxDegreeCrossFunction.java index 1510b2e0da41..8107f5a95b46 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddMaxDegreeCrossFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddMaxDegreeCrossFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddPageRankScoresToVertexCrossFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddPageRankScoresToVertexCrossFunction.java index 51614933cbbf..19022f0ca25b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddPageRankScoresToVertexCrossFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/AddPageRankScoresToVertexCrossFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeSourceVertexJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeSourceVertexJoin.java index ce7ed355e1f8..7a9ef9ffef58 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeSourceVertexJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeSourceVertexJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeTargetVertexJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeTargetVertexJoin.java index 264988eb266b..0caa5d2ebc1b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeTargetVertexJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeTargetVertexJoin.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeWithSourceTarget.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeWithSourceTarget.java index b51a4cd9bdbb..763a97a74680 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeWithSourceTarget.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgeWithSourceTarget.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgesWithSampledVerticesFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgesWithSampledVerticesFilter.java index ba7e8fe95c86..a6932608fc65 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgesWithSampledVerticesFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/EdgesWithSampledVerticesFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java index c03c36882b4a..3f1ee37077f3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/LimitedDegreeVertexRandomFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/LimitedDegreeVertexRandomFilter.java index d31c31d1966f..f1d26f917e27 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/LimitedDegreeVertexRandomFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/LimitedDegreeVertexRandomFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/Neighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/Neighborhood.java index b7089767125f..3177fdc9dbad 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/Neighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/Neighborhood.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/NonUniformVertexRandomFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/NonUniformVertexRandomFilter.java index 7bf67d31cbb1..83c79256f40c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/NonUniformVertexRandomFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/NonUniformVertexRandomFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/PageRankResultVertexFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/PageRankResultVertexFilter.java index 5c04600b0420..63b538a81e70 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/PageRankResultVertexFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/PageRankResultVertexFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomFilter.java index c2dadaabc180..3bc3fb40c761 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomVertex.java index 6533b579df1e..6b2d5cfa052b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/RandomVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexDegree.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexDegree.java index 8b98493c7719..f103cdbc6c6b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexDegree.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexDegree.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexToDegreeMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexToDegreeMap.java index 3a1bc908fb79..b7032ccb3967 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexToDegreeMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexToDegreeMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java index 5a926aa7c89e..5c3bc341db31 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/package-info.java index d1e173611414..4382a04a19e2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/package-info.java index cc6176e41426..bae6fbf525ef 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/Selection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/Selection.java index 998fe8311c6d..c87bb04ed0fc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/Selection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/Selection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/SelectionBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/SelectionBase.java index a8752d5db166..bd69179e1453 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/SelectionBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/SelectionBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/FilterTransactions.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/FilterTransactions.java index d77b98159fd4..61da782b2bf3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/FilterTransactions.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/FilterTransactions.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/package-info.java index f74306303f49..4bfd6f21f7f6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/package-info.java index 9861cf765af7..ab26ee1dfbcc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/selection/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java index 7a7f370c59f1..7fd12bfabb76 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java index 84186dba43aa..7760483ed122 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java index 035c91f2af04..4212d75ce4ab 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/EdgeToTriple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/EdgeToTriple.java index d92688e8bfca..e4c278da8fb5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/EdgeToTriple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/EdgeToTriple.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java index d070ad7afe4a..4bdcc6609592 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java index 611285461773..9ebb926fdfee 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinVertexIdWithGraphIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinVertexIdWithGraphIds.java index b7f03fa73c8a..0b2001562102 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinVertexIdWithGraphIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinVertexIdWithGraphIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/MultipleGraphIdsGroupReducer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/MultipleGraphIdsGroupReducer.java index 88b9945dac9a..3fe30a9e78df 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/MultipleGraphIdsGroupReducer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/MultipleGraphIdsGroupReducer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java index 05e3c7dc3647..a009d4fc537e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/package-info.java index 74ae2801a305..f97c20fd351a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/package-info.java index 5a81990de582..42bffdfa75b7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java index 05e89e21a737..4bc536a10ae7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageDegree.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageDegree.java index f3697551cb06..79856b1e8f11 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageDegree.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageDegree.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageIncomingDegree.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageIncomingDegree.java index e6d8e0702de3..a9e221b6a4cb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageIncomingDegree.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageIncomingDegree.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageOutgoingDegree.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageOutgoingDegree.java index e2c54a87bf26..9d90bf80d98a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageOutgoingDegree.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageOutgoingDegree.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java index bfd2f451d6ae..dfc1f691f5aa 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java index d3578ad6893d..115bf456ab87 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentrality.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentrality.java index ae1124a17184..f23c1fc921c2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentrality.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentrality.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentralityBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentralityBase.java index 0a690c21f974..8c7891b2a350 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentralityBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DegreeCentralityBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgeProperties.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgeProperties.java index d08a1b867cbf..317bf93216d7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgeProperties.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgeProperties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgePropertiesByLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgePropertiesByLabel.java index 773e03f9c696..86047613570b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgePropertiesByLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctEdgePropertiesByLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctProperties.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctProperties.java index 85dc4270eca1..bbf194e100b8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctProperties.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctProperties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIds.java index c4b782d4cdd7..af5794e7bc74 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIdsByEdgeLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIdsByEdgeLabel.java index 5730a253e617..c4c9be8637aa 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIdsByEdgeLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctSourceIdsByEdgeLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIds.java index fa47b0b6fe02..44c272753fa5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIdsByEdgeLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIdsByEdgeLabel.java index 1c125a03cb12..4383ef1dbdb8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIdsByEdgeLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctTargetIdsByEdgeLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexProperties.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexProperties.java index 9f4f04494a5d..bb1ca30ea54e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexProperties.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexProperties.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexPropertiesByLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexPropertiesByLabel.java index d416601bcadb..f7f80d25c79a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexPropertiesByLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/DistinctVertexPropertiesByLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeCount.java index dd4d43361c74..747c4a492ff1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeLabelDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeLabelDistribution.java index 80b8754a0f41..71372c2c40ed 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeLabelDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeLabelDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeValueDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeValueDistribution.java index cf3cb49e81c1..65e06a44afb1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeValueDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/EdgeValueDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/GraphDensity.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/GraphDensity.java index 70b7a9aa31b4..4711877ebf5a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/GraphDensity.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/GraphDensity.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegreeDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegreeDistribution.java index 0f98c6feab5c..6bcfb06cee71 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegreeDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegreeDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegrees.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegrees.java index c905f17ce243..31aa7130bed7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegrees.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/IncomingVertexDegrees.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegreeDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegreeDistribution.java index 4db07f99e834..ac87cb6a4585 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegreeDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegreeDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegrees.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegrees.java index 6267c2123978..5bc22c20014d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegrees.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/OutgoingVertexDegrees.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/SourceLabelAndEdgeLabelDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/SourceLabelAndEdgeLabelDistribution.java index b10109cdaa4d..0471af14b1c0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/SourceLabelAndEdgeLabelDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/SourceLabelAndEdgeLabelDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/TargetLabelAndEdgeLabelDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/TargetLabelAndEdgeLabelDistribution.java index dbf729376658..01da0b19ed71 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/TargetLabelAndEdgeLabelDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/TargetLabelAndEdgeLabelDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ValueDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ValueDistribution.java index a96440d43cf1..da985fe464a1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ValueDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ValueDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexCount.java index f042b74c2842..36c51af53d7e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegreeDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegreeDistribution.java index 4152a5862283..16b7fca2f459 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegreeDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegreeDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegrees.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegrees.java index 549c031e5943..616b6193ef78 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegrees.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexDegrees.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexLabelDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexLabelDistribution.java index c7c9aab8d088..98a438929aa9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexLabelDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexLabelDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexValueDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexValueDistribution.java index f88c15a83138..a842f9e65ee3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexValueDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/VertexValueDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AddSumDegreesToGraphHeadCrossFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AddSumDegreesToGraphHeadCrossFunction.java index 303a3feee760..24d3b7a61bdf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AddSumDegreesToGraphHeadCrossFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AddSumDegreesToGraphHeadCrossFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccEdges.java index 5029732b28c9..bff562bca48d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccEdges.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccVertices.java index 64756bdfe98c..44f7472e5bd6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/AggregateListOfWccVertices.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/BothLabels.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/BothLabels.java index 807aac4db4b5..f976dd154b5c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/BothLabels.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/BothLabels.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateAverageDegree.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateAverageDegree.java index bbc4ebce4922..35e6b5441fd1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateAverageDegree.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateAverageDegree.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDegreeCentrality.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDegreeCentrality.java index 36c0a4c66f87..6e9ef94ca11e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDegreeCentrality.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDegreeCentrality.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDensity.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDensity.java index 264d0ac844c3..337f9931604c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDensity.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CalculateDensity.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CombinePropertyValueDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CombinePropertyValueDistribution.java index 359ab40739bc..e82d5421a27d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CombinePropertyValueDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/CombinePropertyValueDistribution.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/DegreeDistanceFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/DegreeDistanceFunction.java index 29cce8999e7c..20a4f88e99f0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/DegreeDistanceFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/DegreeDistanceFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValues.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValues.java index 33310a4a0491..60e57e6c0965 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValues.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValues.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValuesByLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValuesByLabel.java index f3babc1602ce..d5dd911f32c3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValuesByLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ExtractPropertyValuesByLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java index 684720d958f6..e87ca45fd7b0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SetOrCreateWithCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SetOrCreateWithCount.java index f1a4d055dfed..89a2fdd2ed6f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SetOrCreateWithCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SetOrCreateWithCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SumCounts.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SumCounts.java index d96d0ac63543..16229f4d59ca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SumCounts.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/SumCounts.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToSourceIdWithLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToSourceIdWithLabel.java index 964412f1dfd0..ac48c06617a5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToSourceIdWithLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToSourceIdWithLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToTargetIdWithLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToTargetIdWithLabel.java index d42a4aec59bc..3800dcef1f76 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToTargetIdWithLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/ToTargetIdWithLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/package-info.java index da4cdf13652f..750e3af1c168 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/package-info.java index b28d2c00421c..c2e887ff92d0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctEdgePropertiesByLabelPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctEdgePropertiesByLabelPreparer.java index 75d54d9770fa..33053df1d9a3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctEdgePropertiesByLabelPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctEdgePropertiesByLabelPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctSourceVertexCountPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctSourceVertexCountPreparer.java index f549b28eab9f..ed02e7f7d153 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctSourceVertexCountPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctSourceVertexCountPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctTargetVertexCountPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctTargetVertexCountPreparer.java index a7cf3cd8070b..c427cb70fde9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctTargetVertexCountPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctTargetVertexCountPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctVertexPropertiesByLabelPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctVertexPropertiesByLabelPreparer.java index 24c20ce5ef3e..3f50efbd23a7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctVertexPropertiesByLabelPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/DistinctVertexPropertiesByLabelPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/EdgeCountPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/EdgeCountPreparer.java index ac51c0c77fa1..99656c40c1ae 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/EdgeCountPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/EdgeCountPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/SourceAndEdgeLabelDistributionPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/SourceAndEdgeLabelDistributionPreparer.java index c098944cfeec..d24e8c1e755e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/SourceAndEdgeLabelDistributionPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/SourceAndEdgeLabelDistributionPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/StatisticWriter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/StatisticWriter.java index 11c9fbbc3b68..25442b4a7bcc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/StatisticWriter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/StatisticWriter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/TargetAndEdgeLabelDistributionPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/TargetAndEdgeLabelDistributionPreparer.java index 04a1183f1010..ff9a05b01ad6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/TargetAndEdgeLabelDistributionPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/TargetAndEdgeLabelDistributionPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/VertexCountPreparer.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/VertexCountPreparer.java index 9c99b6f7c1da..425088ca1a77 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/VertexCountPreparer.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/VertexCountPreparer.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/package-info.java index 108260d3ff45..a216b4704c2e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/writer/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/ApplySubgraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/ApplySubgraph.java index dc3a5aaefa9f..23ca223994f8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/ApplySubgraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/ApplySubgraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/Subgraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/Subgraph.java index 2beaaf48ca56..3ce77e2490c2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/Subgraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/Subgraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetId.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetId.java index d44f5c4f324b..816f59bb643d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetId.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetIdWithGraphIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetIdWithGraphIds.java index d193bbe4c676..b334a316093e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetIdWithGraphIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/EdgeToSourceAndTargetIdWithGraphIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/RightSideWithLeftGraphs2To1.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/RightSideWithLeftGraphs2To1.java index 7ba8b45be042..80bc6531af13 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/RightSideWithLeftGraphs2To1.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/RightSideWithLeftGraphs2To1.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/package-info.java index b20ff9a97385..3410d0a115ec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/package-info.java index 2cd0e2644bff..1682b74b894e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/subgraph/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java index 0a0dcca22e82..398773127370 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/EdgeToString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/EdgeToString.java index 496ba2ff8f00..70dc13e5f7cf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/EdgeToString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/EdgeToString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/GraphHeadToString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/GraphHeadToString.java index 441a0906718f..a7ac313dc018 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/GraphHeadToString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/GraphHeadToString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/VertexToString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/VertexToString.java index 0c6d454855f7..543143b69329 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/VertexToString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/VertexToString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/package-info.java index d592ef0ca23e..4e4b5158a944 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java index 7aa2c83456f5..f4dda1a29214 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java index 48dcf5c7b985..369660726700 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToDataString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToDataString.java index 98fdde327101..2d8cfad543df 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToDataString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToIdString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToIdString.java index e5f765bd75d8..8c8566113520 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToIdString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/EdgeToIdString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ElementToDataString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ElementToDataString.java index 8f85c13e1551..913ddd2ad271 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ElementToDataString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ElementToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToDataString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToDataString.java index cf151f69ad82..baa6588e5972 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToDataString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToEmptyString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToEmptyString.java index 6bcd793e0fe1..c709bac9894e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToEmptyString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToEmptyString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToIdString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToIdString.java index 67f4b6980fd2..e76e58def148 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToIdString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/GraphHeadToIdString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java index 4ba8f44fcf65..324a3436b723 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/MultiEdgeStringCombiner.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/MultiEdgeStringCombiner.java index e9eb2173a234..994bc3fa57b6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/MultiEdgeStringCombiner.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/MultiEdgeStringCombiner.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java index 47af3678b977..1d5fdbac3575 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SourceStringUpdater.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SourceStringUpdater.java index 08c7e7115a78..e00f57ac7324 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SourceStringUpdater.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SourceStringUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SwitchSourceTargetIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SwitchSourceTargetIds.java index 60f28b6f841d..6c1c41494399 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SwitchSourceTargetIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/SwitchSourceTargetIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/TargetStringUpdater.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/TargetStringUpdater.java index 875f26ebeaf3..1d388cd0186b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/TargetStringUpdater.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/TargetStringUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java index ccea9cbf4b22..b9110d40cd99 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToDataString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToDataString.java index c5a7f4e7afba..93fa2fbba3e3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToDataString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToIdString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToIdString.java index e28c23a74c43..f28135910707 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToIdString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/VertexToIdString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/package-info.java index f022e2a45813..5c1104315684 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/package-info.java index b6f96b7e5050..e9a94bcfa8b1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/EdgeString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/EdgeString.java index 3e3c768eb5df..4c24dab5909b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/EdgeString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/EdgeString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/GraphHeadString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/GraphHeadString.java index cfe27a28d71c..db5af72b5163 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/GraphHeadString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/GraphHeadString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/VertexString.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/VertexString.java index 3d62b954e957..aad889a3e534 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/VertexString.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/VertexString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/package-info.java index f078e737c3ac..fac8aed6f23a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformation.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformation.java index eec19c598fc7..49db88bac05e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/Transformation.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/Transformation.java index 81d418f4d433..54cb868533d7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/Transformation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/Transformation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformBase.java index df60adce77ed..11d8086e7736 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformEdge.java index 33d1e2daaff5..e2aef0896fdd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphHead.java index 2b409f5c8336..18adc2622587 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphTransaction.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphTransaction.java index 9d080a16decc..f00647361e66 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphTransaction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformGraphTransaction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformVertex.java index b8775017063d..542006a7f87c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/TransformVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/package-info.java index c412acc3f2be..b956de789c6b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/package-info.java index 62afd108c32c..fb6b6cd5f37a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/transformation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/Union.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/Union.java index 6d6e133f87b8..5dcd95ff6878 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/Union.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/Union.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/package-info.java index c80097061bd1..95e65143d2c1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/union/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/Verify.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/Verify.java index aa44c42db9b6..6bcbe59f1394 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/Verify.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/Verify.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyCollection.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyCollection.java index 6160bb8635cd..8fe19f5da463 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyCollection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyCollection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphContainment.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphContainment.java index dd5deb0ecbbd..f93c0d29b42d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphContainment.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphContainment.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphsContainment.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphsContainment.java index c2b6f778de48..080909ffeb81 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphsContainment.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/VerifyGraphsContainment.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/RemoveDanglingGraphIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/RemoveDanglingGraphIds.java index 961bdd6e4c69..6334315a7e87 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/RemoveDanglingGraphIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/RemoveDanglingGraphIds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/package-info.java index 0d972919f06e..127872d42ddf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/package-info.java index cd9d6e3a8ca1..833166f6c7ea 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/verify/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/package-info.java index f8765e149d52..d87a9659ff21 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithIdSet.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithIdSet.java index c3e0d6d5b035..1fd1c9da7c11 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithIdSet.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithIdSet.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithLabel.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithLabel.java index 48084537c769..79eaf623a15e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithLabel.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/IdWithLabel.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/WithCount.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/WithCount.java index b2558f191faf..fd0b562dc2fe 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/WithCount.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/WithCount.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/package-info.java index 1f46b43f5217..f1ce3f190624 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCell.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCell.java index 06194139aec2..d324c5cce337 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCell.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCell.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCellComparator.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCellComparator.java index 87e723411379..9ea2d18b76a1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCellComparator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListCellComparator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListRow.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListRow.java index aa80bafea1bf..6851abf6675a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListRow.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/AdjacencyListRow.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/package-info.java index 6fbf6a40caec..405ecaff6c92 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/common/adjacencylist/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/package-info.java index 71641d37eaae..835476dfba34 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/AdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/AdjacencyList.java index 9cef2070d57e..669366bebee5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/AdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/AdjacencyList.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/RepresentationConverters.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/RepresentationConverters.java index 2b4df8cdf443..6d98ae2d8430 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/RepresentationConverters.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/RepresentationConverters.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/package-info.java index 66e0b3958600..dc0a5e2581b5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/Traversal.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/Traversal.java index 7e9546357172..454e43bcc8f4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/Traversal.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/Traversal.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalCode.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalCode.java index 794a20a53259..3d33878c88fe 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalCode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalCode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalEmbedding.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalEmbedding.java index d299c029b9a4..1bdf5c280a45 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalEmbedding.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/TraversalEmbedding.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/package-info.java index 3b0e7d937f04..ac4e381a8397 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/representation/transactional/traversalcode/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java b/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java index 6473bac29910..aae5e958eedf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/util/GradoopFlinkConfig.java b/gradoop-flink/src/main/java/org/gradoop/flink/util/GradoopFlinkConfig.java index cabff27f892b..070ef42f0d51 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/util/GradoopFlinkConfig.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/util/GradoopFlinkConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/util/package-info.java b/gradoop-flink/src/main/java/org/gradoop/flink/util/package-info.java index 05b912d4dffb..735e7967663f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/util/package-info.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/util/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphsTest.java index 50605593172a..9c7493beb930 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/btgs/BusinessTransactionGraphsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsDIMSpanTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsDIMSpanTest.java index 026ea5719da7..235365bfb1ce 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsDIMSpanTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsDIMSpanTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java index e2bd4555bb1d..742c265d22e9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsThinkLikeAnEmbeddingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsThinkLikeAnEmbeddingTest.java index 082859c57c3c..d02dbba6ef62 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsThinkLikeAnEmbeddingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsThinkLikeAnEmbeddingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsTransactionalFSMTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsTransactionalFSMTestBase.java index 12fbd21dcb73..4a5a20df3983 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsTransactionalFSMTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsTransactionalFSMTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java index 0b1b4b12406d..a888f47d2b99 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java index b53499a9ab4a..bd5c96f26d56 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java index e7e29c7ea7c4..08074783f199 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java index 76ce5d16cddd..1c05245b4e99 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java index 087d0d79abc7..154563c85cea 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java index cbc1b20e8b7b..69343db6f0d7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java index 64131787894b..4a91305f6682 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java index 8ce77d450d25..a19217c98581 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java index 2a3c5f533a3f..390f197deec8 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java index f09db3ebd493..56780e0fc03a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java index 80bfee152938..b85972de3c31 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java index 8bfbe6a02207..1bc5b8bdda0f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java index 5701ba25121d..2853291205c3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java index be579eccfd87..bd8ba69a850f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSourceTest.java index 689b436c7bf9..be7809b69adc 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVTestBase.java index b2f1488346df..7aff6090c938 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java index e4a273f58689..f28041f6ae31 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/CSVLineToElementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/StringEscaperTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/StringEscaperTest.java index 80ccef57a83d..65a552b00093 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/StringEscaperTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/functions/StringEscaperTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSinkTest.java index 11566a0c7b02..c02ac60bbbb7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSourceTest.java index 9fe9cde784ae..052000c8a12b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/DOTDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/DOTDataSinkTest.java index 482a2ecf65a6..c44be781d121 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/DOTDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/DOTDataSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimpleTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimpleTest.java index cef89461a8f3..6f2dc8dd348f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimpleTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/dot/functions/DotFileFormatSimpleTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSourceTest.java index 8155f421f86e..9be90186a9e6 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/EdgeListDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSourceTest.java index 80c4c2589ea0..6c9bfad92cf3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/edgelist/VertexLabeledEdgeListDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/gdl/GDLDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/gdl/GDLDataSinkTest.java index d881c488a9c7..dbc2b7dec874 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/gdl/GDLDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/gdl/GDLDataSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/graph/GraphDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/graph/GraphDataSourceTest.java index ce72c8bc7b84..86366cb0f0dc 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/graph/GraphDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/graph/GraphDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/image/ImageDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/image/ImageDataSinkTest.java index c13c6f657a9f..78d9008fe3ec 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/image/ImageDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/image/ImageDataSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/mtx/MtxDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/mtx/MtxDataSourceTest.java index 44d2e862b355..c2dac54391ae 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/mtx/MtxDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/mtx/MtxDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSinkTest.java index b995f65d05ba..18495076d075 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/statistics/GraphStatisticsDataSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSinkTest.java index 5498c9e83d78..981f1c754807 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java index e4c372790dd2..b7be7b738d93 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/GradoopFlinkTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/GradoopFlinkTestBase.java index fe4b46b6e7ec..6b8fad4d3915 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/GradoopFlinkTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/GradoopFlinkTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GradoopFlinkTestUtils.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GradoopFlinkTestUtils.java index e0d67e37c91d..55e5286690cd 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GradoopFlinkTestUtils.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GradoopFlinkTestUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GraphTransactionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GraphTransactionTest.java index 661c33f6e0bc..63f871891bc2 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GraphTransactionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/GraphTransactionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/LogicalGraphTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/LogicalGraphTest.java index de6611b05d2a..85a7507c90ec 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/LogicalGraphTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/LogicalGraphTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactoryTest.java index 20e1c5c23f5f..b94ab4073e25 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/epgm/GraphCollectionFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsInTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsInTest.java index 8bb9ef79104c..e8780b164315 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsInTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/LabelIsInTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RemovePropertiesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RemovePropertiesTest.java index 5c1281c8d6fd..99b15d197268 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RemovePropertiesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RemovePropertiesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabelTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabelTest.java index fd5f42285ece..e06c77d64e25 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabelTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenameLabelTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeysTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeysTest.java index 458a15283499..a649e02b7bd9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeysTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/RenamePropertyKeysTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/UpdateEdgeSourceTargetTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/UpdateEdgeSourceTargetTest.java index f01677098fa8..3f62d7d61247 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/UpdateEdgeSourceTargetTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/epgm/UpdateEdgeSourceTargetTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunctionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunctionTest.java index a53a037c5787..be0e4d4d0c01 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunctionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/AbstractRichCombinedFilterFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilterTest.java index af8b7bcad615..fc9eae16d89f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/functions/filters/CombinableFilterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/FlinkGradoopIdSetTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/FlinkGradoopIdSetTest.java index b31ada705505..7fe8361641ca 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/FlinkGradoopIdSetTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/FlinkGradoopIdSetTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/GradoopIdSerializationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/GradoopIdSerializationTest.java index 9f59a7b87283..790227599bda 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/GradoopIdSerializationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/id/GradoopIdSerializationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/GraphCollectionLayoutFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/GraphCollectionLayoutFactoryTest.java index c2521bddc8c6..60f32d41cfdc 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/GraphCollectionLayoutFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/GraphCollectionLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/LogicalGraphLayoutFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/LogicalGraphLayoutFactoryTest.java index f298bdb1723a..7b2f6b0141a4 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/LogicalGraphLayoutFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/LogicalGraphLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactoryTest.java index 2439c4fe000b..d89000c52940 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVECollectionLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactoryTest.java index 98a0d4a9bafa..282d8162608d 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java index 876ac9913db9..431d54997197 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactoryTest.java index 6d5d890734dc..1ea1cbffc08c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVECollectionLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactoryTest.java index e482f73c37ba..ce8598a83a9b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVEGraphLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java index ce51d529394d..0caf9536bb1c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactoryTest.java index a86c923c495a..46adc7afd604 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutTest.java index 68b6fe51d9cd..7bac47d6cae9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/transactional/TxCollectionLayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/AggregationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/AggregationTest.java index 2864f5bf7b68..5fb05ecc70e9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/AggregationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/AggregationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationGVELayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationGVELayoutTest.java index 70b63bd38ade..4b8d2c47a18d 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationGVELayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationGVELayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTest.java index 6371853869ce..4bcad744a2db 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTxLayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTxLayoutTest.java index f6940c0acaa6..49bf86f5ab3f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTxLayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/ApplyAggregationTxLayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SumPlusOne.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SumPlusOne.java index 8504060e608c..346e7c333d71 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SumPlusOne.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/SumPlusOne.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AveragePropertyTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AveragePropertyTest.java index 61da23d7ac8d..294fb7275acd 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AveragePropertyTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/average/AveragePropertyTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java index cb9c1eceb23d..107ec6235195 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/max/MaxTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java index 962cadbe6554..22cecb5625a8 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/aggregation/functions/min/MinTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionOperatorsTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionOperatorsTestBase.java index d0b03880f77a..333d024f3240 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionOperatorsTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryCollectionOperatorsTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryGraphOperatorsTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryGraphOperatorsTestBase.java index ae44b876c4c9..6585b5c87aaf 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryGraphOperatorsTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/BinaryGraphOperatorsTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/ReducibleBinaryOperatorsTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/ReducibleBinaryOperatorsTestBase.java index 02e1f4c46957..0b0b1be05936 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/ReducibleBinaryOperatorsTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/base/ReducibleBinaryOperatorsTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/cloning/CloningTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/cloning/CloningTest.java index ef769ca2c4f0..cb41a44740b3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/cloning/CloningTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/cloning/CloningTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/combination/CombinationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/combination/CombinationTest.java index e1b83b3e56c4..af057e76bef9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/combination/CombinationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/combination/CombinationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/difference/DifferenceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/difference/DifferenceTest.java index fc7dfd7946d9..2dfd700cc857 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/difference/DifferenceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/difference/DifferenceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIdTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIdTest.java index e89d063dac34..601aec5d404c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIdTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIdTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTest.java index 2a177d80e8d2..18e4f8b5f5f5 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java index af003159db5e..8a7351bf8f06 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphismTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphismTest.java index 60c7ff88501a..8d5936448a8a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphismTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/GroupByIsomorphismTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java index 813553aed170..fa054f81e7b7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/exclusion/ExclusionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/exclusion/ExclusionTest.java index 85cb0b11805e..fa0c00bdba23 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/exclusion/ExclusionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/exclusion/ExclusionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java index a218881b3bcd..d2c91836b1e7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionUtils.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionUtils.java index 79c07b44618d..4fb9bf7a8de3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionUtils.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingBuilderTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingBuilderTest.java index 22176b3d9f6c..c3734c120f02 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingBuilderTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineTest.java index b1a7375fe07f..1f632ecc0750 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineVertexRetentionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineVertexRetentionTest.java index bed75afd9435..f6d35643e722 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineVertexRetentionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupCombineVertexRetentionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceTest.java index c9dc0cd06e72..04cde8ab1bf4 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceVertexRetentionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceVertexRetentionTest.java index 5cc7e1c2ea5f..31b20aeb9b0b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceVertexRetentionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingGroupReduceVertexRetentionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingTestBase.java index fb2b3b0295aa..30e68d308114 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/GroupingTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificGroupingTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificGroupingTestBase.java index 96ba19405fc2..2e9ee775b42c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificGroupingTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificGroupingTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificWithCrossGroupingTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificWithCrossGroupingTestBase.java index 7d6e6fc201eb..719d380eb7ce 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificWithCrossGroupingTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/LabelSpecificWithCrossGroupingTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/TupleBasedGroupingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/TupleBasedGroupingTest.java index c324dd0d1a53..d2db8242c9e7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/TupleBasedGroupingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/TupleBasedGroupingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/VertexRetentionTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/VertexRetentionTestBase.java index bd1d7c5c7242..ec950d0e46fd 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/VertexRetentionTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/grouping/VertexRetentionTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/intersection/ReduceIntersectionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/intersection/ReduceIntersectionTest.java index 9ba9507c209b..a65fff5d9987 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/intersection/ReduceIntersectionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/intersection/ReduceIntersectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/LabelSpecificAggregationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/LabelSpecificAggregationTest.java index 5e20bda52e38..46cece992b5b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/LabelSpecificAggregationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/functions/LabelSpecificAggregationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelSpecificKeyFunctionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelSpecificKeyFunctionTest.java index 61a1057498b3..dc8cd293a040 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelSpecificKeyFunctionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/keyedgrouping/keys/LabelSpecificKeyFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouterTest.java index a4ff9ffb3cc3..319c3bf0e210 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/CentroidFRLayouterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouterTest.java index 989bdcc37386..1e2a7aef855a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FRLayouterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouterTest.java index edd1a56a03c9..4015eb21b05c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/FusingFRLayouterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithmTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithmTest.java index 4ca58f0604c4..be87ca7bd13a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithmTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/LayoutingAlgorithmTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouterTest.java index 47fd700a6e7b..6a63d6325f25 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/RandomLayouterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouterTest.java index b6c43310e384..cb4b57b62fb7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/SamplingFRLayouterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionFunctionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionFunctionTest.java index 4de7ad24590f..772a7e379075 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionFunctionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/AverageVertexPositionFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapperTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapperTest.java index 7fc8f5b6bd54..05a735a8479b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapperTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidRepulsionForceMapperTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdaterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdaterTest.java index 7aaadffdeee3..c12ba98d5e42 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdaterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/CentroidUpdaterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunctionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunctionTest.java index de00d2c1ca94..8123997e9ccf 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunctionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/DefaultVertexCompareFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunctionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunctionTest.java index 2af5753b3869..90eafb6722b3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunctionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRAttractionFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellTest.java index d94ab8546dfc..60f73dc515ce 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRCellTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicatorTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicatorTest.java index f4db8cb3b3f9..0b6b30056621 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicatorTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRForceApplicatorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunctionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunctionTest.java index f1777b8f76d7..683769e044d0 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunctionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/FRRepulsionFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/Util.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/Util.java index c6e4e18a6e6b..6a85a94d686e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/Util.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/Util.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusorTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusorTest.java index d7b9192599be..25290d6e7a9f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusorTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/functions/VertexFusorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/util/VectorTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/util/VectorTest.java index 0a70dad57f69..87a66f8d6e3e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/util/VectorTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/layouting/util/VectorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/limit/LimitTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/limit/LimitTest.java index 5e0a359c2f14..9550ea9bf4d4 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/limit/LimitTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/limit/LimitTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/TestData.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/TestData.java index d7d55a0a501c..2b82edc0eff9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/TestData.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/TestData.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraphTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraphTest.java index 9007b3af648d..331b4474ee7f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraphTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/AddGraphElementToNewGraphTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java index c338d3f1d703..89c682b398e7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverserTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverserTest.java index 4218b630bda2..f5bb636921a2 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverserTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverserTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java index 156c9193af51..dbbdc100cb1d 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java index 797fd95bb730..ae2174dffe85 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java index ffe16e1cfb86..2ccdd8d25f6b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java index 5dfdc96e8482..99f98b6c9be5 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFTest.java index f57e4b47c8b3..648bcb2211ec 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java index 74eeab93a325..a0331c01234a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java index cbe0710888c6..076a309fdf28 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java index 5084622a4cdf..29aad6e0bfbd 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java index 39841435e0af..04a91253ee2c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java index 752cd9045575..91e298eff825 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java index 839ebfa657f8..adb92f6805df 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java index 60aae737981c..12b8b432e240 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java index f24e4c04617c..fb69d285856a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReaderTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReaderTest.java index 970638b6c3cb..6765036423ab 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReaderTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsLocalFSReaderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsTest.java index 170199af8cf0..18188fd6a9f4 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/statistics/GraphStatisticsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingTest.java index 68d3232e91bd..96ff0a867f48 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingWithBindingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingWithBindingTest.java index 0d8036bbdb13..5cfa2296408e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingWithBindingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/PatternMatchingWithBindingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphHomomorphismTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphHomomorphismTest.java index 475971dba006..a8e4a7a73069 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphHomomorphismTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphHomomorphismTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphIsomorphismTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphIsomorphismTest.java index c8e1a4651b65..53482edc3056 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphIsomorphismTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/SubgraphIsomorphismTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherGraphConstructionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherGraphConstructionTest.java index 69c9f1324226..13c083f975cd 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherGraphConstructionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherGraphConstructionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingHomomorphismTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingHomomorphismTest.java index 6e09b7982c66..509732d6f40c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingHomomorphismTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingHomomorphismTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingIsomorphismTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingIsomorphismTest.java index b7a840918ddc..2f9dad3a6939 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingIsomorphismTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/CypherPatternMatchingIsomorphismTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/QueryEngineITTests.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/QueryEngineITTests.java index 0e7f1fa7249f..24deff7df0ca 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/QueryEngineITTests.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/QueryEngineITTests.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/EmbeddingFactoryTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/EmbeddingFactoryTest.java index dae57c7b8f90..6adc5f0f0151 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/EmbeddingFactoryTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/EmbeddingFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/functions/ReverseEdgeEmbeddingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/functions/ReverseEdgeEmbeddingTest.java index 16f1655ee9f7..be6b2bad1489 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/functions/ReverseEdgeEmbeddingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/functions/ReverseEdgeEmbeddingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingMetaDataTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingMetaDataTest.java index abdf08059197..c08201315872 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingMetaDataTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingMetaDataTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTest.java index fa9c906267ce..56b25a756550 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTestUtils.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTestUtils.java index f6a8045f6c4f..ca82d6148b11 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTestUtils.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/common/pojos/EmbeddingTestUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java index c5ea0b62433a..c9a48a403258 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperatorTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperatorTest.java index 7fb3220c6d2f..50a5a6719a91 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperatorTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/PhysicalOperatorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulkTest.java index a5392c4c5da7..8b6ca740245d 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsBulkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoopTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoopTest.java index 6e94428b2482..d373284e80ba 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoopTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsForLoopTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsTest.java index 042a42045a7f..59d39ff6cc89 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/ExpandEmbeddingsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPathsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPathsTest.java index b98ad8878e97..e3770a789a20 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPathsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPathsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateInitialExpandEmbeddingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateInitialExpandEmbeddingTest.java index 94d31e02bd3d..8f831f4b053c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateInitialExpandEmbeddingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/CreateInitialExpandEmbeddingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumnTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumnTest.java index 170a5a3a3105..3d085ccd008e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumnTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/ExtractExpandColumnTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddingsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddingsTest.java index 67b13280ada6..39759ce62ba8 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddingsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/MergeExpandEmbeddingsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbeddingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbeddingTest.java index 80b07e9f59b3..2f6135bf75cb 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbeddingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/PostProcessExpandEmbeddingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdgesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdgesTest.java index 24baedddf307..7bb8d34eb690 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdgesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectEdgesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriplesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriplesTest.java index 920e78e0ef23..4e3c997c9beb 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriplesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTriplesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesTest.java index ad9bb0796ad5..15ec9236e47b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectVerticesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddingsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddingsTest.java index 6a895393bd17..cb208814f26c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddingsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/filter/FilterEmbeddingsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProductTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProductTest.java index d6e90290c760..f0f28d6c5475 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProductTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/CartesianProductTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddingsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddingsTest.java index f4ad0d14cf79..b0d67934089f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddingsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/JoinEmbeddingsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoinTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoinTest.java index 47518820aa25..6b21cab566e0 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoinTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/ValueJoinTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java index 20d66f2fceda..796e3be804bc 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java index 4b5eaf5c0924..5342b1d0434e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddingsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddingsTest.java index 46bef1407879..2f9a1c52ecba 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddingsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/MergeEmbeddingsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdgesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdgesTest.java index 3fce3380793d..52b5514d1a42 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdgesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEdgesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsTest.java index cc313ff6f6d0..233feaafd71a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectEmbeddingsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVerticesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVerticesTest.java index ff5d958087d6..dbd89a0422fe 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVerticesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/project/ProjectVerticesTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/EstimatorTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/EstimatorTestBase.java index a93a2ddc981a..ea33fede424a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/EstimatorTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/EstimatorTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimatorTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimatorTest.java index 91039c8738dd..997b03fbe444 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimatorTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/FilterEstimatorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimatorTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimatorTest.java index 68b3b4775419..787c60e017b0 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimatorTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimatorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimatorTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimatorTest.java index 9a99c019b0ad..4aa4156bad4e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimatorTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/QueryPlanEstimatorTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/MockPlanNode.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/MockPlanNode.java index dd80c3eaf29c..44aa1a5eb2e7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/MockPlanNode.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/MockPlanNode.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNodeTest.java index 44836f8fac7d..f83e497ab79e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/CartesianProductNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNodeTest.java index b37506ce3b98..2825421433c9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ExpandEmbeddingsNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNodeTest.java index f3acce8d17b5..aa74da10cfbe 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/JoinEmbeddingsNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNodeTest.java index 5fb838408665..ecdd64ea891e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/binary/ValueJoinNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNodeTest.java index 175be046b438..5e5d183cac96 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectEdgesNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNodeTest.java index 0413980f3a75..e3286d08cfc5 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectVerticesNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNodeTest.java index 84b7fff03cdb..53a41be70110 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/FilterEmbeddingsNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNodeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNodeTest.java index bc5091cae45c..24ab0f9ecc54 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNodeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairBulkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairBulkTest.java index e3a7612eea89..6707eeb4767b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairBulkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairBulkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairLoopUnrollingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairLoopUnrollingTest.java index 10d67b902a2d..c434d59fbeed 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairLoopUnrollingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismSetPairLoopUnrollingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismTriplesForLoopTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismTriplesForLoopTest.java index 62e2967a44f5..a99e6c5ebc90 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismTriplesForLoopTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeHomomorphismTriplesForLoopTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairBulkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairBulkTest.java index 1f4a3e647bd7..53ab9cabce58 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairBulkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairBulkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairForLoopTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairForLoopTest.java index 2a08ecfae5ee..174e92504172 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairForLoopTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismSetPairForLoopTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismTriplesForLoopTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismTriplesForLoopTest.java index 58b1c6291a60..ba5d3ff6617e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismTriplesForLoopTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/preserving/explorative/ExplorativeIsomorphismTriplesForLoopTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationBulkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationBulkTest.java index eda53696fb51..bb68701f30e8 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationBulkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationBulkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationDeltaTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationDeltaTest.java index 941dcc64f15b..cf82ab56f579 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationDeltaTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationDeltaTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationTest.java index e0fd68ee1c61..8760111fe071 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/DualSimulationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatchingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatchingTest.java index 45dcd7f37d93..ed3da9f0494b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatchingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/transactional/TransactionalPatternMatchingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/neighborhood/NeighborhoodTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/neighborhood/NeighborhoodTest.java index 47dfedc5b268..fe58c2328a95 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/neighborhood/NeighborhoodTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/neighborhood/NeighborhoodTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/overlap/OverlapTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/overlap/OverlapTest.java index c4879e85602d..1ede41794f84 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/overlap/OverlapTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/overlap/OverlapTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/rollup/RollUpTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/rollup/RollUpTest.java index 4abd35622c85..a0b66e95dd69 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/rollup/RollUpTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/rollup/RollUpTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSamplingTest.java index be56f56c5f58..38508894ff41 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/ParameterizedTestForGraphSampling.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/ParameterizedTestForGraphSampling.java index 448fc2e95d69..f63065b35f54 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/ParameterizedTestForGraphSampling.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/ParameterizedTestForGraphSampling.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSamplingTest.java index d098fc060b8d..7deec0b66ad9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomEdgeSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java index 6dfd3a2c0f32..e560512f23f8 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSamplingTest.java index 06f84cb2565a..5099b673bbe0 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSamplingTest.java index 27010b3fd3ff..c70d4ab15a68 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexEdgeSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSamplingTest.java index b4de2fe47725..26e16f1ceead 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSamplingTest.java index 8a1790757e9d..5245f755cce7 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSamplingTest.java index d7017cfb366f..845420926bf4 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSamplingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java index 861c4f240e03..6afa5d33d110 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageDegreeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageDegreeTest.java index c24a74943a6d..77e546eaf7d3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageDegreeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageDegreeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageIncomingDegreeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageIncomingDegreeTest.java index 547dbf97e3a7..1a798e3c897e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageIncomingDegreeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageIncomingDegreeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageOutgoingDegreeTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageOutgoingDegreeTest.java index 1293eac0fcdd..5e2c41487eab 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageOutgoingDegreeTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageOutgoingDegreeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java index 65b6fa06cb99..8a3742f56f7e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/DegreeCentralityTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/DegreeCentralityTest.java index 73150d8fa4eb..83169280b710 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/DegreeCentralityTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/DegreeCentralityTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/GraphDensityTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/GraphDensityTest.java index 637e7716d622..708ed8185d48 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/GraphDensityTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/GraphDensityTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java index 08406a201817..c7e1429eb03d 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/selection/SelectionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/selection/SelectionTest.java index 0cdccddd93a3..9c43ad9b2e7c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/selection/SelectionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/selection/SelectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java index 1e710b584046..162f924bd27e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/statistics/StatisticsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/statistics/StatisticsTest.java index a6e96ff187b7..7b39232e1c8d 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/statistics/StatisticsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/statistics/StatisticsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/subgraph/SubgraphTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/subgraph/SubgraphTest.java index 39252732eeac..491bf3e4cfeb 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/subgraph/SubgraphTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/subgraph/SubgraphTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilderTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilderTest.java index c22beee2be00..524b01db013a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilderTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationGVELayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationGVELayoutTest.java index 4435953709b5..0552008abaf1 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationGVELayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationGVELayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTest.java index 979e806385fc..c5fbb3073884 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTxLayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTxLayoutTest.java index 45b14a018528..07cbe0b0ec88 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTxLayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/ApplyTransformationTxLayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/TransformationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/TransformationTest.java index 37183550f079..e9c874868193 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/TransformationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/transformation/TransformationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/union/UnionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/union/UnionTest.java index f612e3dcf31a..359560ae23f6 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/union/UnionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/union/UnionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java index 1b37940268b9..f7224a92c45b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/pojo/PojoSerializationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/pojo/PojoSerializationTest.java index 3caea706fce4..fa29539ed6e9 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/pojo/PojoSerializationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/pojo/PojoSerializationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/properties/PropertiesSerializationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/properties/PropertiesSerializationTest.java index 4a2670e8f914..a187a1a6c5df 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/properties/PropertiesSerializationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/properties/PropertiesSerializationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/representation/RepresentationConverterTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/representation/RepresentationConverterTest.java index 643e2494c70e..acd46ba63e63 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/representation/RepresentationConverterTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/representation/RepresentationConverterTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/util/FlinkAsciiGraphLoaderTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/util/FlinkAsciiGraphLoaderTest.java index 31f74f028b7f..a9dcf9e34536 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/util/FlinkAsciiGraphLoaderTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/util/FlinkAsciiGraphLoaderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-quickstart/src/main/resources/archetype-resources/src/main/java/GradoopApplication.java b/gradoop-quickstart/src/main/resources/archetype-resources/src/main/java/GradoopApplication.java index ee995b431ed0..2333b30574e7 100644 --- a/gradoop-quickstart/src/main/resources/archetype-resources/src/main/java/GradoopApplication.java +++ b/gradoop-quickstart/src/main/resources/archetype-resources/src/main/java/GradoopApplication.java @@ -2,7 +2,7 @@ #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/GradoopAccumuloConfig.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/GradoopAccumuloConfig.java index fa33923b1cd3..5b06ff573f6e 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/GradoopAccumuloConfig.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/GradoopAccumuloConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/package-info.java index c696404a8d3e..1627163c8dcf 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/config/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/AccumuloEPGMStore.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/AccumuloEPGMStore.java index aa2b237500f9..5c81cfe9d6d0 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/AccumuloEPGMStore.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/AccumuloEPGMStore.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloDefault.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloDefault.java index b77803d98cfb..c75b20a50a97 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloDefault.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloDefault.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloTables.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloTables.java index 352e75ae8ec1..ce32461b2de2 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloTables.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/AccumuloTables.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/package-info.java index dc6242882f0e..ae893acea5db 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/constants/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloEdgeHandler.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloEdgeHandler.java index f59060e0440d..2aea1d5b30d4 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloEdgeHandler.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloEdgeHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloGraphHandler.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloGraphHandler.java index cc4f6db8a8e6..712502db3568 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloGraphHandler.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloGraphHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloRowHandler.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloRowHandler.java index 5dd82ea26715..b7a68b9b88e0 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloRowHandler.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloRowHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloVertexHandler.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloVertexHandler.java index df03bcdb5360..a16a30bb1d0f 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloVertexHandler.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/AccumuloVertexHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/package-info.java index 0ed94643367a..875437f55a8b 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/handler/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloBase.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloBase.java index 69e2f623d65c..cff03db8b07b 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloBase.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSink.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSink.java index 586ecfa9e5bb..c2418b5211a2 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSink.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSource.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSource.java index a9fc2606006e..8f1f176a726c 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSource.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/AccumuloDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/BaseInputFormat.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/BaseInputFormat.java index 8fb14774e987..179886a55332 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/BaseInputFormat.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/BaseInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/EdgeInputFormat.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/EdgeInputFormat.java index 4e2d73d48f0a..e651a76555c1 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/EdgeInputFormat.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/EdgeInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/GraphHeadInputFormat.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/GraphHeadInputFormat.java index 32d3d7cc3808..fb7e5c019345 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/GraphHeadInputFormat.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/GraphHeadInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/VertexInputFormat.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/VertexInputFormat.java index 3e98dda3208e..2ce538adfc47 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/VertexInputFormat.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/VertexInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/package-info.java index dd74dc959ef0..d627e44b5348 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/inputformats/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/ElementOutputFormat.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/ElementOutputFormat.java index 95ccfb46727e..4e552c4ee82a 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/ElementOutputFormat.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/ElementOutputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/package-info.java index 899f5a19c007..5e8a17506c44 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/outputformats/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/package-info.java index 5fc1f3d51e8b..130950a34015 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/io/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/ClientClosableIterator.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/ClientClosableIterator.java index 30d4ffa04335..e2a0ba28cc79 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/ClientClosableIterator.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/ClientClosableIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/package-info.java index 3f56ea8730ac..b148ff001c0f 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/client/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/BaseElementIterator.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/BaseElementIterator.java index cd927c19466e..860ca8b9b53f 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/BaseElementIterator.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/BaseElementIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopEdgeIterator.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopEdgeIterator.java index 23e7667d06a9..b0c37ff1096d 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopEdgeIterator.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopEdgeIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopGraphHeadIterator.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopGraphHeadIterator.java index c3fc8fca360b..ab1ba96576d4 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopGraphHeadIterator.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopGraphHeadIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopVertexIterator.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopVertexIterator.java index f162ac1973c9..79a653e1c5c5 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopVertexIterator.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/GradoopVertexIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/package-info.java index 85fee621491c..61771a762930 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/iterator/tserver/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/package-info.java index 4052f463b938..66ee93ed4123 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/AccumuloElementFilter.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/AccumuloElementFilter.java index 7e0b356434a3..08c7271b878d 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/AccumuloElementFilter.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/AccumuloElementFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/package-info.java index 4bff9646e216..308fa60bd247 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/And.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/And.java index d6d135ae6ae3..60c063cb6031 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/And.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/And.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Not.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Not.java index 1c2bf18e7587..c7c4d9ba6de4 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Not.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Not.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Or.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Or.java index 556f0e3cf62b..aeb46432c60f 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Or.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/Or.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/package-info.java index 9fa4ba51fff0..6be9f644d490 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/calculate/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelIn.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelIn.java index 9667fe1c7bc3..3cebf69788d7 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelIn.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelIn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelReg.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelReg.java index 119f15ed5950..ef6c45a7952a 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelReg.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloLabelReg.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropEquals.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropEquals.java index 6eb532d89422..9a6772b0be73 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropEquals.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropEquals.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropLargerThan.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropLargerThan.java index 89ea2ee29caf..1d4003c519ca 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropLargerThan.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropLargerThan.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropReg.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropReg.java index dbf95d903d0a..38c65a921c1c 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropReg.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/AccumuloPropReg.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/package-info.java index a59b2445ca72..d6b953a70c13 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/filter/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/AccumuloQueryHolder.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/AccumuloQueryHolder.java index 55b118036f75..146b18269bd4 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/AccumuloQueryHolder.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/AccumuloQueryHolder.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/package-info.java index de2eb3184f33..0b5ef28b4492 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/impl/predicate/query/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/AccumuloFilters.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/AccumuloFilters.java index 30b4abefc228..4135278eb83c 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/AccumuloFilters.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/AccumuloFilters.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/KryoUtils.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/KryoUtils.java index 03623d91ccff..80559741e553 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/KryoUtils.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/KryoUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/package-info.java b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/package-info.java index 09d7e3a11b76..81ee857ecf4f 100644 --- a/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/package-info.java +++ b/gradoop-store/gradoop-accumulo/src/main/java/org/gradoop/storage/accumulo/utils/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloStoreTestBase.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloStoreTestBase.java index f853253f6c2f..755bb1de21ac 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloStoreTestBase.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloStoreTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloTestSuite.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloTestSuite.java index 80b15b90c36f..621f95e57da9 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloTestSuite.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/AccumuloTestSuite.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/basic/StoreTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/basic/StoreTest.java index fdae7c98c764..b0c982c96e18 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/basic/StoreTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/basic/StoreTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/IOBasicTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/IOBasicTest.java index 4828d6cbe780..c09cdde079e3 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/IOBasicTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/IOBasicTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOEdgePredicateTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOEdgePredicateTest.java index 5f4e7f9b68f7..5f71204d228b 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOEdgePredicateTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOEdgePredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOElementIdRangeTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOElementIdRangeTest.java index 8ea8ce5d981b..40fa4a98fcd8 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOElementIdRangeTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOElementIdRangeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOGraphPredicateTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOGraphPredicateTest.java index b3b008f62b22..20d27a23f890 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOGraphPredicateTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOGraphPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOVertexPredicateTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOVertexPredicateTest.java index 7d794b9061fb..20cbcbff7341 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOVertexPredicateTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/io/source/IOVertexPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreBasicPredicateTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreBasicPredicateTest.java index 4b58edce2c74..efc112de796a 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreBasicPredicateTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreBasicPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreIdsPredicateTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreIdsPredicateTest.java index 2240e8a294f9..7ec84eeb4c61 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreIdsPredicateTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreIdsPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreLabelPredicateTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreLabelPredicateTest.java index 70e8107b7be4..d2c646a495e2 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreLabelPredicateTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StoreLabelPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StorePropPredicateTest.java b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StorePropPredicateTest.java index 7f499b53d2c4..7225866341bd 100644 --- a/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StorePropPredicateTest.java +++ b/gradoop-store/gradoop-accumulo/src/test/java/org/gradoop/storage/impl/accumulo/predicate/StorePropPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java index a504e6e73752..cf41ffd84fdc 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/package-info.java index 3d8323cbe93f..151170bb22fa 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/HBaseEPGMStore.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/HBaseEPGMStore.java index dc405b7fa73f..66383b77d810 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/HBaseEPGMStore.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/HBaseEPGMStore.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/EdgeHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/EdgeHandler.java index 55acbc5c1c3e..24ece6cfc196 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/EdgeHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/EdgeHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/ElementHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/ElementHandler.java index 59106564bc3f..76882fe420c1 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/ElementHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/ElementHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphElementHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphElementHandler.java index 641c14e3a2f3..eed542f9130f 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphElementHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphElementHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphHeadHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphHeadHandler.java index cedf196be6b7..e2897d42265f 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphHeadHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/GraphHeadHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/VertexHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/VertexHandler.java index 9dbdb25647ca..7743ea8076b6 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/VertexHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/VertexHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/package-info.java index d60ca5e6e1b3..0d249b7321f6 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/HBaseConstants.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/HBaseConstants.java index 372ba76fc94b..41fdbd50d642 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/HBaseConstants.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/HBaseConstants.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/package-info.java index 7561147e6e67..15deb4b46983 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/constants/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/HBaseEPGMStoreFactory.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/HBaseEPGMStoreFactory.java index b4aa8943643b..1b79df95ce0c 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/HBaseEPGMStoreFactory.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/HBaseEPGMStoreFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/package-info.java index ca73ff94c170..75421b74b8b0 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/factory/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseEdgeHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseEdgeHandler.java index abe163a169b0..2ea9c42a6876 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseEdgeHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseEdgeHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseElementHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseElementHandler.java index a2b0da4eb13a..9b3b35e18ee4 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseElementHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseElementHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphElementHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphElementHandler.java index 7500e4182e19..d046c1a50420 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphElementHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphElementHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphHeadHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphHeadHandler.java index 203f25a38ada..2ed2f373efb4 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphHeadHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseGraphHeadHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseVertexHandler.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseVertexHandler.java index ae21b0dee760..116b108c0c88 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseVertexHandler.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/HBaseVertexHandler.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/package-info.java index 03e5b1d5d4dc..a493161a1961 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/handler/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseBase.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseBase.java index a2553876028d..3ecdc1a9351c 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseBase.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSink.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSink.java index 2499f8c1f7da..c24dc8b95422 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSink.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSource.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSource.java index f971de375a11..61f39acd4768 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSource.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/HBaseDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildEdgeMutation.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildEdgeMutation.java index e8c0084cecf1..3df5babd034e 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildEdgeMutation.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildEdgeMutation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildGraphHeadMutation.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildGraphHeadMutation.java index de68f843f2be..c12397f40b26 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildGraphHeadMutation.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildGraphHeadMutation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildVertexMutation.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildVertexMutation.java index 90845092230d..1fba7986f929 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildVertexMutation.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/BuildVertexMutation.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/package-info.java index e0d6d68cf822..1b6e7b9c691f 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/BaseTableInputFormat.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/BaseTableInputFormat.java index 91520f2b07e0..422846020c90 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/BaseTableInputFormat.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/BaseTableInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/EdgeTableInputFormat.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/EdgeTableInputFormat.java index 4dfb104f32f9..f2c76866a701 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/EdgeTableInputFormat.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/EdgeTableInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/GraphHeadTableInputFormat.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/GraphHeadTableInputFormat.java index a375790f0de4..d53a96abdaaa 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/GraphHeadTableInputFormat.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/GraphHeadTableInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/VertexTableInputFormat.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/VertexTableInputFormat.java index 852d2cfb406e..20b4844fc5f6 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/VertexTableInputFormat.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/VertexTableInputFormat.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/package-info.java index 5d8e31dcf4dd..6644723f4a7b 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/inputformats/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/package-info.java index 1dfd3a27f497..7dc1748b419c 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/io/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseEdgeIterator.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseEdgeIterator.java index 84eeb12e09d1..b5e3dad27004 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseEdgeIterator.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseEdgeIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseGraphIterator.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseGraphIterator.java index 2b4d812e144f..f263a0820ae7 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseGraphIterator.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseGraphIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseVertexIterator.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseVertexIterator.java index e359cb0f1622..39177c0b6cf0 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseVertexIterator.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/HBaseVertexIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/package-info.java index 1126a728bc3c..a69605403374 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/iterator/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/package-info.java index 29389e550cd4..d7ee225b857c 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/HBaseFilterUtils.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/HBaseFilterUtils.java index 032d40ca1bf4..63ba97d1b14e 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/HBaseFilterUtils.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/HBaseFilterUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/HBaseElementFilter.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/HBaseElementFilter.java index bcee0063c55c..c31d20e499b3 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/HBaseElementFilter.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/HBaseElementFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/package-info.java index 487163d73bcf..ea7a544a3e95 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/And.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/And.java index 48c564a484c2..d5befb51eb0d 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/And.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/And.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Not.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Not.java index 453f4613bab1..cff024b36368 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Not.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Not.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Or.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Or.java index 0c057fd83b63..ab5a5ac05454 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Or.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/Or.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/package-info.java index c7052aa13deb..8e3e7978ed3d 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/calculate/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelIn.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelIn.java index 70645fd21822..5f7f52b51c1d 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelIn.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelIn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelReg.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelReg.java index 6d2fd0905619..16e2758f1608 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelReg.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBaseLabelReg.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropEquals.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropEquals.java index 4b11bcc84c56..b51e3079daf0 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropEquals.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropEquals.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropLargerThan.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropLargerThan.java index da1d073f2927..146a30baa154 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropLargerThan.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropLargerThan.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropReg.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropReg.java index 8d72597a79bd..2683a1b7919c 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropReg.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/HBasePropReg.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/package-info.java index 156002f2e741..bfb6e9c4bef0 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/package-info.java index af8085a0594b..52bdf202ef2a 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/impl/predicate/filter/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/HBaseFilters.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/HBaseFilters.java index 60f4384b2ddb..4430c8feaf4a 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/HBaseFilters.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/HBaseFilters.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RegionSplitter.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RegionSplitter.java index c0cc1a0ac900..5cbd2645a069 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RegionSplitter.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RegionSplitter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RowKeyDistributor.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RowKeyDistributor.java index b560fd2273fc..f85d89abf216 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RowKeyDistributor.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/RowKeyDistributor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/package-info.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/package-info.java index afbbbf933d57..5f6f5b3b687d 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/package-info.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/utils/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/GradoopHBaseTestBase.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/GradoopHBaseTestBase.java index 9f879b1edefa..9250a3b62ece 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/GradoopHBaseTestBase.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/GradoopHBaseTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseEPGMStoreTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseEPGMStoreTest.java index 7929e80d543a..aa3e94cc0eeb 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseEPGMStoreTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseEPGMStoreTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseGraphStoreTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseGraphStoreTest.java index 59c184052ecc..4e552a76c7ee 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseGraphStoreTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/HBaseGraphStoreTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/io/HBaseDataSinkSourceTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/io/HBaseDataSinkSourceTest.java index 31ecd4321718..471d49e261c7 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/io/HBaseDataSinkSourceTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/io/HBaseDataSinkSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelInTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelInTest.java index afb78286474d..ab41644695a4 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelInTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelInTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelRegTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelRegTest.java index 7a28d39f84d4..75f58fdab586 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelRegTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBaseLabelRegTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropEqualsTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropEqualsTest.java index 40da15216435..1b74ae0c8752 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropEqualsTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropEqualsTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropLargerThanTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropLargerThanTest.java index ecd99b6c0171..66effd697972 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropLargerThanTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropLargerThanTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropRegTest.java b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropRegTest.java index ec746709dce5..683d3be0e6d0 100644 --- a/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropRegTest.java +++ b/gradoop-store/gradoop-hbase/src/test/java/org/gradoop/storage/impl/hbase/predicate/filter/impl/HBasePropRegTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMConfigProvider.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMConfigProvider.java index 41151cafda26..32f842e5e159 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMConfigProvider.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMConfigProvider.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphInput.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphInput.java index 6b2ad75e2809..854b055233ca 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphInput.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphInput.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphOutput.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphOutput.java index 35fcdd85969f..1793fd3ceae8 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphOutput.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphOutput.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphPredictableOutput.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphPredictableOutput.java index 8cfcacc124e4..80085f1435fc 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphPredictableOutput.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/EPGMGraphPredictableOutput.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/package-info.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/package-info.java index fa6d55329a9b..39460ca1c8c2 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/package-info.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/GradoopStoreConfig.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/GradoopStoreConfig.java index 04172bfe5f26..d3e270ee8ce7 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/GradoopStoreConfig.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/GradoopStoreConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/package-info.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/package-info.java index bfde28ed2ca4..6d3f82ad904c 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/package-info.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/config/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/FilterableDataSource.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/FilterableDataSource.java index 4b37b2747950..27afb976aa41 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/FilterableDataSource.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/FilterableDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/package-info.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/package-info.java index baaff3551766..a8a0e1a06cd2 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/package-info.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/io/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/ClosableIterator.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/ClosableIterator.java index e3c5da11f56e..9ebe001679de 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/ClosableIterator.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/ClosableIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/EmptyClosableIterator.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/EmptyClosableIterator.java index cf6b400ec729..86bc2e3b6954 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/EmptyClosableIterator.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/EmptyClosableIterator.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/package-info.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/package-info.java index af3afa2798ff..32feaf65ca94 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/package-info.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/iterator/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/ElementFilter.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/ElementFilter.java index 8c510e69a762..012b65ddda22 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/ElementFilter.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/ElementFilter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/package-info.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/package-info.java index 2da990d16a69..86d0145e1225 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/package-info.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelIn.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelIn.java index 5c8b89cbd15d..6a8016a921f6 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelIn.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelIn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelReg.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelReg.java index dbe32e03f4ce..d8bc8c582464 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelReg.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/LabelReg.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropEquals.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropEquals.java index 5d34a9d1186e..f62d26a1c3ab 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropEquals.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropEquals.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropLargerThan.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropLargerThan.java index 8b09e904a27e..fa0a2025aee9 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropLargerThan.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropLargerThan.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropReg.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropReg.java index 4dee9cdfd0c3..317a4fb65ade 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropReg.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/PropReg.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/package-info.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/package-info.java index 9c00a8cc8188..e5cf2d508463 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/package-info.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/filter/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/ElementQuery.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/ElementQuery.java index 160d0405803b..94ef985b561d 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/ElementQuery.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/ElementQuery.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/Query.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/Query.java index f137d9a755ef..00e183a1bcbe 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/Query.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/Query.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/package-info.java b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/package-info.java index 51214a381d52..bebad1acc28e 100644 --- a/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/package-info.java +++ b/gradoop-store/gradoop-store-api/src/main/java/org/gradoop/storage/common/predicate/query/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSink.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSink.java index aa3fe64f7d18..70ce3b78fbbe 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSink.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSource.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSource.java index 28db7c4807d3..47be262a69dc 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSource.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/TemporalDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/package-info.java index da245a91bed4..b91cdbcc752c 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSink.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSink.java index 62c43dc7ffae..9daa7d6c4e9a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSink.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSink.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSource.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSource.java index fda76105a560..d0e9a184e01c 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSource.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/TemporalCSVDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalEdge.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalEdge.java index 895ba372ca0d..b45659af8686 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalEdge.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalElement.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalElement.java index dc227dc0a014..28fb194126ae 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalElement.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalGraphHead.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalGraphHead.java index c8bab2bd2576..58b6e173921e 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalGraphHead.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalVertex.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalVertex.java index 345ed85ca40a..cef2e6b41e92 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalVertex.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/CSVLineToTemporalVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalEdgeToTemporalCSVEdge.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalEdgeToTemporalCSVEdge.java index ad964602efe7..c404d1998608 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalEdgeToTemporalCSVEdge.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalEdgeToTemporalCSVEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalElementToCSV.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalElementToCSV.java index 1641addb47a0..1e6702014a66 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalElementToCSV.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalElementToCSV.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalGraphHeadToTemporalCSVGraphHead.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalGraphHeadToTemporalCSVGraphHead.java index d6940005731c..843ea0036628 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalGraphHeadToTemporalCSVGraphHead.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalGraphHeadToTemporalCSVGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalVertexToTemporalCSVVertex.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalVertexToTemporalCSVVertex.java index fe90a2be8c9e..3c5cb7249a6f 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalVertexToTemporalCSVVertex.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/TemporalVertexToTemporalCSVVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/package-info.java index 91f74d7b49bf..eea8010fd86b 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/package-info.java index 4c36ff150798..521c33805c1f 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVEdge.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVEdge.java index 2b15d8b91b2e..4ddd2854f2b1 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVEdge.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVElement.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVElement.java index f42a259ccbd7..42ceae933266 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVElement.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVGraphHead.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVGraphHead.java index 1ad23e1d34f0..13fc5d66cae1 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVGraphHead.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVVertex.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVVertex.java index 158924f24cb8..7c82f880cc08 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVVertex.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/TemporalCSVVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/package-info.java index 1c468a234cf6..8415cebdc764 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/tuples/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphCollectionOperators.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphCollectionOperators.java index 57c954e4db69..2f9a58017a71 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphCollectionOperators.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphCollectionOperators.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java index d2ba9591d8df..2d7a5b5b7709 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TimeDimension.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TimeDimension.java index 5f1d677f7c5a..2328c081b296 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TimeDimension.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TimeDimension.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunction.java index 5305651d6da7..8c6ffc88d443 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalPredicate.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalPredicate.java index 30f54a5da1a8..b49946f14816 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalPredicate.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TemporalPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TimeIntervalExtractor.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TimeIntervalExtractor.java index 4511ad5f4f03..ce74012aa84a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TimeIntervalExtractor.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/TimeIntervalExtractor.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/package-info.java index da978a8e8dc5..ed63d17fc6ae 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/package-info.java index 67ccb50be136..551dc4cf608d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraph.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraph.java index bcce2696d405..a980cd7e1a2a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraph.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraph.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollection.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollection.java index 6e529d435f25..1dedd0c808f8 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollection.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollection.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java index be5ef1655f3a..03315c46d439 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java index 6684554bfa73..30af590f4fc8 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/package-info.java index f43798806945..4a2a6daf3d4e 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/All.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/All.java index d23bbdd17d66..77ffbceb3c30 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/All.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/All.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/AsOf.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/AsOf.java index 8c6cc0809a38..01af6870741a 100755 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/AsOf.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/AsOf.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Between.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Between.java index 35c565ed9be4..c1057f869c4f 100755 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Between.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Between.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ContainedIn.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ContainedIn.java index 2809b03f0ce5..4309276a946e 100755 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ContainedIn.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ContainedIn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/CreatedIn.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/CreatedIn.java index ecb4a49bab83..b929044569ed 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/CreatedIn.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/CreatedIn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/DeletedIn.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/DeletedIn.java index 320e1837f634..3830c3b717c0 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/DeletedIn.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/DeletedIn.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/FromTo.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/FromTo.java index 03ee39e7ffa1..2a95ec54ebb3 100755 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/FromTo.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/FromTo.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Overlaps.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Overlaps.java index 654fe7136d02..b605479072b9 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Overlaps.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Overlaps.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Precedes.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Precedes.java index eac42079514e..af344fa7c983 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Precedes.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Precedes.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Succeeds.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Succeeds.java index aaad23ca9b80..5fbaf4d22b1a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Succeeds.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/Succeeds.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ValidDuring.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ValidDuring.java index dafdb538f8fe..8bee99c318c7 100755 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ValidDuring.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/ValidDuring.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/package-info.java index 367726f5ac0b..9e58e7bb0d12 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/predicates/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/EdgeToTemporalEdge.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/EdgeToTemporalEdge.java index 082b66789db6..de39da645ec2 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/EdgeToTemporalEdge.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/EdgeToTemporalEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/GraphHeadToTemporalGraphHead.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/GraphHeadToTemporalGraphHead.java index dba0c34eec99..1637651c1d00 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/GraphHeadToTemporalGraphHead.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/GraphHeadToTemporalGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalEdgeToEdge.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalEdgeToEdge.java index 1f0e3cd07cb7..916206511726 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalEdgeToEdge.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalEdgeToEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalGraphHeadToGraphHead.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalGraphHeadToGraphHead.java index 39391a5929ba..7bec820806b7 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalGraphHeadToGraphHead.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalGraphHeadToGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalVertexToVertex.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalVertexToVertex.java index 7cefd132765d..a64f908ef0c8 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalVertexToVertex.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/TemporalVertexToVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/VertexToTemporalVertex.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/VertexToTemporalVertex.java index 6f8feae2f4da..166d542bd38a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/VertexToTemporalVertex.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/VertexToTemporalVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/package-info.java index 7d3412ab2585..1fe405202f6d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/functions/tpgm/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalBaseLayoutFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalBaseLayoutFactory.java index 37f95ce41cf4..d79b5c187c0c 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalBaseLayoutFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalBaseLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayout.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayout.java index ac5fdda1c84d..1e649e04760d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayout.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayout.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java index a7dab4671e8a..4bcaab750eba 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java index 8ba6e2371cd9..de4e7bf4576e 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/package-info.java index d8220db14a71..a0d9fb10028d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java index 52e0bf76d787..a6a62f2252b9 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractDurationAggregateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunction.java index 160efa42b25f..b6d7545e4f47 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java index d23efc021278..f7be8e075770 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageEdgeDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageEdgeDuration.java index 2f188abacd14..45083db4d25a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageEdgeDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageEdgeDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageVertexDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageVertexDuration.java index 263bb4abce5c..a62d2b2b8d67 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageVertexDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageVertexDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java index 8ecd050c9ca1..65e3052fcf86 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeDuration.java index a54ac96ee239..4b1f399921c2 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeTime.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeTime.java index bcc7964b2112..eb14a3c6f5be 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeTime.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxEdgeTime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxTime.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxTime.java index f5ce004338b6..1dc8f47cd8f2 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxTime.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxTime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexDuration.java index b1be5149a037..3e1d0a799c1d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexTime.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexTime.java index 94f10b5a340b..c8a626e82785 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexTime.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MaxVertexTime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java index 2b6d3cd6a428..819bf64fe6ce 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeDuration.java index af469083df07..f663480e95f3 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeTime.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeTime.java index 532941e43c27..a71ceddbe0ed 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeTime.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinEdgeTime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinTime.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinTime.java index 81c5b72f87e2..0c3dd7cfff58 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinTime.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinTime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexDuration.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexDuration.java index b5e9e5b88aa1..a9654881a55e 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexDuration.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexDuration.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexTime.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexTime.java index 848532081b25..c46f2ef28a0d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexTime.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinVertexTime.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/package-info.java index 429c1717a87c..624acb1a66e5 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/Diff.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/Diff.java index 86b37df62012..176e21c2083a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/Diff.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/Diff.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElement.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElement.java index c910ace59c6f..481fe4375c79 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElement.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/package-info.java index 7991b8081945..63e50ebb90b2 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/package-info.java index 288145f1cf5b..af6bfa033555 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/diff/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java index 2cdc9d98b163..4b5ebf1c2931 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java index 37146625154e..98fd222bb81b 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java index c7355eba6ff0..10b00bd04d07 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunction.java index 89bdbef2ca07..43e4dc4ff72b 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunction.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/package-info.java index 7e8ec31a16a8..dc04ddeb66f7 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/package-info.java index f251395cb209..3835502c620d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/package-info.java index cd956a104017..abdc3a80f552 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/Snapshot.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/Snapshot.java index 2d255a8cf449..7cb075dd6cd9 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/Snapshot.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/Snapshot.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/ByTemporalPredicate.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/ByTemporalPredicate.java index 27f7ebb174e8..0fa6adc0dcdb 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/ByTemporalPredicate.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/ByTemporalPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/package-info.java index 2d423cc82eb6..472e6bda798f 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/package-info.java index ce382eb379c9..468a1c78f8e6 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/snapshot/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalEdgeToDataString.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalEdgeToDataString.java index 7845a9a4a180..69fb5c7e7cdc 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalEdgeToDataString.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalEdgeToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalGraphHeadToDataString.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalGraphHeadToDataString.java index 29af2515dbeb..c0ab4f9487ff 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalGraphHeadToDataString.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalGraphHeadToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalVertexToDataString.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalVertexToDataString.java index 6c9831ce5f5b..3835a77cf646 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalVertexToDataString.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalVertexToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/TemporalElementToDataString.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/TemporalElementToDataString.java index f70c4aefb707..e2812024bff0 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/TemporalElementToDataString.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/TemporalElementToDataString.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/package-info.java index c22d8694d02a..fb58efa54629 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/package-info.java index 0d3aaf890582..31465d3b80d0 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/tostring/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java index d00a52c96d92..836bf0d30f90 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidity.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java index 70080f04af47..d8e37507d5f7 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidity.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java index e84b420f43b4..fc64e3e751dc 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/functions/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java index cac90b8c92dc..20308ff12f01 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/verify/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/package-info.java index ef0a1e581501..321fc909ef6a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdge.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdge.java index 3e550547c464..0c67bc07b26d 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdge.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdge.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeFactory.java index 23a6c37e9342..ef996bad1e10 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalElement.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalElement.java index 362452c00afe..088970cf92f5 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalElement.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElement.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElement.java index 8e4673cea740..db40015328b8 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElement.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElement.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHead.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHead.java index 7346406319c4..b0f030b0580c 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHead.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHead.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadFactory.java index 4bb696defcf4..5c3bfd39280b 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertex.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertex.java index 5bf7e2308be4..72fa91aca135 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertex.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertex.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexFactory.java index b655577696d7..49214ebcbd4b 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexFactory.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/package-info.java index b67eafc92bb3..a88d147371ff 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/pojo/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TemporalGradoopConfig.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TemporalGradoopConfig.java index eebae44dcb65..976511b83992 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TemporalGradoopConfig.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TemporalGradoopConfig.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TimeFormatConversion.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TimeFormatConversion.java index 1d27f92c24e9..6dbaa1269d23 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TimeFormatConversion.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/util/TimeFormatConversion.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/util/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/util/package-info.java index 1f17756828be..9e132ae16e4a 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/util/package-info.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/util/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/TemporalCSVSourceAndSinkTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/TemporalCSVSourceAndSinkTest.java index 07396b49ebfc..de07deec4feb 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/TemporalCSVSourceAndSinkTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/TemporalCSVSourceAndSinkTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunctionTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunctionTest.java index 5eff46416eef..a9c95d36980f 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunctionTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/api/functions/TemporalAggregateFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactoryTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactoryTest.java index c8603facada9..bc4c602257dd 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactoryTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionTest.java index feff65749980..0e456bb90e40 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphFactoryTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphFactoryTest.java index 7e72d208f0f6..23d30a70d824 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphFactoryTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphTest.java index aa9950962ab7..be83789c3301 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/TemporalGraphTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/functions/TemporalPredicateTests.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/functions/TemporalPredicateTests.java index 6a78807b8b4e..fb4450930d7f 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/functions/TemporalPredicateTests.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/functions/TemporalPredicateTests.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java index 26d166d0fa28..f296db1aa20b 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactoryTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactoryTest.java index 9c105e0742a4..bde4dbd8c74b 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactoryTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactoryTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactoryTest.java index dc2214aa8956..5c4133df240a 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactoryTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunctionTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunctionTest.java index 9441b0e443d3..b0627804f431 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunctionTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AbstractTimeAggregateFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java index 0397734cf152..755ca0fdd97c 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/AverageDurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationTest.java index e76f192d434d..9d38c90827af 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java index 9380cecc8132..b875f69d8944 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxDurationWithTemporalUnitTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxTimeTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxTimeTest.java index 0be765e0f991..ad94f8233264 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxTimeTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/aggregation/functions/MinMaxTimeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/DiffTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/DiffTest.java index 049d956456b4..c70f2fc21e13 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/DiffTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/DiffTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElementTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElementTest.java index 7ec52107bd86..c412e06e835c 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElementTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/diff/functions/DiffPerElementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java index a7851f9678e0..bf32a1dd53c5 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingTest.java index 9522cb71d104..face4f981d7c 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunctionTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunctionTest.java index 15253a637e89..55d0795fe15a 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunctionTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeStampKeyFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/ByTemporalPredicateTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/ByTemporalPredicateTest.java index cbbc13e5479a..5fe6faa06324 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/ByTemporalPredicateTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/ByTemporalPredicateTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotApiTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotApiTest.java index d3f30182b5b8..c4677dc5f4f1 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotApiTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotApiTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotTest.java index dc5890c498f9..b750936d9123 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/snapshot/SnapshotTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalCanonicalAdjacencyMatrixBuilderTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalCanonicalAdjacencyMatrixBuilderTest.java index c57b57ab5c8d..a0f3573b5108 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalCanonicalAdjacencyMatrixBuilderTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/tostring/TemporalCanonicalAdjacencyMatrixBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java index 120ce7840384..2fc3c54b2428 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/VerifyAndUpdateEdgeValidityTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java index 99c4f60f80df..d64eafdd4665 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/verify/functions/UpdateEdgeValidityTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeTest.java index 0f8b5b87f291..07aa548ee076 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalEdgeTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalElementTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalElementTest.java index cc6ecade0830..23b37a2717b0 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalElementTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalElementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElementTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElementTest.java index dd26bd3f9909..d24678f4cc38 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElementTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphElementTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadTest.java index 6b95455785b5..85b9149b1d49 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalGraphHeadTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexTest.java index 3113885cbcc9..ca8d91afb07d 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/pojo/TemporalVertexTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java index 1b124df8603f..c21c2f05d817 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestUtils.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestUtils.java index 672cb7d263e7..fad6d3ed9dda 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestUtils.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestUtils.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TimeFormatConversionTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TimeFormatConversionTest.java index c967511b6a68..cb64761997ef 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TimeFormatConversionTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TimeFormatConversionTest.java @@ -1,5 +1,5 @@ /* - * Copyright © 2014 - 2020 Leipzig University (Database Research Group) + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/pom.xml b/pom.xml index b65fb969e623..d2a8e8fe3ebd 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ Gradoop Parent http://www.gradoop.org GRADOOP : Graph Analytics on Hadoop - 2014 - 2020 + 2014 - 2021 University of Leipzig From 087787cd5c5ff73732f140aaa3dbf1651da592f0 Mon Sep 17 00:00:00 2001 From: Christopher Rost <18614530+ChrizZz110@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:05:14 +0100 Subject: [PATCH 08/19] [#1510] Add indexed temporal csv source and sink (#1515) fixes #1510 --- .../gradoop/flink/io/impl/csv/CSVBase.java | 10 ++ .../csv/indexed/IndexedCSVDataSource.java | 3 +- .../model/api/epgm/BaseGraphFactory.java | 11 -- .../layouts/LogicalGraphLayoutFactory.java | 10 -- .../model/impl/epgm/LogicalGraphFactory.java | 6 - .../layouts/gve/GVEGraphLayoutFactory.java | 27 --- .../layouts/gve/indexed/IndexedGVELayout.java | 63 +++++-- .../impl/layouts/gve/BaseGVELayoutTest.java | 68 +++++++ .../model/impl/layouts/gve/GVELayoutTest.java | 118 +++++------- .../gve/indexed/IndexedGVELayoutTest.java | 114 +++++++++--- .../indexed/TemporalIndexedCSVDataSink.java | 148 +++++++++++++++ .../indexed/TemporalIndexedCSVDataSource.java | 170 ++++++++++++++++++ .../io/impl/csv/indexed/package-info.java | 20 +++ .../impl/TemporalGraphCollectionFactory.java | 12 ++ .../model/impl/TemporalGraphFactory.java | 18 +- .../TemporalGraphCollectionLayoutFactory.java | 9 +- .../layout/TemporalGraphLayoutFactory.java | 22 +-- .../impl/layout/TemporalIndexedLayout.java | 144 +++++++++++++++ .../TemporalIndexedCSVDataSinkTest.java | 141 +++++++++++++++ .../TemporalIndexedCSVDataSourceTest.java | 109 +++++++++++ .../layout/BaseTemporalGVELayoutTest.java | 91 ++++++++++ .../impl/layout/TemporalGVELayoutTest.java | 114 ++++-------- .../layout/TemporalIndexedLayoutTest.java | 131 ++++++++++++++ 23 files changed, 1286 insertions(+), 273 deletions(-) create mode 100644 gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/BaseGVELayoutTest.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSink.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSource.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayout.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSinkTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSourceTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/BaseTemporalGVELayoutTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayoutTest.java diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java index 647f086d3b59..bfb9766603be 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/CSVBase.java @@ -190,10 +190,20 @@ private String getElementCSVPath(String label, String elementPath) { CSVConstants.SIMPLE_FILE; } + /** + * Get the path to the metadata file. + * + * @return the path to the metadata file as string + */ protected String getMetaDataPath() { return csvRoot + METADATA_FILE; } + /** + * Get the gradoop configuration. + * + * @return the gradoop configuration instance + */ protected GradoopFlinkConfig getConfig() { return config; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java index aedd95919ace..ec1d6a835488 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/io/impl/csv/indexed/IndexedCSVDataSource.java @@ -77,8 +77,7 @@ public IndexedCSVDataSource(String csvPath, GradoopFlinkConfig config) { */ public IndexedCSVDataSource(String csvPath, GradoopFlinkConfig conf, Configuration hdfsConf) { super(csvPath, conf); - Objects.requireNonNull(hdfsConf); - this.hdfsConfig = hdfsConf; + this.hdfsConfig = Objects.requireNonNull(hdfsConf); } /** diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java index 76c6787111df..39da00a92116 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphFactory.java @@ -89,17 +89,6 @@ public interface BaseGraphFactory< */ LG fromDataSets(DataSet graphHead, DataSet vertices, DataSet edges); - /** - * Creates a logical graph from the given datasets. A new graph head is created and all vertices - * and edges are assigned to that graph head. - * - * @param vertices label indexed vertex datasets - * @param edges label indexed edge datasets - * @return Logical graph - */ - LG fromIndexedDataSets(Map> vertices, - Map> edges); - /** * Creates a logical graph from the given datasets. The method assumes that all vertices and * edges are already assigned to the specified graph head. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java index a7bf918313a5..4a7d05d0bac7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/layouts/LogicalGraphLayoutFactory.java @@ -68,16 +68,6 @@ public interface LogicalGraphLayoutFactory< LogicalGraphLayout fromDataSets(DataSet graphHead, DataSet vertices, DataSet edges); - /** - * Creates a graph layout from the given datasets indexed by label. - * - * @param vertices Mapping from label to vertex dataset - * @param edges Mapping from label to edge dataset - * @return Logical graph layout - */ - LogicalGraphLayout fromIndexedDataSets(Map> vertices, - Map> edges); - /** * Creates a graph layout from the given datasets indexed by label. * diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java index 0fa08e2ef821..3ef562864d82 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraphFactory.java @@ -97,12 +97,6 @@ public LogicalGraph fromDataSets(DataSet graphHead, DataSet> vertices, - Map> edges) { - return new LogicalGraph(layoutFactory.fromIndexedDataSets(vertices, edges), config); - } - @Override public LogicalGraph fromIndexedDataSets(Map> graphHead, Map> vertices, Map> edges) { diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java index de764708b497..e8f440d73db7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/GVEGraphLayoutFactory.java @@ -16,7 +16,6 @@ package org.gradoop.flink.model.impl.layouts.gve; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import org.apache.flink.api.java.DataSet; import org.gradoop.common.model.impl.pojo.EPGMEdge; import org.gradoop.common.model.impl.pojo.EPGMGraphHead; @@ -30,7 +29,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.stream.Collectors; /** * Responsible for creating a {@link GVELayout} from given data. @@ -69,31 +67,6 @@ public LogicalGraphLayout fromDataSets( return create(graphHead, vertices, edges); } - @Override - public LogicalGraphLayout fromIndexedDataSets( - Map> vertices, Map> edges) { - EPGMGraphHead graphHead = getGraphHeadFactory().createGraphHead(); - - DataSet graphHeadSet = getConfig().getExecutionEnvironment() - .fromElements(graphHead); - - Map> graphHeads = Maps.newHashMap(); - graphHeads.put(graphHead.getLabel(), graphHeadSet); - - // update vertices and edges with new graph head id - vertices = vertices.entrySet().stream() - .collect(Collectors.toMap( - Map.Entry::getKey, e -> e.getValue().map(new AddToGraph<>(graphHead)) - .withForwardedFields("id;label;properties"))); - - edges = edges.entrySet().stream() - .collect(Collectors.toMap( - Map.Entry::getKey, e -> e.getValue().map(new AddToGraph<>(graphHead)) - .withForwardedFields("id;sourceId;targetId;label;properties"))); - - return create(graphHeads, vertices, edges); - } - @Override public LogicalGraphLayout fromIndexedDataSets( Map> graphHeads, diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java index 8ec540da69cb..c5e3bbc350a6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayout.java @@ -21,16 +21,17 @@ import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.model.api.layouts.GraphCollectionLayout; import org.gradoop.flink.model.api.layouts.LogicalGraphLayout; -import org.gradoop.flink.model.impl.layouts.gve.GVELayout; +import org.gradoop.flink.model.impl.layouts.transactional.tuples.GraphTransaction; import java.util.Map; +import java.util.Objects; /** - * Like {@link GVELayout}, this layout separated between graph head, vertex and edge layouts. In + * This layout separated between graph head, vertex and edge layouts. In * addition, the datasets are separated by labels and accesses by known labels are much more * efficient as they avoid duplicating rows during program execution. */ -public class IndexedGVELayout extends GVELayout implements +public class IndexedGVELayout implements LogicalGraphLayout, GraphCollectionLayout { /** @@ -53,20 +54,16 @@ public class IndexedGVELayout extends GVELayout implements * @param vertices mapping from label to vertices * @param edges mapping from label to edges */ - IndexedGVELayout(Map> graphHeads, - Map> vertices, + IndexedGVELayout(Map> graphHeads, Map> vertices, Map> edges) { - super( - graphHeads.values().stream().reduce(DataSet::union) - .orElseThrow(() -> new RuntimeException("Error during graph head union")), - vertices.values().stream().reduce(DataSet::union) - .orElseThrow(() -> new RuntimeException("Error during vertex union")), - edges.values().stream().reduce(DataSet::union) - .orElseThrow(() -> new RuntimeException("Error during edge union")) - ); - this.graphHeads = graphHeads; - this.vertices = vertices; - this.edges = edges; + this.graphHeads = Objects.requireNonNull(graphHeads); + this.vertices = Objects.requireNonNull(vertices); + this.edges = Objects.requireNonNull(edges); + } + + @Override + public boolean isGVELayout() { + return false; } @Override @@ -74,16 +71,50 @@ public boolean isIndexedGVELayout() { return true; } + @Override + public boolean isTransactionalLayout() { + return false; + } + + @Override + public DataSet getGraphHead() { + return getGraphHeads(); + } + + @Override + public DataSet getGraphHeads() { + return graphHeads.values().stream().reduce(DataSet::union) + .orElseThrow(() -> new RuntimeException("Error during graph head union.")); + } + @Override public DataSet getGraphHeadsByLabel(String label) { return graphHeads.get(label); } + @Override + public DataSet getGraphTransactions() { + throw new UnsupportedOperationException( + "Converting a indexed graph to graph transactions is not supported yet."); + } + + @Override + public DataSet getVertices() { + return vertices.values().stream().reduce(DataSet::union) + .orElseThrow(() -> new RuntimeException("Error during vertex union.")); + } + @Override public DataSet getVerticesByLabel(String label) { return vertices.get(label); } + @Override + public DataSet getEdges() { + return edges.values().stream().reduce(DataSet::union) + .orElseThrow(() -> new RuntimeException("Error during edge union")); + } + @Override public DataSet getEdgesByLabel(String label) { return edges.get(label); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/BaseGVELayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/BaseGVELayoutTest.java new file mode 100644 index 000000000000..2a68765a2e0a --- /dev/null +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/BaseGVELayoutTest.java @@ -0,0 +1,68 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.flink.model.impl.layouts.gve; + +import org.apache.flink.api.java.ExecutionEnvironment; +import org.gradoop.common.model.impl.pojo.EPGMEdge; +import org.gradoop.common.model.impl.pojo.EPGMGraphHead; +import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.flink.model.GradoopFlinkTestBase; +import org.gradoop.flink.model.impl.epgm.LogicalGraphFactory; +import org.gradoop.flink.util.GradoopFlinkConfig; +import org.junit.BeforeClass; + +/** + * Base class for layout tests. Provides some predefined graph elements. + */ +public abstract class BaseGVELayoutTest extends GradoopFlinkTestBase { + + protected static EPGMGraphHead g0; + protected static EPGMGraphHead g1; + + protected static EPGMVertex v0; + protected static EPGMVertex v1; + protected static EPGMVertex v2; + + protected static EPGMEdge e0; + protected static EPGMEdge e1; + + /** + * Create graph elements before tests. + */ + @BeforeClass + public static void setup() { + ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); + LogicalGraphFactory factory = GradoopFlinkConfig.createConfig(env).getLogicalGraphFactory(); + + g0 = factory.getGraphHeadFactory().createGraphHead("A"); + g1 = factory.getGraphHeadFactory().createGraphHead("B"); + + v0 = factory.getVertexFactory().createVertex("A"); + v1 = factory.getVertexFactory().createVertex("B"); + v2 = factory.getVertexFactory().createVertex("C"); + + e0 = factory.getEdgeFactory().createEdge("a", v0.getId(), v1.getId()); + e1 = factory.getEdgeFactory().createEdge("b", v1.getId(), v2.getId()); + + v0.addGraphId(g0.getId()); + v1.addGraphId(g0.getId()); + v1.addGraphId(g1.getId()); + v2.addGraphId(g1.getId()); + + e0.addGraphId(g0.getId()); + e1.addGraphId(g1.getId()); + } +} diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java index 431d54997197..26f0679a6160 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/GVELayoutTest.java @@ -16,130 +16,106 @@ package org.gradoop.flink.model.impl.layouts.gve; import com.google.common.collect.Sets; -import org.apache.flink.api.java.ExecutionEnvironment; import org.gradoop.common.GradoopTestUtils; import org.gradoop.common.model.impl.pojo.EPGMEdge; import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.pojo.EPGMGraphHead; -import org.gradoop.flink.model.GradoopFlinkTestBase; -import org.gradoop.flink.model.impl.epgm.LogicalGraphFactory; import org.gradoop.flink.model.impl.layouts.transactional.tuples.GraphTransaction; -import org.gradoop.flink.util.GradoopFlinkConfig; -import org.junit.BeforeClass; import org.junit.Test; import java.util.Collection; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertEquals; -public class GVELayoutTest extends GradoopFlinkTestBase { - - protected static EPGMGraphHead g0; - protected static EPGMGraphHead g1; - - protected static EPGMVertex v0; - protected static EPGMVertex v1; - protected static EPGMVertex v2; - - protected static EPGMEdge e0; - protected static EPGMEdge e1; - - @BeforeClass - public static void setup() { - ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); - LogicalGraphFactory factory = GradoopFlinkConfig.createConfig(env).getLogicalGraphFactory(); - - g0 = factory.getGraphHeadFactory().createGraphHead("A"); - g1 = factory.getGraphHeadFactory().createGraphHead("B"); - - v0 = factory.getVertexFactory().createVertex("A"); - v1 = factory.getVertexFactory().createVertex("B"); - v2 = factory.getVertexFactory().createVertex("C"); - - e0 = factory.getEdgeFactory().createEdge("a", v0.getId(), v1.getId()); - e1 = factory.getEdgeFactory().createEdge("b", v1.getId(), v2.getId()); - - v0.addGraphId(g0.getId()); - v1.addGraphId(g0.getId()); - v1.addGraphId(g1.getId()); - v2.addGraphId(g1.getId()); - - e0.addGraphId(g0.getId()); - e1.addGraphId(g1.getId()); - } - - protected GVELayout from(Collection graphHeads, Collection vertices, - Collection edges) { - return new GVELayout( - getExecutionEnvironment().fromCollection(graphHeads), - getExecutionEnvironment().fromCollection(vertices), - getExecutionEnvironment().fromCollection(edges)); - } +/** + * Test class {@link GVELayout}. + */ +public class GVELayoutTest extends BaseGVELayoutTest { @Test - public void isGVELayout() throws Exception { - assertTrue(from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isGVELayout()); + public void testIsGVELayout() { + assertTrue(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isGVELayout()); } @Test - public void isIndexedGVELayout() throws Exception { - assertFalse(from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isIndexedGVELayout()); + public void testIsIndexedGVELayout() { + assertFalse(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isIndexedGVELayout()); } @Test - public void hasTransactionalLayout() throws Exception { - assertFalse(from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isTransactionalLayout()); + public void testHasTransactionalLayout() { + assertFalse(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isTransactionalLayout()); } @Test - public void getGraphTransactions() throws Exception { + public void testGetGraphTransactions() throws Exception { GraphTransaction tx0 = new GraphTransaction(g0, Sets.newHashSet(v0, v1), Sets.newHashSet(e0)); assertEquals(tx0, - from(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphTransactions().collect().get(0)); + createLayout(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphTransactions().collect().get(0)); } @Test - public void getGraphHead() throws Exception { + public void testGetGraphHead() throws Exception { GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0), - from(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphHead().collect()); + createLayout(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphHead().collect()); } @Test - public void getGraphHeads() throws Exception { + public void testGetGraphHeads() throws Exception { GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0, g1), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeads().collect()); + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeads().collect()); } @Test - public void getGraphHeadsByLabel() throws Exception { + public void testGetGraphHeadsByLabel() throws Exception { GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("A").collect()); + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("A").collect()); + GradoopTestUtils.validateElementCollections(Sets.newHashSet(g1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("B").collect()); } @Test - public void getVertices() throws Exception { + public void testGetVertices() throws Exception { GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(v0, v1, v2), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVertices().collect()); + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVertices().collect()); } @Test - public void getVerticesByLabel() throws Exception { + public void testGetVerticesByLabel() throws Exception { GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(v0), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVerticesByLabel("A").collect()); + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVerticesByLabel("A").collect()); } @Test - public void getEdges() throws Exception { + public void testGetEdges() throws Exception { GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(e0, e1), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdges().collect()); + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdges().collect()); } @Test - public void getEdgesByLabel() throws Exception { + public void testGetEdgesByLabel() throws Exception { GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(e0), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdgesByLabel("a").collect()); + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdgesByLabel("a").collect()); + } + + /** + * Creates a {@link GVELayout} from collections of graph elements. + * + * @param graphHeads a collection of graph heads + * @param vertices a collection of vertices + * @param edges a collection of edges + * @return a GVE layout instance + */ + private GVELayout createLayout(Collection graphHeads, Collection vertices, + Collection edges) { + return new GVELayout( + getExecutionEnvironment().fromCollection(graphHeads), + getExecutionEnvironment().fromCollection(vertices), + getExecutionEnvironment().fromCollection(edges)); } } diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java index 0caf9536bb1c..0ced9a65d89b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/layouts/gve/indexed/IndexedGVELayoutTest.java @@ -15,42 +15,116 @@ */ package org.gradoop.flink.model.impl.layouts.gve.indexed; +import com.google.common.collect.Sets; import org.apache.flink.api.java.DataSet; +import org.gradoop.common.GradoopTestUtils; import org.gradoop.common.model.impl.pojo.EPGMEdge; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.pojo.EPGMGraphHead; -import org.gradoop.flink.model.impl.layouts.gve.GVELayout; -import org.gradoop.flink.model.impl.layouts.gve.GVELayoutTest; +import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.flink.model.impl.layouts.gve.BaseGVELayoutTest; +import org.junit.Test; import java.util.Collection; import java.util.Map; import java.util.stream.Collectors; import static java.util.Arrays.asList; +import static java.util.Collections.singletonList; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -public class IndexedGVELayoutTest extends GVELayoutTest { - @Override - protected GVELayout from(Collection graphHeads, Collection vertices, - Collection edges) { - Map> indexedGraphHeads = graphHeads.stream() - .collect(Collectors.groupingBy(EPGMGraphHead::getLabel)).entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); +/** + * Test class {@link IndexedGVELayout}. + */ +public class IndexedGVELayoutTest extends BaseGVELayoutTest { - Map> indexedVertices = vertices.stream() - .collect(Collectors.groupingBy(EPGMVertex::getLabel)).entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + @Test + public void testIsGVELayout() { + assertFalse(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isGVELayout()); + } - Map> indexedEdges = edges.stream() - .collect(Collectors.groupingBy(EPGMEdge::getLabel)).entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + @Test + public void testIsTransactionalLayout() { + assertFalse(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isTransactionalLayout()); + } - return new IndexedGVELayout(indexedGraphHeads, indexedVertices, indexedEdges); + @Test + public void testGetGraphHead() throws Exception { + GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0), + createLayout(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphHead().collect()); + } + + @Test + public void testGetGraphHeads() throws Exception { + GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0, g1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeads().collect()); + } + + @Test + public void testGetGraphHeadsByLabel() throws Exception { + GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("A").collect()); + GradoopTestUtils.validateElementCollections(Sets.newHashSet(g1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("B").collect()); + } + + @Test(expected = UnsupportedOperationException.class) + public void testGetGraphTransactions() { + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphTransactions(); + } + + @Test + public void testGetVertices() throws Exception { + GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(v0, v1, v2), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVertices().collect()); + } + + @Test + public void testGetVerticesByLabel() throws Exception { + GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(v1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVerticesByLabel("B").collect()); + } + + @Test + public void testGetEdges() throws Exception { + GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(e0, e1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdges().collect()); + } + + @Test + public void testGetEdgesByLabel() throws Exception { + GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(e1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdgesByLabel("b").collect()); } - @Override - public void isIndexedGVELayout() throws Exception { - assertTrue(from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isIndexedGVELayout()); + @Test + public void testIsIndexedGVELayout() { + assertTrue(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isIndexedGVELayout()); + } + + /** + * Creates a {@link IndexedGVELayout} from collections of graph elements. + * + * @param graphHeads a collection of graph heads + * @param vertices a collection of vertices + * @param edges a collection of edges + * @return an indexed GVE layout instance + */ + private IndexedGVELayout createLayout(Collection graphHeads, Collection vertices, + Collection edges) { + Map> indexedGraphHeads = + graphHeads.stream().collect(Collectors.groupingBy(EPGMGraphHead::getLabel)).entrySet().stream().collect( + Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + + Map> indexedVertices = + vertices.stream().collect(Collectors.groupingBy(EPGMVertex::getLabel)).entrySet().stream().collect( + Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + + Map> indexedEdges = + edges.stream().collect(Collectors.groupingBy(EPGMEdge::getLabel)).entrySet().stream().collect( + Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + + return new IndexedGVELayout(indexedGraphHeads, indexedVertices, indexedEdges); } } diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSink.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSink.java new file mode 100644 index 000000000000..888ac7ad44b9 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSink.java @@ -0,0 +1,148 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.io.impl.csv.indexed; + +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.tuple.Tuple3; +import org.apache.flink.core.fs.FileSystem.WriteMode; +import org.apache.flink.core.fs.Path; +import org.gradoop.flink.io.impl.csv.CSVBase; +import org.gradoop.flink.io.impl.csv.CSVConstants; +import org.gradoop.flink.io.impl.csv.indexed.functions.IndexedCSVFileFormat; +import org.gradoop.flink.io.impl.csv.metadata.CSVMetaDataSink; +import org.gradoop.flink.io.impl.csv.metadata.CSVMetaDataSource; +import org.gradoop.flink.util.GradoopFlinkConfig; +import org.gradoop.temporal.io.api.TemporalDataSink; +import org.gradoop.temporal.io.impl.csv.functions.TemporalEdgeToTemporalCSVEdge; +import org.gradoop.temporal.io.impl.csv.functions.TemporalGraphHeadToTemporalCSVGraphHead; +import org.gradoop.temporal.io.impl.csv.functions.TemporalVertexToTemporalCSVVertex; +import org.gradoop.temporal.io.impl.csv.tuples.TemporalCSVEdge; +import org.gradoop.temporal.io.impl.csv.tuples.TemporalCSVGraphHead; +import org.gradoop.temporal.io.impl.csv.tuples.TemporalCSVVertex; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphCollection; + +import java.io.IOException; + +/** + * A temporal graph data sink for CSV files indexed by label. + */ +public class TemporalIndexedCSVDataSink extends CSVBase implements TemporalDataSink { + /** + * Path to meta data file that is used to write the output. + */ + private final String metaDataPath; + + /** + * Creates a new indexed CSV data sink. Computes the meta data based on the given graph. + * + * @param csvPath directory to write to + * @param config Gradoop Flink configuration + */ + public TemporalIndexedCSVDataSink(String csvPath, GradoopFlinkConfig config) { + this(csvPath, null, config); + } + + /** + * Creates an new indexed CSV data sink. Uses the specified meta data to write the CSV output. + * + * @param csvPath directory to write CSV files to + * @param metaDataPath path to meta data CSV file that is reused to prevent the creation of metadata + * @param config Gradoop Flink configuration + */ + public TemporalIndexedCSVDataSink(String csvPath, String metaDataPath, GradoopFlinkConfig config) { + super(csvPath, config); + this.metaDataPath = metaDataPath; + } + + @Override + public void write(TemporalGraph temporalGraph) throws IOException { + write(temporalGraph, false); + } + + @Override + public void write(TemporalGraphCollection temporalGraphCollection) throws IOException { + write(temporalGraphCollection, false); + } + + @Override + public void write(TemporalGraph temporalGraph, boolean overwrite) throws IOException { + write(temporalGraph.getCollectionFactory().fromGraph(temporalGraph), overwrite); + } + + @Override + public void write(TemporalGraphCollection temporalGraphCollection, boolean overwrite) throws IOException { + WriteMode writeMode = overwrite ? + WriteMode.OVERWRITE : WriteMode.NO_OVERWRITE; + + DataSet> metaData; + CSVMetaDataSource source = new CSVMetaDataSource(); + if (isMetadataReusable()) { + metaData = source.readDistributed(metaDataPath, getConfig()); + } else { + metaData = source.tuplesFromCollection(temporalGraphCollection); + } + + DataSet csvGraphHeads = temporalGraphCollection.getGraphHeads() + .map(new TemporalGraphHeadToTemporalCSVGraphHead()) + .withBroadcastSet(metaData, BC_METADATA); + + DataSet csvVertices = temporalGraphCollection.getVertices() + .map(new TemporalVertexToTemporalCSVVertex()) + .withBroadcastSet(metaData, BC_METADATA); + + DataSet csvEdges = temporalGraphCollection.getEdges() + .map(new TemporalEdgeToTemporalCSVEdge()) + .withBroadcastSet(metaData, BC_METADATA); + + if (!getMetaDataPath().equals(metaDataPath) || !isMetadataReusable()) { + new CSVMetaDataSink().writeDistributed(getMetaDataPath(), metaData, writeMode); + } + + IndexedCSVFileFormat graphHeadFormat = new IndexedCSVFileFormat<>( + new Path(getGraphHeadPath()), + CSVConstants.ROW_DELIMITER, + CSVConstants.TOKEN_DELIMITER); + + graphHeadFormat.setWriteMode(writeMode); + csvGraphHeads.output(graphHeadFormat); + + IndexedCSVFileFormat vertexFormat = new IndexedCSVFileFormat<>( + new Path(getVertexPath()), + CSVConstants.ROW_DELIMITER, + CSVConstants.TOKEN_DELIMITER); + + vertexFormat.setWriteMode(writeMode); + csvVertices.output(vertexFormat); + + IndexedCSVFileFormat edgeFormat = new IndexedCSVFileFormat<>( + new Path(getEdgePath()), + CSVConstants.ROW_DELIMITER, + CSVConstants.TOKEN_DELIMITER); + + edgeFormat.setWriteMode(writeMode); + csvEdges.output(edgeFormat); + } + + /** + * Returns true, if the meta data shall be reused. + * + * @return true, iff reuse is possible + */ + private boolean isMetadataReusable() { + return this.metaDataPath != null && !this.metaDataPath.isEmpty(); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSource.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSource.java new file mode 100644 index 000000000000..117831b518c0 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSource.java @@ -0,0 +1,170 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.io.impl.csv.indexed; + +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.ExecutionEnvironment; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.api.java.tuple.Tuple3; +import org.apache.hadoop.conf.Configuration; +import org.gradoop.flink.io.api.DataSource; +import org.gradoop.flink.io.impl.csv.CSVBase; +import org.gradoop.flink.io.impl.csv.metadata.CSVMetaData; +import org.gradoop.flink.io.impl.csv.metadata.CSVMetaDataSource; +import org.gradoop.flink.model.impl.epgm.GraphCollection; +import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.temporal.io.api.TemporalDataSource; +import org.gradoop.temporal.io.impl.csv.functions.CSVLineToTemporalEdge; +import org.gradoop.temporal.io.impl.csv.functions.CSVLineToTemporalGraphHead; +import org.gradoop.temporal.io.impl.csv.functions.CSVLineToTemporalVertex; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphCollection; +import org.gradoop.temporal.model.impl.layout.TemporalIndexedLayout; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.util.TemporalGradoopConfig; + +import java.io.IOException; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * A temporal graph data source for CSV files indexed by label. + *

+ * The datasource expects files separated by label, e.g. in the following directory structure: + *

+ * {@code + * csvRoot + * |- vertices + * |- person + * |- data.csv # contains all vertices with label 'Person' + * |- university + * |- data.csv # contains all vertices with label 'University' + * |- edges + * |- knows + * |- data.csv # contains all edges with label 'knows' + * |- studyAt + * |- data.csv # contains all edges with label 'studyAt' + * |- graphs + * |- myGraph + * |- data.csv + * |- metadata.csv # Meta data for all data contained in the graph + * } + */ +public class TemporalIndexedCSVDataSource extends CSVBase implements TemporalDataSource, DataSource { + + /** + * HDFS Configuration. + */ + private Configuration hdfsConfig = new Configuration(); + + /** + * Creates a new data source. The constructor creates a default HDFS configuration. + * + * @param csvPath root path of csv files + * @param config gradoop configuration + */ + public TemporalIndexedCSVDataSource(String csvPath, TemporalGradoopConfig config) { + super(csvPath, config); + } + + /** + * Reads a {@link TemporalGraph} and converts it to a {@link LogicalGraph} via function + * {@link TemporalGraph##getLogicalGraph()}. + * + * @return a logical graph instance + * @throws IOException in case of an error while reading the graph + */ + @Override + public LogicalGraph getLogicalGraph() throws IOException { + return getTemporalGraph().toLogicalGraph(); + } + + /** + * Reads a {@link TemporalGraphCollection} and converts it to a {@link GraphCollection} via function + * {@link TemporalGraphCollection##getGraphCollection()}. + * + * @return a graph collection instance + * @throws IOException in case of an error while reading the graph collection + */ + @Override + public GraphCollection getGraphCollection() throws IOException { + return getTemporalGraphCollection().toGraphCollection(); + } + + @Override + public TemporalGraph getTemporalGraph() throws IOException { + return getConfig().getTemporalGraphFactory().fromLayout(readIndexedCSV()); + } + + @Override + public TemporalGraphCollection getTemporalGraphCollection() throws IOException { + return getConfig().getTemporalGraphCollectionFactory().fromLayout(readIndexedCSV()); + } + + /** + * Reads the graph data from (distributed) file system. + * + * @return a temporal indexed layout containing the graph/collection data + * @throws IOException in case of an error while reading + */ + private TemporalIndexedLayout readIndexedCSV() throws IOException { + CSVMetaDataSource source = new CSVMetaDataSource(); + CSVMetaData metaData = source.readLocal(getMetaDataPath(), hdfsConfig); + DataSet> metaDataBroadcast = + source.readDistributed(getMetaDataPath(), getConfig()); + + ExecutionEnvironment env = getConfig().getExecutionEnvironment(); + + Map> graphHeads = metaData.getGraphLabels().stream() + .map(label -> Tuple2.of(label, env.readTextFile(getGraphHeadCSVPath(label)) + .map(new CSVLineToTemporalGraphHead(getConfig().getTemporalGraphFactory().getGraphHeadFactory())) + .withBroadcastSet(metaDataBroadcast, BC_METADATA) + .filter(graphHead -> graphHead.getLabel().equals(label)))) + .collect(Collectors.toMap(t -> t.f0, t -> t.f1)); + + Map> vertices = metaData.getVertexLabels().stream() + .map(label -> Tuple2.of(label, env.readTextFile(getVertexCSVPath(label)) + .map(new CSVLineToTemporalVertex(getConfig().getTemporalGraphFactory().getVertexFactory())) + .withBroadcastSet(metaDataBroadcast, BC_METADATA) + .filter(vertex -> vertex.getLabel().equals(label)))) + .collect(Collectors.toMap(t -> t.f0, t -> t.f1)); + + Map> edges = metaData.getEdgeLabels().stream() + .map(label -> Tuple2.of(label, env.readTextFile(getEdgeCSVPath(label)) + .map(new CSVLineToTemporalEdge(getConfig().getTemporalGraphFactory().getEdgeFactory())) + .withBroadcastSet(metaDataBroadcast, BC_METADATA) + .filter(edge -> edge.getLabel().equals(label)))) + .collect(Collectors.toMap(t -> t.f0, t -> t.f1)); + + return new TemporalIndexedLayout(graphHeads, vertices, edges); + } + + /** + * Sets a hdfs config used for reading metadata. + * + * @param hdfsConfig the config file + */ + public void setHdfsConfig(Configuration hdfsConfig) { + this.hdfsConfig = hdfsConfig; + } + + @Override + protected TemporalGradoopConfig getConfig() { + return (TemporalGradoopConfig) super.getConfig(); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/package-info.java new file mode 100644 index 000000000000..05d1649e97d3 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/io/impl/csv/indexed/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * A DataSource and -Sink implementation storing temporal graphs and graph collections as label partitioned + * CSV files. + */ +package org.gradoop.temporal.io.impl.csv.indexed; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java index 03315c46d439..392b36f3a022 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphCollectionFactory.java @@ -26,6 +26,7 @@ import org.gradoop.common.model.api.entities.VertexFactory; import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.api.epgm.BaseGraphCollectionFactory; +import org.gradoop.flink.model.api.layouts.GraphCollectionLayout; import org.gradoop.flink.model.api.layouts.GraphCollectionLayoutFactory; import org.gradoop.flink.model.api.layouts.LogicalGraphLayout; import org.gradoop.flink.model.impl.functions.epgm.Id; @@ -82,6 +83,17 @@ public void setLayoutFactory(GraphCollectionLayoutFactory layout) { + return new TemporalGraphCollection(layout, config); + } + @Override public TemporalGraphCollection fromDataSets(DataSet graphHeads, DataSet vertices) { diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java index 30af590f4fc8..8520e0d1f0f3 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/TemporalGraphFactory.java @@ -25,6 +25,7 @@ import org.gradoop.common.model.api.entities.VertexFactory; import org.gradoop.flink.model.api.epgm.BaseGraph; import org.gradoop.flink.model.api.epgm.BaseGraphFactory; +import org.gradoop.flink.model.api.layouts.LogicalGraphLayout; import org.gradoop.flink.model.api.layouts.LogicalGraphLayoutFactory; import org.gradoop.temporal.model.api.functions.TimeIntervalExtractor; import org.gradoop.temporal.model.impl.functions.tpgm.EdgeToTemporalEdge; @@ -75,6 +76,17 @@ public void setLayoutFactory( this.layoutFactory = layoutFactory; } + /** + * Creates a temporal graph instance from an existing layout. + * + * @param layout the layout that is used to store the graph data of this temporal graph instance + * @return a temporal graph + */ + public TemporalGraph fromLayout( + LogicalGraphLayout layout) { + return new TemporalGraph(layout, config); + } + @Override public TemporalGraph fromDataSets(DataSet vertices) { return new TemporalGraph(this.layoutFactory.fromDataSets(vertices), config); @@ -91,12 +103,6 @@ public TemporalGraph fromDataSets(DataSet graphHead, return new TemporalGraph(this.layoutFactory.fromDataSets(graphHead, vertices, edges), config); } - @Override - public TemporalGraph fromIndexedDataSets(Map> vertices, - Map> edges) { - return new TemporalGraph(this.layoutFactory.fromIndexedDataSets(vertices, edges), config); - } - @Override public TemporalGraph fromIndexedDataSets(Map> graphHead, Map> vertices, Map> edges) { diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java index 4bcaab750eba..726466d85139 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphCollectionLayoutFactory.java @@ -52,17 +52,12 @@ public GraphCollectionLayout fr Objects.requireNonNull(edges)); } - /** - * {@inheritDoc} - * - * Creating a temporal graph layout from an indexed dataset is not supported yet. - */ @Override public GraphCollectionLayout fromIndexedDataSets( Map> graphHeads, Map> vertices, Map> edges) { - throw new UnsupportedOperationException( - "Creating a temporal graph layout from an indexed dataset is not supported yet."); + return new TemporalIndexedLayout(graphHeads, vertices, edges); + } @Override diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java index de4e7bf4576e..988a81b938eb 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalGraphLayoutFactory.java @@ -75,28 +75,18 @@ public LogicalGraphLayout fromD } /** - * {@inheritDoc} + * Creates a graph layout from the given datasets indexed by label. * - * Creating a temporal graph layout from an indexed dataset is not supported yet. - */ - @Override - public LogicalGraphLayout fromIndexedDataSets( - Map> vertices, Map> edges) { - throw new UnsupportedOperationException( - "Creating a temporal graph layout from an indexed dataset is not supported yet."); - } - - /** - * {@inheritDoc} - * - * Creating a temporal graph layout from an indexed dataset is not supported yet. + * @param graphHeads 1-element Mapping from label to GraphHead DataSet + * @param vertices Mapping from label to vertex dataset + * @param edges Mapping from label to edge dataset + * @return a temporal indexed graph layout */ @Override public LogicalGraphLayout fromIndexedDataSets( Map> graphHeads, Map> vertices, Map> edges) { - throw new UnsupportedOperationException( - "Creating a temporal graph layout from an indexed dataset is not supported yet."); + return new TemporalIndexedLayout(graphHeads, vertices, edges); } @Override diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayout.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayout.java new file mode 100644 index 000000000000..ad5b4d15ad1b --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayout.java @@ -0,0 +1,144 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.layout; + +import org.apache.flink.api.java.DataSet; +import org.gradoop.flink.model.api.layouts.GraphCollectionLayout; +import org.gradoop.flink.model.api.layouts.LogicalGraphLayout; +import org.gradoop.flink.model.impl.layouts.transactional.tuples.GraphTransaction; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.Map; +import java.util.Objects; + +/** + * Represents a temporal graph or graph collection using one dataset per label and graph instance: + *

    + *
  1. a Map containing the graph label L as key and a graph head dataset G as value
  2. + *
  3. a Map containing the vertex label L as key and a vertex dataset V as value
  4. + *
  5. a Map containing the edge label L as key and a edge dataset E as value
  6. + *
+ */ +public class TemporalIndexedLayout implements + LogicalGraphLayout, + GraphCollectionLayout { + + /** + * Mapping from graph label to graph heads with that label. + */ + private final Map> graphHeads; + /** + * Mapping from vertex label to vertices with that label. + */ + private final Map> vertices; + /** + * Mapping from edge label to edges with that label. + */ + private final Map> edges; + + /** + * Creates a new temporal indexed layout. + * + * @param graphHeads mapping from label to graph heads + * @param vertices mapping from label to vertices + * @param edges mapping from label to edges + */ + public TemporalIndexedLayout(Map> graphHeads, + Map> vertices, Map> edges) { + this.graphHeads = Objects.requireNonNull(graphHeads); + this.vertices = Objects.requireNonNull(vertices); + this.edges = Objects.requireNonNull(edges); + } + + @Override + public boolean isGVELayout() { + return false; + } + + @Override + public boolean isIndexedGVELayout() { + return true; + } + + @Override + public boolean isTransactionalLayout() { + return false; + } + + @Override + public DataSet getGraphHeadsByLabel(String label) { + return graphHeads.get(label); + } + + @Override + public DataSet getGraphTransactions() { + throw new UnsupportedOperationException( + "Converting a indexed graph to graph transactions is not supported yet."); + } + + @Override + public DataSet getVerticesByLabel(String label) { + return vertices.get(label); + } + + @Override + public DataSet getEdgesByLabel(String label) { + return edges.get(label); + } + + @Override + public DataSet getGraphHead() { + return getGraphHeads(); + } + + /** + * The request for all elements without specifying a label results in a union of all label-partitioned + * datasets. + * + * @return the whole graph head dataset created by a union of all single datasets + */ + @Override + public DataSet getGraphHeads() { + return graphHeads.values().stream().reduce(DataSet::union) + .orElseThrow(() -> new RuntimeException("Error during graph head union.")); + } + + /** + * The request for all elements without specifying a label results in a union of all label-partitioned + * datasets. + * + * @return the whole vertex dataset created by a union of all single datasets + */ + @Override + public DataSet getVertices() { + return vertices.values().stream().reduce(DataSet::union) + .orElseThrow(() -> new RuntimeException("Error during vertex union.")); + } + + /** + * The request for all elements without specifying a label results in a union of all label-partitioned + * datasets. + * + * @return the whole edge dataset created by a union of all single datasets + */ + @Override + public DataSet getEdges() { + return edges.values().stream().reduce(DataSet::union) + .orElseThrow(() -> new RuntimeException("Error during edge union.")); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSinkTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSinkTest.java new file mode 100644 index 000000000000..aa860cc04356 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSinkTest.java @@ -0,0 +1,141 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.io.impl.csv.indexed; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.temporal.io.api.TemporalDataSource; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertEquals; + +/** + * Test class to test {@link TemporalIndexedCSVDataSink}. + */ +public class TemporalIndexedCSVDataSinkTest extends TemporalGradoopTestBase { + + /** + * Temporal graph to test + */ + private TemporalGraph testGraph; + + /** + * Temporary test folder to write the test graph. + */ + @Rule + public TemporaryFolder testFolder = new TemporaryFolder(); + + /** + * Creates a test temporal graph from the social network loader. + * + * @throws Exception if loading the graph fails + */ + @Before + public void setUp() throws Exception { + testGraph = toTemporalGraph(getSocialNetworkLoader().getLogicalGraph()) + .transformGraphHead((current, trans) -> { + current.setProperty("testGraphHeadProperty", PropertyValue.create(1L)); + return current; + }); + } + + /** + * Test writing a temporal graph to an indexed csv sink. + * + * @throws Exception in case of a write error + */ + @Test + public void testWrite() throws Exception { + File file = testFolder.newFolder(); + String tempFolderPath = file.getPath(); + + testGraph.writeTo(new TemporalIndexedCSVDataSink(tempFolderPath, getConfig())); + getExecutionEnvironment().execute(); + + final File[] subdirs = file.listFiles(File::isDirectory); + + assertNotNull(subdirs); + assertEquals(3, subdirs.length); + final List files = Arrays.asList(subdirs); + final List subDirList = files.stream().map(File::getName).collect(Collectors.toList()); + assertTrue(subDirList.contains("vertices")); + assertTrue(subDirList.contains("edges")); + assertTrue(subDirList.contains("graphs")); + + for (File elementDir : files) { + if (elementDir.getName().equals("vertices")) { + final File[] vertexLabelArray = elementDir.listFiles(File::isDirectory); + assertNotNull(vertexLabelArray); + final List vertexLabelDirs = Arrays.stream(vertexLabelArray).map(File::getName) + .collect(Collectors.toList()); + assertNotNull(vertexLabelDirs); + assertEquals(3, vertexLabelDirs.size()); + assertTrue(vertexLabelDirs.contains("person")); + assertTrue(vertexLabelDirs.contains("forum")); + assertTrue(vertexLabelDirs.contains("tag")); + + } else if (elementDir.getName().equals("edges")) { + final File[] edgeLabelArray = elementDir.listFiles(File::isDirectory); + assertNotNull(edgeLabelArray); + final List edgeLabelDirs = Arrays.stream(edgeLabelArray).map(File::getName) + .collect(Collectors.toList()); + assertNotNull(edgeLabelDirs); + assertEquals(5, edgeLabelDirs.size()); + assertTrue(edgeLabelDirs.contains("hasmember")); + assertTrue(edgeLabelDirs.contains("hasinterest")); + assertTrue(edgeLabelDirs.contains("knows")); + assertTrue(edgeLabelDirs.contains("hasmoderator")); + assertTrue(edgeLabelDirs.contains("hastag")); + + } else if (elementDir.getName().equals("graphs")) { + final File[] graphLabelArray = elementDir.listFiles(File::isDirectory); + assertNotNull(graphLabelArray); + final List graphLabelDirs = Arrays.stream(graphLabelArray).map(File::getName) + .collect(Collectors.toList()); + assertNotNull(graphLabelDirs); + assertEquals(1, graphLabelDirs.size()); + assertTrue(graphLabelDirs.contains("_db")); + } + } + } + + /** + * Test the {@link TemporalIndexedCSVDataSink#write(TemporalGraph)} method as well as the + * {@link TemporalIndexedCSVDataSource}. + * + * @throws Exception in case of a write error + */ + @Test + public void testWriteAndReadAfterwards() throws Exception { + File file = testFolder.newFolder(); + String tempFolderPath = file.getPath(); + new TemporalIndexedCSVDataSink(tempFolderPath, getConfig()).write(testGraph); + getExecutionEnvironment().execute(); + TemporalDataSource dataSource = new TemporalIndexedCSVDataSource(tempFolderPath, getConfig()); + collectAndAssertTrue(dataSource.getTemporalGraph().equalsByData(testGraph)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSourceTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSourceTest.java new file mode 100644 index 000000000000..a5e5d0f721f6 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/io/impl/csv/indexed/TemporalIndexedCSVDataSourceTest.java @@ -0,0 +1,109 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.io.impl.csv.indexed; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphCollection; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import static org.junit.Assert.assertEquals; + +/** + * Test class to test {@link TemporalIndexedCSVDataSource}. + */ +public class TemporalIndexedCSVDataSourceTest extends TemporalGradoopTestBase { + + /** + * Temporal graph to test + */ + private TemporalGraph testGraph; + + /** + * Temporal graph collection to test + */ + private TemporalGraphCollection testGraphCollection; + + /** + * Temporary test folder to write the test graph. + */ + @Rule + public TemporaryFolder testFolder = new TemporaryFolder(); + + /** + * Temporary test folder to write the test graph. + */ + @Rule + public TemporaryFolder testCollectionFolder = new TemporaryFolder(); + + /** + * Creates a test temporal graph from the social network loader. + * + * @throws Exception if loading the graph fails + */ + @Before + public void setUp() throws Exception { + testGraph = toTemporalGraph(getSocialNetworkLoader().getLogicalGraph()) + .transformGraphHead((current, trans) -> { + current.setProperty("testGraphHeadProperty", PropertyValue.create(1L)); + return current; + }); + + testGraphCollection = toTemporalGraphCollection(getSocialNetworkLoader().getGraphCollection()); + } + + /** + * Tests the function {@link TemporalIndexedCSVDataSource#getTemporalGraph()}. + * + * @throws Exception if loading the graph fails + */ + @Test + public void testGetTemporalGraph() throws Exception { + new TemporalIndexedCSVDataSink(testFolder.getRoot().getPath(), getConfig()).write(testGraph); + getExecutionEnvironment().execute(); + TemporalIndexedCSVDataSource source = new TemporalIndexedCSVDataSource(testFolder.getRoot().getPath(), + getConfig()); + collectAndAssertTrue(source.getTemporalGraph().equalsByData(testGraph)); + } + + /** + * Tests the function {@link TemporalIndexedCSVDataSource#getTemporalGraphCollection()}. + * + * @throws Exception if loading the collection fails + */ + @Test + public void testGetTemporalGraphCollection() throws Exception { + new TemporalIndexedCSVDataSink(testFolder.getRoot().getPath(), getConfig()).write(testGraphCollection); + getExecutionEnvironment().execute(); + TemporalIndexedCSVDataSource source = new TemporalIndexedCSVDataSource(testFolder.getRoot().getPath(), + getConfig()); + collectAndAssertTrue(source.getTemporalGraphCollection().equalsByGraphData(testGraphCollection)); + } + + /** + * Tests the function {@link TemporalIndexedCSVDataSource#getConfig()}. + */ + @Test + public void testGetConfig() { + TemporalIndexedCSVDataSource source = new TemporalIndexedCSVDataSource(testFolder.getRoot().getPath(), + getConfig()); + assertEquals(getConfig(), source.getConfig()); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/BaseTemporalGVELayoutTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/BaseTemporalGVELayoutTest.java new file mode 100644 index 000000000000..4fa8b86723a4 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/BaseTemporalGVELayoutTest.java @@ -0,0 +1,91 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.layout; + +import org.apache.flink.api.java.ExecutionEnvironment; +import org.gradoop.common.model.api.entities.EdgeFactory; +import org.gradoop.common.model.api.entities.GraphHeadFactory; +import org.gradoop.common.model.api.entities.VertexFactory; +import org.gradoop.temporal.model.impl.TemporalGraphFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.util.TemporalGradoopConfig; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.BeforeClass; + +/** + * Base class for layout tests. Provides some predefined graph elements. + */ +public abstract class BaseTemporalGVELayoutTest extends TemporalGradoopTestBase { + + protected static TemporalGraphHead g0; + protected static TemporalGraphHead g1; + + protected static TemporalVertex v0; + protected static TemporalVertex v1; + protected static TemporalVertex v2; + protected static TemporalVertex v3; + protected static TemporalVertex v4; + protected static TemporalVertex v5; + + protected static TemporalEdge e0; + protected static TemporalEdge e1; + protected static TemporalEdge e2; + protected static TemporalEdge e3; + protected static TemporalEdge e4; + + /** + * Create temporal graph elements before tests. + */ + @BeforeClass + public static void setup() { + ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); + TemporalGraphFactory factory = TemporalGradoopConfig.createConfig(env).getTemporalGraphFactory(); + + GraphHeadFactory temporalGraphHeadFactory = factory.getGraphHeadFactory(); + VertexFactory temporalVertexFactory = factory.getVertexFactory(); + EdgeFactory temporalEdgeFactory = factory.getEdgeFactory(); + + g0 = temporalGraphHeadFactory.createGraphHead("G"); + g1 = temporalGraphHeadFactory.createGraphHead("Q"); + + v0 = temporalVertexFactory.createVertex("A"); + v1 = temporalVertexFactory.createVertex("A"); + v2 = temporalVertexFactory.createVertex("A"); + v3 = temporalVertexFactory.createVertex("B"); + v4 = temporalVertexFactory.createVertex("B"); + v5 = temporalVertexFactory.createVertex(); + + e0 = temporalEdgeFactory.createEdge("X", v0.getId(), v1.getId()); + e1 = temporalEdgeFactory.createEdge("X", v1.getId(), v1.getId()); + e2 = temporalEdgeFactory.createEdge("Y", v3.getId(), v4.getId()); + e3 = temporalEdgeFactory.createEdge("Y", v3.getId(), v1.getId()); + + v0.addGraphId(g0.getId()); + v1.addGraphId(g0.getId()); + v1.addGraphId(g1.getId()); + v2.addGraphId(g1.getId()); + v3.addGraphId(g1.getId()); + v4.addGraphId(g1.getId()); + v5.addGraphId(g1.getId()); + + e0.addGraphId(g0.getId()); + e1.addGraphId(g0.getId()); + e2.addGraphId(g1.getId()); + e3.addGraphId(g1.getId()); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java index f296db1aa20b..932ab41a2a4b 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalGVELayoutTest.java @@ -15,17 +15,11 @@ */ package org.gradoop.temporal.model.impl.layout; -import com.google.common.collect.Sets; import org.gradoop.common.GradoopTestUtils; import org.gradoop.temporal.model.impl.pojo.TemporalEdge; -import org.gradoop.temporal.model.impl.pojo.TemporalEdgeFactory; import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; -import org.gradoop.temporal.model.impl.pojo.TemporalGraphHeadFactory; import org.gradoop.temporal.model.impl.pojo.TemporalVertex; -import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; -import org.gradoop.temporal.util.TemporalGradoopTestBase; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; +import org.junit.Test; import java.util.Collection; @@ -35,74 +29,15 @@ /** * Tests of {@link TemporalGVELayout}. */ -public class TemporalGVELayoutTest extends TemporalGradoopTestBase { - - protected static TemporalGraphHead g0; - protected static TemporalGraphHead g1; - - protected static TemporalVertex v0; - protected static TemporalVertex v1; - protected static TemporalVertex v2; - - protected static TemporalEdge e0; - protected static TemporalEdge e1; - - /** - * Create temporal graph elements before tests. - */ - @BeforeClass - public static void setup() { - TemporalGraphHeadFactory temporalGraphHeadFactory = new TemporalGraphHeadFactory(); - TemporalVertexFactory temporalVertexFactory = new TemporalVertexFactory(); - TemporalEdgeFactory temporalEdgeFactory = new TemporalEdgeFactory(); - - g0 = temporalGraphHeadFactory.createGraphHead(); - g0.setLabel("A"); - g1 = temporalGraphHeadFactory.createGraphHead(); - g1.setLabel("B"); - - v0 = temporalVertexFactory.createVertex(); - v0.setLabel("A"); - v1 = temporalVertexFactory.createVertex(); - v2 = temporalVertexFactory.createVertex(); - - e0 = temporalEdgeFactory.createEdge(v0.getId(), v1.getId()); - e0.setLabel("a"); - e1 = temporalEdgeFactory.createEdge(v1.getId(), v2.getId()); - - v0.addGraphId(g0.getId()); - v1.addGraphId(g0.getId()); - v1.addGraphId(g1.getId()); - v2.addGraphId(g1.getId()); - - e0.addGraphId(g0.getId()); - e1.addGraphId(g1.getId()); - } - - /** - * Creates a temporal GVE layout fom collections. - * - * @param graphHeads graph heads to use - * @param vertices vertices to use - * @param edges edges to use - * @return the temporal layout - */ - private TemporalGVELayout from(Collection graphHeads, - Collection vertices, - Collection edges) { - return new TemporalGVELayout( - getExecutionEnvironment().fromCollection(graphHeads), - getExecutionEnvironment().fromCollection(vertices), - getExecutionEnvironment().fromCollection(edges)); - } +public class TemporalGVELayoutTest extends BaseTemporalGVELayoutTest { /** * Test {@link TemporalGVELayout#getGraphHead()} */ @Test public void getGraphHead() throws Exception { - GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0), - from(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphHead().collect()); + GradoopTestUtils.validateElementCollections(singletonList(g0), + createLayout(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphHead().collect()); } /** @@ -110,8 +45,8 @@ public void getGraphHead() throws Exception { */ @Test public void getGraphHeads() throws Exception { - GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0, g1), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeads().collect()); + GradoopTestUtils.validateElementCollections(asList(g0, g1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeads().collect()); } /** @@ -119,8 +54,8 @@ public void getGraphHeads() throws Exception { */ @Test public void getGraphHeadsByLabel() throws Exception { - GradoopTestUtils.validateElementCollections(Sets.newHashSet(g0), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("A").collect()); + GradoopTestUtils.validateElementCollections(singletonList(g0), + createLayout(singletonList(g0), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("G").collect()); } /** @@ -128,8 +63,8 @@ public void getGraphHeadsByLabel() throws Exception { */ @Test public void getVertices() throws Exception { - GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(v0, v1, v2), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVertices().collect()); + GradoopTestUtils.validateGraphElementCollections(asList(v0, v1), + createLayout(asList(g0, g1), asList(v0, v1), asList(e0, e1)).getVertices().collect()); } /** @@ -137,8 +72,8 @@ public void getVertices() throws Exception { */ @Test public void getVerticesByLabel() throws Exception { - GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(v0), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVerticesByLabel("A").collect()); + GradoopTestUtils.validateGraphElementCollections(asList(v0, v1, v2), + createLayout(asList(g0, g1), asList(v0, v1, v2, v3, v4, v5), asList(e0, e1)).getVerticesByLabel("A").collect()); } /** @@ -146,8 +81,8 @@ public void getVerticesByLabel() throws Exception { */ @Test public void getEdges() throws Exception { - GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(e0, e1), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdges().collect()); + GradoopTestUtils.validateGraphElementCollections(asList(e0, e1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdges().collect()); } /** @@ -155,7 +90,24 @@ public void getEdges() throws Exception { */ @Test public void getEdgesByLabel() throws Exception { - GradoopTestUtils.validateGraphElementCollections(Sets.newHashSet(e0), - from(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdgesByLabel("a").collect()); + GradoopTestUtils.validateGraphElementCollections(asList(e0, e1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getEdgesByLabel("X").collect()); + } + + /** + * Creates a temporal GVE layout fom collections. + * + * @param graphHeads graph heads to use + * @param vertices vertices to use + * @param edges edges to use + * @return the temporal layout + */ + private TemporalGVELayout createLayout(Collection graphHeads, + Collection vertices, + Collection edges) { + return new TemporalGVELayout( + getExecutionEnvironment().fromCollection(graphHeads), + getExecutionEnvironment().fromCollection(vertices), + getExecutionEnvironment().fromCollection(edges)); } } diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayoutTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayoutTest.java new file mode 100644 index 000000000000..1770fdfacc32 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/layout/TemporalIndexedLayoutTest.java @@ -0,0 +1,131 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.layout; + +import org.apache.flink.api.java.DataSet; +import org.gradoop.common.GradoopTestUtils; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.junit.Test; + +import java.util.Collection; +import java.util.Map; +import java.util.stream.Collectors; + +import static java.util.Arrays.asList; +import static java.util.Collections.singletonList; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +/** + * Tests class {@link TemporalIndexedLayout}. + */ +public class TemporalIndexedLayoutTest extends BaseTemporalGVELayoutTest { + + @Test + public void testIsGVELayout() { + assertFalse(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isGVELayout()); + } + + @Test + public void testIsTransactionalLayout() { + assertFalse(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isTransactionalLayout()); + } + + @Test + public void testGetGraphHead() throws Exception { + GradoopTestUtils.validateElementCollections(singletonList(g0), + createLayout(singletonList(g0), asList(v0, v1), singletonList(e0)).getGraphHead().collect()); + } + + @Test + public void testGetGraphHeads() throws Exception { + GradoopTestUtils.validateElementCollections(asList(g0, g1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeads().collect()); + } + + @Test + public void testGetGraphHeadsByLabel() throws Exception { + GradoopTestUtils.validateElementCollections(singletonList(g0), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("G").collect()); + GradoopTestUtils.validateElementCollections(singletonList(g1), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphHeadsByLabel("Q").collect()); + } + + @Test(expected = UnsupportedOperationException.class) + public void testGetGraphTransactions() { + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getGraphTransactions(); + } + + @Test + public void testGetVertices() throws Exception { + GradoopTestUtils.validateGraphElementCollections(asList(v0, v1, v2), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).getVertices().collect()); + } + + @Test + public void testGetVerticesByLabel() throws Exception { + GradoopTestUtils.validateGraphElementCollections(asList(v3, v4), + createLayout(asList(g0, g1), asList(v0, v1, v2, v3, v4), asList(e0, e1)).getVerticesByLabel("B").collect()); + } + + @Test + public void testGetEdges() throws Exception { + GradoopTestUtils.validateGraphElementCollections(asList(e0, e1, e2, e3), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1, e2, e3)).getEdges().collect()); + } + + @Test + public void testGetEdgesByLabel() throws Exception { + GradoopTestUtils.validateGraphElementCollections(asList(e2, e3), + createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1, e2, e3)).getEdgesByLabel("Y").collect()); + } + + @Test + public void isIndexedGVELayout() { + assertTrue(createLayout(asList(g0, g1), asList(v0, v1, v2), asList(e0, e1)).isIndexedGVELayout()); + } + + /** + * Creates a temporal indexed GVE layout fom collections. + * + * @param graphHeads graph heads to use + * @param vertices vertices to use + * @param edges edges to use + * @return the temporal indexed layout + */ + private TemporalIndexedLayout createLayout(Collection graphHeads, + Collection vertices, Collection edges) { + + Map> indexedGraphHeads = + graphHeads.stream().collect(Collectors.groupingBy(GraphHead::getLabel)).entrySet().stream().collect( + Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + + Map> indexedVertices = + vertices.stream().collect(Collectors.groupingBy(Vertex::getLabel)).entrySet().stream().collect( + Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + + Map> indexedEdges = + edges.stream().collect(Collectors.groupingBy(Edge::getLabel)).entrySet().stream().collect( + Collectors.toMap(Map.Entry::getKey, e -> getExecutionEnvironment().fromCollection(e.getValue()))); + + return new TemporalIndexedLayout(indexedGraphHeads, indexedVertices, indexedEdges); + } +} From 9a1768dfc3a0fe4d60fa0dc2b5281a46293b7e4a Mon Sep 17 00:00:00 2001 From: Timo <24251362+timo95@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:40:14 +0100 Subject: [PATCH 09/19] [#1481] Add support for quoted csv fields in MinimalCSVImporter (#1513) fixes #1481 --- .../importer/impl/csv/MinimalCSVImporter.java | 140 +++++++++++++----- .../csv/functions/CsvRowToProperties.java | 25 ++-- .../impl/csv/MinimalCSVImporterTest.java | 51 +++++-- .../src/test/resources/csv/expectedQuoted.gdl | 5 + .../src/test/resources/csv/inputQuoted.csv | 4 + 5 files changed, 154 insertions(+), 71 deletions(-) create mode 100644 gradoop-data-integration/src/test/resources/csv/expectedQuoted.gdl create mode 100644 gradoop-data-integration/src/test/resources/csv/inputQuoted.csv diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java index 9056a8f15fce..1a5eb6bcaee9 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporter.java @@ -16,6 +16,11 @@ package org.gradoop.dataintegration.importer.impl.csv; import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.ExecutionEnvironment; +import org.apache.flink.api.java.Utils; +import org.apache.flink.api.java.io.TupleCsvInputFormat; +import org.apache.flink.api.java.tuple.Tuple; +import org.apache.flink.api.java.typeutils.TupleTypeInfo; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; @@ -34,6 +39,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.stream.IntStream; /** * Read a csv file and import each row as a vertex in EPGM representation. @@ -43,34 +49,43 @@ public class MinimalCSVImporter implements DataSource { /** * Token delimiter of the CSV file. */ - private String tokenSeparator; + private final String tokenSeparator; /** * Path to the csv file. */ - private String path; + private final String path; /** * The charset used in the csv file, e.g., "UTF-8". */ - private String charset; + private String charset = "UTF-8"; /** * The property names for all columns in the file. If {@code null}, the first line will be * interpreted as header row. */ - private List columnNames; + private final List columnNames; /** - * Flag to specify if each row of the file should be checked for reoccurring of the column - * property names. + * Flag to specify if each row of the file should be checked for reoccurring of the column property names. */ - private boolean checkReoccurringHeader; + private boolean checkReoccurringHeader = false; + + /** + * Flag to specify if quoted strings should be considered. Will escape delimiters inside quoted strings. + */ + private boolean parseQuotedStrings = false; + + /** + * Character used to quote strings. + */ + private char quoteCharacter = '"'; /** * Gradoop Flink configuration. */ - private GradoopFlinkConfig config; + private final GradoopFlinkConfig config; /** * Create a new MinimalCSVImporter instance by the given parameters. @@ -79,49 +94,68 @@ public class MinimalCSVImporter implements DataSource { * @param tokenSeparator the token delimiter of the csv file * @param config GradoopFlinkConfig configuration * @param columnNames property identifiers for each column - * @param checkReoccurringHeader if each row of the file should be checked for reoccurring of - * the column property names */ public MinimalCSVImporter(String path, String tokenSeparator, GradoopFlinkConfig config, - List columnNames, boolean checkReoccurringHeader) { - this(path, tokenSeparator, config, checkReoccurringHeader); - this.columnNames = Objects.requireNonNull(columnNames); + List columnNames) { + this.path = Objects.requireNonNull(path); + this.tokenSeparator = Objects.requireNonNull(tokenSeparator); + this.config = Objects.requireNonNull(config); + this.columnNames = columnNames; } /** - * Create a new MinimalCSVImporter instance by the given parameters. - * Use the UTF-8 charset as default. The first line of the file will be set as the property - * names for each column. + * Create a new MinimalCSVImporter instance by the given parameters. The first line of the file + * will set as the property names for each column. * * @param path the path to the csv file * @param tokenSeparator the token delimiter of the csv file * @param config GradoopFlinkConfig configuration - * @param checkReoccurringHeader if each row of the file should be checked for reoccurring of - * the column property names. */ - public MinimalCSVImporter(String path, String tokenSeparator, GradoopFlinkConfig config, - boolean checkReoccurringHeader) { - this(path, tokenSeparator, config, "UTF-8", checkReoccurringHeader); + public MinimalCSVImporter(String path, String tokenSeparator, GradoopFlinkConfig config) { + this(path, tokenSeparator, config, null); } /** - * Create a new MinimalCSVImporter with a user set charset. The first line of the file - * will set as the property names for each column. + * Set charset of CSV file. UTF-8 is used as default. * - * @param path the path to the csv file - * @param tokenSeparator the token delimiter of the csv file - * @param config GradoopFlinkConfig configuration - * @param charset the charset used in the csv file - * @param checkReoccurringHeader if each row of the file should be checked for reoccurring of - * the column property names. + * @param charset the charset used in the csv file, e.g., "UTF-8" + * @return this */ - public MinimalCSVImporter(String path, String tokenSeparator, GradoopFlinkConfig config, - String charset, boolean checkReoccurringHeader) { - this.path = Objects.requireNonNull(path); - this.tokenSeparator = Objects.requireNonNull(tokenSeparator); - this.config = Objects.requireNonNull(config); - this.charset = Objects.requireNonNull(charset); - this.checkReoccurringHeader = checkReoccurringHeader; + public MinimalCSVImporter setCharset(String charset) { + this.charset = charset; + return this; + } + + /** + * Set checkReoccurringHeader flag. + * Each row of the file will be checked for reoccurrence of the column property names. + * + * @return this + */ + public MinimalCSVImporter checkReoccurringHeader() { + this.checkReoccurringHeader = true; + return this; + } + + /** + * Set parseQuotedStrings flag. Delimiters in quoted fields will be escaped. + * + * @return this + */ + public MinimalCSVImporter parseQuotedStrings() { + this.parseQuotedStrings = true; + return this; + } + + /** + * Set quoteCharacter. + * + * @param quoteCharacter character used to quote fields + * @return this + */ + public MinimalCSVImporter quoteCharacter(char quoteCharacter) { + this.quoteCharacter = quoteCharacter; + return this; } /** @@ -161,13 +195,41 @@ public GraphCollection getGraphCollection() throws IOException { * @return a {@link DataSet} of all vertices from one specific file */ private DataSet readCSVFile(List propertyNames, boolean checkReoccurringHeader) { - return config.getExecutionEnvironment() - .readTextFile(path) - .flatMap(new CsvRowToProperties(tokenSeparator, propertyNames, checkReoccurringHeader)) + Class[] types = IntStream.range(0, propertyNames.size()) + .mapToObj(i -> String.class) + .>toArray(Class[]::new); + + return getCSVReader(config.getExecutionEnvironment(), path, types) + .flatMap(new CsvRowToProperties<>(propertyNames, checkReoccurringHeader)) + .filter(p -> !p.isEmpty()) .map(new PropertiesToVertex<>(config.getLogicalGraphFactory().getVertexFactory())) .returns(config.getLogicalGraphFactory().getVertexFactory().getType()); } + /** + * Create CSVReader for the provided types. + * Flinks CSVReader builder does not support tuples of dynamic length. + * + * @param env execution environment + * @param filename path of csv file + * @param fieldTypes array of types + * @return csv reader returning a tuple of fieldTypes + */ + private org.apache.flink.api.java.operators.DataSource getCSVReader(ExecutionEnvironment env, + String filename, Class[] fieldTypes) { + TupleTypeInfo typeInfo = TupleTypeInfo.getBasicAndBasicValueTupleTypeInfo(fieldTypes); + TupleCsvInputFormat inputFormat = new TupleCsvInputFormat<>( + new org.apache.flink.core.fs.Path(filename), typeInfo); + inputFormat.setCharset(this.charset); + inputFormat.setFieldDelimiter(this.tokenSeparator); + inputFormat.setSkipFirstLineAsHeader(false); + if (this.parseQuotedStrings) { + inputFormat.enableQuotedStringParsing(this.quoteCharacter); + } + return new org.apache.flink.api.java.operators.DataSource<>(env, inputFormat, typeInfo, + Utils.getCallLocationName()); + } + /** * Reads the fist row of a csv file and creates a list including all column entries that * will be used as property names. diff --git a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java index 392c0d061bc7..e0e1f3230080 100644 --- a/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java +++ b/gradoop-data-integration/src/main/java/org/gradoop/dataintegration/importer/impl/csv/functions/CsvRowToProperties.java @@ -16,6 +16,7 @@ package org.gradoop.dataintegration.importer.impl.csv.functions; import org.apache.flink.api.common.functions.FlatMapFunction; +import org.apache.flink.api.java.tuple.Tuple; import org.apache.flink.util.Collector; import org.gradoop.common.model.impl.properties.Properties; import org.gradoop.common.model.impl.properties.PropertyValue; @@ -27,13 +28,10 @@ /** * Map the values of a token separated row of a file to the properties of a EPGM element. * Each property value will be mapped to the property name the user set via parameter. + * + * @param input type */ -public class CsvRowToProperties implements FlatMapFunction { - - /** - * Token separator for the csv file. - */ - private String tokenSeparator; +public class CsvRowToProperties implements FlatMapFunction { /** * The name of the properties @@ -53,27 +51,22 @@ public class CsvRowToProperties implements FlatMapFunction { /** * Create a new RowToVertexMapper * - * @param tokenDelimiter in the file is used * @param propertyNames list of the property names * @param checkReoccurringHeader should the row checked for a occurring of the column names? */ - public CsvRowToProperties(String tokenDelimiter, List propertyNames, - boolean checkReoccurringHeader) { - this.tokenSeparator = Objects.requireNonNull(tokenDelimiter); + public CsvRowToProperties(List propertyNames, boolean checkReoccurringHeader) { this.propertyNames = Objects.requireNonNull(propertyNames); this.checkReoccurringHeader = checkReoccurringHeader; this.reuseProperties = new Properties(); } @Override - public void flatMap(String line, Collector out) { - // Check if the line is an empty line - if (line.isEmpty()) { - return; + public void flatMap(T fields, Collector out) { + String[] propertyValues = new String[fields.getArity()]; + for (int i = 0; i < fields.getArity(); i++) { + propertyValues[i] = fields.getField(i); } - String[] propertyValues = line.split(tokenSeparator); - // If the line to read is equals to the header and the checkReoccurringHeader flag is set to // TRUE, we do not import this line. if (checkReoccurringHeader && propertyNames.containsAll(Arrays.asList(propertyValues))) { diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java index 53ba0e379328..a54fa67a76c0 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/importer/impl/csv/MinimalCSVImporterTest.java @@ -57,7 +57,8 @@ public class MinimalCSVImporterTest extends GradoopFlinkTestBase { public void testImportVertexWithHeader() throws Exception { String csvPath = MinimalCSVImporterTest.class.getResource("/csv/input.csv").getPath(); - DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), true); + DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig()) + .checkReoccurringHeader(); DataSet importVertex = importVertexImporter.getLogicalGraph().getVertices(); @@ -78,7 +79,8 @@ public void testImportVertexWithHeader() throws Exception { public void testImportGraphCollection() throws Exception { String csvPath = MinimalCSVImporterTest.class.getResource("/csv/input.csv").getPath(); - DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), true); + DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig()) + .checkReoccurringHeader(); DataSet importVertex = importVertexImporter.getGraphCollection().getVertices(); @@ -104,7 +106,7 @@ public void testImportVertexWithoutHeader() throws Exception { List columnNames = Arrays.asList("name", "value1", "value2", "value3"); - DataSource importer = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), columnNames, false); + DataSource importer = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), columnNames); DataSet importVertex = importer.getLogicalGraph().getVertices(); List lv = new ArrayList<>(); @@ -125,8 +127,7 @@ public void testImporterWithEmptyFile() throws Exception { // Create an empty file File emptyFile = File.createTempFile("empty-csv", null); - DataSource importer = - new MinimalCSVImporter(emptyFile.getPath(), DELIMITER, getConfig(), false); + DataSource importer = new MinimalCSVImporter(emptyFile.getPath(), DELIMITER, getConfig()); checkExceptions(importer, emptyFile); } @@ -144,8 +145,7 @@ public void testImporterWithEmptyLineInFile() throws Exception { fileWriter.write(System.getProperty("line.separator")); fileWriter.close(); - DataSource importer = - new MinimalCSVImporter(emptyFile.getPath(), DELIMITER, getConfig(), false); + DataSource importer = new MinimalCSVImporter(emptyFile.getPath(), DELIMITER, getConfig()); checkExceptions(importer, emptyFile); } @@ -163,7 +163,8 @@ public void testImportLogicalGraphWithHeader() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromFile(gdlPath); - DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), true); + DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig()) + .checkReoccurringHeader(); LogicalGraph resultGraph = importVertexImporter.getLogicalGraph(); LogicalGraph expectedGraph = loader.getLogicalGraphByVariable("expected"); @@ -188,8 +189,7 @@ public void testImportLogicalGraphWithoutHeader() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromFile(gdlPath); List columnNames = Arrays.asList("name", "value1", "value2", "value3"); - DataSource importVertexImporter = - new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), columnNames, false); + DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), columnNames); LogicalGraph resultGraph = importVertexImporter.getLogicalGraph(); LogicalGraph expectedGraph = loader.getLogicalGraphByVariable("expected"); @@ -211,13 +211,13 @@ public void testReoccurringHeader() throws Exception { //set the first line of the file as column property names and check file of reoccurring and skip //header row as vertex - DataSource importerWithHeader = - new MinimalCSVImporter(csvPathWithHeader, DELIMITER, getConfig(), true); + DataSource importerWithHeader = new MinimalCSVImporter(csvPathWithHeader, DELIMITER, getConfig()) + .checkReoccurringHeader(); //read all rows of the csv files as vertices List columnNames = Arrays.asList("name", "value1", "value2", "value3"); DataSource importerWithoutHeader = - new MinimalCSVImporter(csvPathWithoutHeader, DELIMITER, getConfig(), columnNames, false); + new MinimalCSVImporter(csvPathWithoutHeader, DELIMITER, getConfig(), columnNames); LogicalGraph resultWithHeader = importerWithHeader.getLogicalGraph(); LogicalGraph resultWithoutHeader = importerWithoutHeader.getLogicalGraph(); @@ -239,7 +239,7 @@ public void testEmptyLines() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromFile(gdlPath); - DataSource importer = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), true); + DataSource importer = new MinimalCSVImporter(csvPath, DELIMITER, getConfig()).checkReoccurringHeader(); LogicalGraph result = importer.getLogicalGraph(); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); @@ -247,7 +247,7 @@ public void testEmptyLines() throws Exception { } /** - * Test if no property will be created if a row contains empty entries . + * Test if no property will be created if a row contains empty entries. * * @throws Exception on failure */ @@ -256,7 +256,7 @@ public void testEmptyProperty() throws Exception { String csvPath = MinimalCSVImporterTest.class .getResource("/csv/inputEmptyPropertyValues.csv").getPath(); - DataSource importer = new MinimalCSVImporter(csvPath, DELIMITER, getConfig(), true); + DataSource importer = new MinimalCSVImporter(csvPath, DELIMITER, getConfig()).checkReoccurringHeader(); LogicalGraph result = importer.getLogicalGraph(); List lv = new ArrayList<>(); @@ -281,6 +281,25 @@ public void testEmptyProperty() throws Exception { } } + /** + * Test if delimiters in quoted CSV fields are ignored. + * + * @throws Exception on failure + */ + @Test + public void testQuotedFields() throws Exception { + String csvPath = MinimalCSVImporterTest.class.getResource("/csv/inputQuoted.csv").getPath(); + String gdlPath = MinimalCSVImporterTest.class.getResource("/csv/expectedQuoted.gdl").getPath(); + + FlinkAsciiGraphLoader loader = getLoaderFromFile(gdlPath); + DataSource importVertexImporter = new MinimalCSVImporter(csvPath, DELIMITER, getConfig()) + .checkReoccurringHeader().parseQuotedStrings().quoteCharacter('"'); + LogicalGraph resultGraph = importVertexImporter.getLogicalGraph(); + LogicalGraph expectedGraph = loader.getLogicalGraphByVariable("expected"); + + collectAndAssertTrue(expectedGraph.equalsByElementData(resultGraph)); + } + /** * Checks if the csv file import is equals to the assert import. * diff --git a/gradoop-data-integration/src/test/resources/csv/expectedQuoted.gdl b/gradoop-data-integration/src/test/resources/csv/expectedQuoted.gdl new file mode 100644 index 000000000000..b1a7bac72336 --- /dev/null +++ b/gradoop-data-integration/src/test/resources/csv/expectedQuoted.gdl @@ -0,0 +1,5 @@ +expected [ + (v0 {name:"fo;o", value1:"453", value3:"71.03"}), + (v1 {name:"bar", value1:"76", value2:"false", value3:"33.4"}), + (v2 {name:"bla;", value1:"4568", value3:";9.4;2;"}) +] diff --git a/gradoop-data-integration/src/test/resources/csv/inputQuoted.csv b/gradoop-data-integration/src/test/resources/csv/inputQuoted.csv new file mode 100644 index 000000000000..19e45a5981ba --- /dev/null +++ b/gradoop-data-integration/src/test/resources/csv/inputQuoted.csv @@ -0,0 +1,4 @@ +name;value1;value2;value3 +"fo;o";453;"";"71.03" +bar;76;false;33.4 +"bla;";4568;;";9.4;2;" From ca44c677ec307c2db984df8df85a3728ea7ac128 Mon Sep 17 00:00:00 2001 From: Christopher Rost <18614530+ChrizZz110@users.noreply.github.com> Date: Thu, 25 Feb 2021 13:57:30 +0100 Subject: [PATCH 10/19] [#1516] Updated version of Apache commons-lang from 2.6 to 3.11 (#1518) fixes #1516 --- NOTICE-binary | 2 +- gradoop-common/pom.xml | 4 ++-- .../common/model/impl/properties/PropertyValueList.java | 2 +- .../tle/canonicalization/CanonicalLabeler.java | 2 +- .../cypher/operators/expand/functions/AdoptEmptyPaths.java | 5 +++-- .../cypher/operators/join/functions/ExtractJoinColumns.java | 2 +- .../join/functions/ExtractPropertyJoinColumns.java | 2 +- .../operators/join/functions/ExtractJoinColumnsTest.java | 2 +- .../join/functions/ExtractPropertyJoinColumnsTest.java | 2 +- .../src/main/resources/archetype-resources/pom.xml | 2 +- .../gradoop/storage/hbase/config/GradoopHBaseConfig.java | 2 +- pom.xml | 6 +++--- 12 files changed, 17 insertions(+), 16 deletions(-) diff --git a/NOTICE-binary b/NOTICE-binary index 8f4d6e05f490..bf64ab303788 100644 --- a/NOTICE-binary +++ b/NOTICE-binary @@ -11,7 +11,7 @@ This project bundles the following dependencies under the Apache Software Licens - com.github.s1ck:gdl:0.3 - com.google.guava:guava:11.0.2 - commons-cli:commons-cli:1.4 -- commons-lang:commons-lang:2.6 +- org.apache.commons:commons-lang3:3.11 - log4j:log4j:1.2.17 - me.lemire.integercompression:JavaFastPFOR:0.1.10 - org.codehaus.jettison:jettison:1.3.7 diff --git a/gradoop-common/pom.xml b/gradoop-common/pom.xml index 21b6b1babd79..4dff67a602ad 100644 --- a/gradoop-common/pom.xml +++ b/gradoop-common/pom.xml @@ -102,8 +102,8 @@ - commons-lang - commons-lang + org.apache.commons + commons-lang3 diff --git a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java index f6066f92a4d6..700dcb9387c9 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java +++ b/gradoop-common/src/main/java/org/gradoop/common/model/impl/properties/PropertyValueList.java @@ -15,7 +15,7 @@ */ package org.gradoop.common.model.impl.properties; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.flink.core.memory.DataInputView; import org.apache.flink.core.memory.DataInputViewStreamWrapper; import org.apache.flink.core.memory.DataOutputView; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java index 3224c6dd7922..864e46cbc795 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/canonicalization/CanonicalLabeler.java @@ -18,7 +18,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.gradoop.flink.algorithms.fsm.transactional.tle.pojos.Embedding; import org.gradoop.flink.algorithms.fsm.transactional.tle.pojos.FSMEdge; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java index 1729603eb8c7..23f8c7d724ac 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/expand/functions/AdoptEmptyPaths.java @@ -15,11 +15,12 @@ */ package org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.expand.functions; -import org.apache.commons.lang.ArrayUtils; import org.apache.flink.api.common.functions.RichFlatMapFunction; import org.apache.flink.util.Collector; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import static java.util.Objects.deepEquals; + /** * Input embeddings are extended by an empty path and an additional entry which equals the entry at * the expand column. This is done to ensure equally sized embeddings in the case of Expand @@ -50,7 +51,7 @@ public AdoptEmptyPaths(int expandColumn, int closingColumn) { @Override public void flatMap(Embedding value, Collector out) { if (closingColumn >= 0 && - !ArrayUtils.isEquals(value.getRawId(expandColumn), value.getRawId(closingColumn))) { + !deepEquals(value.getRawId(expandColumn), value.getRawId(closingColumn))) { return; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java index 68fcea6cdc06..c0aca94623f5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumns.java @@ -15,7 +15,7 @@ */ package org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.join.functions; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.flink.api.java.functions.KeySelector; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java index dd0723344919..7639954cbdf2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumns.java @@ -15,7 +15,7 @@ */ package org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.join.functions; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.flink.api.java.functions.KeySelector; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java index 796e3be804bc..863782c4b6e1 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractJoinColumnsTest.java @@ -15,7 +15,7 @@ */ package org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.join.functions; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.PhysicalOperatorTest; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java index 5342b1d0434e..8e3c0a682027 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/join/functions/ExtractPropertyJoinColumnsTest.java @@ -15,7 +15,7 @@ */ package org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.join.functions; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.properties.PropertyValue; import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.PhysicalOperatorTest; diff --git a/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml b/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml index 4d681f8e274c..757faebbc156 100644 --- a/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml +++ b/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml @@ -93,7 +93,7 @@ ${project.groupId}:${project.artifactId} org.gradoop:* - commons-lang:commons-lang + org.apache.commons:commons-lang3 com.github.s1ck:gdl com.google.guava:guava me.lemire.integercompression:* diff --git a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java index cf41ffd84fdc..614267afeb45 100644 --- a/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java +++ b/gradoop-store/gradoop-hbase/src/main/java/org/gradoop/storage/hbase/config/GradoopHBaseConfig.java @@ -15,7 +15,7 @@ */ package org.gradoop.storage.hbase.config; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.hbase.TableName; import org.gradoop.common.model.impl.pojo.EPGMEdgeFactory; import org.gradoop.common.model.impl.pojo.EPGMGraphHeadFactory; diff --git a/pom.xml b/pom.xml index d2a8e8fe3ebd..587113f58425 100644 --- a/pom.xml +++ b/pom.xml @@ -157,7 +157,7 @@ 1.9.0 1.4 - 2.6 + 3.11 1.7.2 0.3.2 11.0.2 @@ -688,8 +688,8 @@ - commons-lang - commons-lang + org.apache.commons + commons-lang3 ${dep.commons-lang.version} From a9bec72caace9ca7b2d607633fd70163e5b0d7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20G=C3=B3mez?= Date: Fri, 26 Feb 2021 13:24:46 +0100 Subject: [PATCH 11/19] [#1505] bumped Flink version to 1.9.3 (#1519) fixes #1505 --- gradoop-flink/pom.xml | 2 +- .../transactional/tle/functions/CategoryGraphCounts.java | 2 +- .../gelly/labelpropagation/functions/LPUpdateFunction.java | 2 +- .../simulation/dual/functions/ValidateNeighborhood.java | 5 ++--- pom.xml | 7 ++++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gradoop-flink/pom.xml b/gradoop-flink/pom.xml index b150591fb7d9..dcd984cc6176 100644 --- a/gradoop-flink/pom.xml +++ b/gradoop-flink/pom.xml @@ -121,7 +121,7 @@ org.apache.flink - flink-shaded-hadoop2 + flink-shaded-hadoop-2 diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java index d8ed7abc85bf..6a8f899fc4c5 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/fsm/transactional/tle/functions/CategoryGraphCounts.java @@ -15,8 +15,8 @@ */ package org.gradoop.flink.algorithms.fsm.transactional.tle.functions; +import com.google.common.collect.Maps; import org.apache.flink.api.common.functions.GroupReduceFunction; -import org.apache.flink.hadoop.shaded.com.google.common.collect.Maps; import org.apache.flink.util.Collector; import org.gradoop.flink.model.impl.tuples.WithCount; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java index d0e8c0f89197..4c0e8e2964da 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPUpdateFunction.java @@ -15,10 +15,10 @@ */ package org.gradoop.flink.algorithms.gelly.labelpropagation.functions; +import com.google.common.collect.Lists; import org.apache.flink.graph.Vertex; import org.apache.flink.graph.spargel.GatherFunction; import org.apache.flink.graph.spargel.MessageIterator; -import org.apache.flink.hadoop.shaded.com.google.common.collect.Lists; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.properties.PropertyValue; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java index b7b9e2386d23..ecd068736843 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java @@ -15,14 +15,13 @@ */ package org.gradoop.flink.model.impl.operators.matching.single.simulation.dual.functions; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; import org.apache.flink.api.common.functions.RichFlatMapFunction; import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.configuration.Configuration; -import org.apache.flink.hadoop.shaded.com.google.common.collect.Lists; import org.apache.flink.util.Collector; -import org.gradoop.flink.model.impl.operators.matching.single.simulation.dual.tuples - .IdPair; +import org.gradoop.flink.model.impl.operators.matching.single.simulation.dual.tuples.IdPair; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.flink.model.impl.operators.matching.common.query.QueryHandler; import org.gradoop.flink.model.impl.operators.matching.single.simulation.dual.tuples.Deletion; diff --git a/pom.xml b/pom.xml index 587113f58425..5b1fa9c5c4b1 100644 --- a/pom.xml +++ b/pom.xml @@ -158,7 +158,7 @@ 1.9.0 1.4 3.11 - 1.7.2 + 1.9.3 0.3.2 11.0.2 1.4.3 @@ -167,6 +167,7 @@ 1.3.7 1.2.3 4.0.2 + 2.6.5-9.0 1.2.17 2.21.0 0.2.4-SNAPSHOT @@ -620,8 +621,8 @@ org.apache.flink - flink-shaded-hadoop2 - ${dep.flink.version} + flink-shaded-hadoop-2 + ${dep.flink-shaded.version} From b003ed9215590809cc17d678e3a2464c90c9e43d Mon Sep 17 00:00:00 2001 From: Timo <24251362+timo95@users.noreply.github.com> Date: Thu, 4 Mar 2021 14:32:47 +0100 Subject: [PATCH 12/19] [#1455] Generify Gelly operators (#1457) Generify Gelly operators and some operators using Gelly operators internally. Gelly operators: AnnotateWeaklyConnectedComponents DistinctVertexDegrees GellyGlobalClusteringCoefficientDirected GellyGlobalClusteringCoefficientUndirected GellyLabelPropagation GellyLocalClusteringCoefficientDirected GellyLocalClusteringCoefficientUndirected GellyTriangleCounting GradoopLabelPropagation HITS KRandomJumpGellyVCI PageRank SingleSourceShortestPaths ValueWeaklyConnectedComponents --- .../gradoop/checkstyle-suppressions.xml | 4 +- .../communities/GellyCommunitiesExample.java | 2 +- .../quickstart/QuickstartExample.java | 5 +- .../algorithms/gelly/BaseGellyAlgorithm.java | 37 +++++++---- .../gelly/GradoopGellyAlgorithm.java | 57 ++++++++++------- .../ClusteringCoefficientBase.java | 40 +++++++----- ...lyGlobalClusteringCoefficientDirected.java | 34 ++++++---- ...GlobalClusteringCoefficientUndirected.java | 35 ++++++----- ...llyLocalClusteringCoefficientDirected.java | 34 ++++++---- ...yLocalClusteringCoefficientUndirected.java | 35 ++++++----- .../LocalCCResultTupleToVertexJoin.java | 12 ++-- .../AnnotateWeaklyConnectedComponents.java | 55 +++++++++------- .../ValueWeaklyConnectedComponents.java | 43 ++++++++----- ...WeaklyConnectedComponentsAsCollection.java | 31 +++++++--- .../functions/CreateLongSourceIds.java | 10 +-- .../GellyVertexValueToVertexPropertyJoin.java | 15 ++--- .../VertexPropertyToEdgePropertyJoin.java | 12 ++-- .../gelly/functions/EdgeToGellyEdge.java | 7 ++- .../functions/EdgeToGellyEdgeWithDouble.java | 11 ++-- .../EdgeToGellyEdgeWithNullValue.java | 15 ++--- .../EdgeToGellyEdgeWithPropertyValue.java | 19 +++--- .../gelly/functions/ElementToGellyEdge.java | 2 +- .../gelly/functions/ElementToGellyVertex.java | 2 +- .../gelly/functions/VertexToGellyVertex.java | 12 ++-- .../VertexToGellyVertexWithGradoopId.java | 12 ++-- .../VertexToGellyVertexWithNullValue.java | 12 ++-- .../VertexToGellyVertexWithPropertyValue.java | 15 +++-- .../WritePropertyToGraphHeadMap.java | 18 +++--- .../flink/algorithms/gelly/hits/HITS.java | 34 +++++++--- .../hits/functions/HITSToAttributes.java | 13 ++-- .../GellyLabelPropagation.java | 18 +++++- .../GradoopLabelPropagation.java | 18 +++++- .../labelpropagation/LabelPropagation.java | 40 ++++++++---- .../functions/LPMessageFunction.java | 3 +- .../functions/LPVertexJoin.java | 23 +++---- .../algorithms/gelly/pagerank/PageRank.java | 37 +++++++---- .../functions/PageRankToAttribute.java | 9 +-- .../gelly/randomjump/KRandomJumpGellyVCI.java | 62 +++++++++++-------- ...Join.java => EdgeWithGellyEdgeIdJoin.java} | 19 +++--- ...in.java => GellyVertexWithVertexJoin.java} | 27 ++++---- .../GetVisitedSourceTargetIdsFlatMap.java | 8 ++- .../functions/LongIdWithEdgeToTupleJoin.java | 19 +++--- .../VertexWithVisitedSourceTargetIdJoin.java | 10 +-- .../SingleSourceShortestPaths.java | 37 +++++++---- .../SingleSourceShortestPathsAttribute.java | 15 ++--- .../GellyTriangleCounting.java | 38 ++++++++---- .../vertexdegrees/DistinctVertexDegrees.java | 31 +++++++--- .../DistinctVertexDegreesToAttribute.java | 18 +++--- .../model/api/epgm/BaseGraphOperators.java | 15 +++++ .../model/api/epgm/LogicalGraphOperators.java | 10 --- .../flink/model/impl/epgm/LogicalGraph.java | 8 --- .../impl/functions/epgm/InitGraphHead.java | 22 ++++--- .../impl/functions/epgm/PropertyGetter.java | 10 +-- .../impl/functions/epgm/PropertyRemover.java | 8 +-- .../operators/sampling/PageRankSampling.java | 4 +- .../RandomLimitedDegreeVertexSampling.java | 4 +- .../RandomNonUniformVertexSampling.java | 4 +- .../RandomVertexNeighborhoodSampling.java | 5 +- .../sampling/RandomWalkSampling.java | 6 +- ...ilterVerticesWithDegreeOtherThanGiven.java | 28 ++++++--- .../functions/VertexWithDegreeFilter.java | 6 +- .../model/impl/operators/split/Split.java | 52 +++++++++------- .../split/functions/AddNewGraphsToEdge.java | 6 +- .../split/functions/AddNewGraphsToVertex.java | 9 ++- .../JoinEdgeTupleWithSourceGraphs.java | 14 ++--- .../JoinEdgeTupleWithTargetGraphs.java | 16 +++-- .../split/functions/SplitValues.java | 11 ++-- .../AverageClusteringCoefficient.java | 28 +++++++-- .../ConnectedComponentsDistribution.java | 29 ++++++--- ...nnectedComponentsDistributionAsValues.java | 27 ++++++-- ...ConnectedComponentDistributionFlatMap.java | 10 +-- .../GellyClusteringCoefficientTestBase.java | 13 +++- ...obalClusteringCoefficientDirectedTest.java | 15 ++++- ...alClusteringCoefficientUndirectedTest.java | 15 ++++- ...ocalClusteringCoefficientDirectedTest.java | 15 ++++- ...alClusteringCoefficientUndirectedTest.java | 15 ++++- ...lyConnectedComponentsAsCollectionTest.java | 2 +- .../flink/algorithms/gelly/hits/HITSTest.java | 2 +- .../GradoopLabelPropagationTest.java | 4 +- .../gelly/pagerank/PageRankTest.java | 8 +-- .../randomjump/KRandomJumpGellyVCITest.java | 20 +++--- .../SingleSourceShortestPathsTest.java | 4 +- .../GellyTriangleCountingTest.java | 8 +-- .../DistinctVertexDegreesTest.java | 4 +- .../flink/io/impl/csv/CSVDataSinkTest.java | 4 +- ...RandomLimitedDegreeVertexSamplingTest.java | 4 +- .../AverageClusteringCoefficientTest.java | 6 +- .../ConnectedComponentsDistributionTest.java | 4 +- .../ValueConnectedComponentsTest.java | 4 +- .../model/impl/operators/split/SplitTest.java | 6 +- 90 files changed, 969 insertions(+), 581 deletions(-) rename gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/{EPGMEdgeWithGellyEdgeIdJoin.java => EdgeWithGellyEdgeIdJoin.java} (66%) rename gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/{GellyVertexWithEPGMVertexJoin.java => GellyVertexWithVertexJoin.java} (57%) diff --git a/gradoop-checkstyle/src/main/resources/gradoop/checkstyle-suppressions.xml b/gradoop-checkstyle/src/main/resources/gradoop/checkstyle-suppressions.xml index 3b76c9ec1a39..73ea6b53e5e8 100644 --- a/gradoop-checkstyle/src/main/resources/gradoop/checkstyle-suppressions.xml +++ b/gradoop-checkstyle/src/main/resources/gradoop/checkstyle-suppressions.xml @@ -10,10 +10,10 @@ lines="0-9999"/> + lines="50-55"/> + lines="80-85"/> diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java index bd71e7b029c0..84f5a614915a 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/communities/GellyCommunitiesExample.java @@ -70,7 +70,7 @@ public static void main(String[] args) throws Exception { }); // apply label propagation to compute communities - graph = graph.callForGraph(new GellyLabelPropagation(5, communityKey)); + graph = graph.callForGraph(new GellyLabelPropagation<>(5, communityKey)); // print results graph.print(); diff --git a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java index e6db7f955256..f31b913e97ee 100644 --- a/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java +++ b/gradoop-examples/gradoop-examples-operators/src/main/java/org/gradoop/examples/quickstart/QuickstartExample.java @@ -25,7 +25,7 @@ /** * A self contained quickstart example on how to use a composition of gradoop operators. - * */ + */ public class QuickstartExample { /** @@ -86,7 +86,8 @@ public static void main(String[] args) throws Exception { workGraph.print(); // execute WCC - GraphCollection workspaces = new WeaklyConnectedComponentsAsCollection(5).execute(workGraph); + GraphCollection workspaces = workGraph + .callForCollection(new WeaklyConnectedComponentsAsCollection<>(5)); System.out.println("CONNECTED_COMPONENTS_GRAPH"); workspaces.print(); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java index 0c053729d241..1140b10cf8b7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/BaseGellyAlgorithm.java @@ -16,21 +16,36 @@ package org.gradoop.flink.algorithms.gelly; import org.apache.flink.graph.Graph; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; -import org.gradoop.flink.model.api.operators.UnaryGraphToValueOperator; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToValueOperator; /** * Base class for Algorithms executed in Flink Gelly. * - * @param Key type of output gelly graph. - * @param Value type of output gelly vertex. - * @param Value type of output gelly edge. - * @param Output type. + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. + * @param Key type of output gelly graph. + * @param Value type of output gelly vertex. + * @param Value type of output gelly edge. + * @param Output type. */ -public abstract class BaseGellyAlgorithm implements UnaryGraphToValueOperator { +public abstract class BaseGellyAlgorithm< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection, + K, VV, EV, O> implements UnaryBaseGraphToValueOperator { @Override - public O execute(LogicalGraph graph) { + public O execute(LG graph) { try { return executeInGelly(transformToGelly(graph)); } catch (Exception e) { @@ -44,14 +59,14 @@ public O execute(LogicalGraph graph) { * @param graph Gradoop Graph. * @return Gelly Graph. */ - public abstract Graph transformToGelly(LogicalGraph graph); + public abstract Graph transformToGelly(LG graph); /** * Perform some operation in Gelly and transform the Gelly graph back to a dedicated value. * - * @param graph The Gelly graph. + * @param gellyGraph The Gelly graph. * @return output format. * @throws Exception on failure */ - public abstract O executeInGelly(Graph graph) throws Exception; + public abstract O executeInGelly(Graph gellyGraph) throws Exception; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java index a5dc396b0ec8..912818bfa0d3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/GradoopGellyAlgorithm.java @@ -16,39 +16,51 @@ package org.gradoop.flink.algorithms.gelly; import org.apache.flink.api.java.DataSet; -import org.apache.flink.graph.Edge; import org.apache.flink.graph.Graph; -import org.apache.flink.graph.Vertex; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdge; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertex; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; -import org.gradoop.flink.model.api.operators.UnaryGraphToGraphOperator; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphOperator; /** - * Base class for Algorithms executed in Flink Gelly that returns a {@link LogicalGraph}. + * Base class for Algorithms executed in Flink Gelly that returns a {@link BaseGraph}. * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. * @param Value type for gelly vertices. * @param Value type for gelly edges. */ -public abstract class GradoopGellyAlgorithm - extends BaseGellyAlgorithm - implements UnaryGraphToGraphOperator { +public abstract class GradoopGellyAlgorithm< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection, + VV, EV> extends BaseGellyAlgorithm + implements UnaryBaseGraphToBaseGraphOperator { /** - * The graph used in {@link GradoopGellyAlgorithm#execute(LogicalGraph)}. + * The graph used in {@link #execute}. */ - protected LogicalGraph currentGraph; + protected BaseGraph currentGraph; /** * Function mapping edge to gelly edge. */ - private final EdgeToGellyEdge toGellyEdge; + private final EdgeToGellyEdge toGellyEdge; /** * Function mapping vertex to gelly vertex. */ - private final VertexToGellyVertex toGellyVertex; + private final VertexToGellyVertex toGellyVertex; /** * Base constructor, only setting the mapper functions. @@ -57,13 +69,13 @@ public abstract class GradoopGellyAlgorithm * @param edgeValue function mapping edges from Gradoop to Gelly. */ protected GradoopGellyAlgorithm( - VertexToGellyVertex vertexValue, EdgeToGellyEdge edgeValue) { + VertexToGellyVertex vertexValue, EdgeToGellyEdge edgeValue) { this.toGellyVertex = vertexValue; this.toGellyEdge = edgeValue; } @Override - public LogicalGraph execute(LogicalGraph graph) { + public LG execute(LG graph) { this.currentGraph = graph; try { return executeInGelly(transformToGelly(graph)); @@ -78,20 +90,19 @@ public LogicalGraph execute(LogicalGraph graph) { * @param graph Gradoop Graph. * @return Gelly Graph. */ - public Graph transformToGelly(LogicalGraph graph) { - DataSet> gellyVertices = graph.getVertices().map(toGellyVertex); - DataSet> gellyEdges = graph.getEdges().map(toGellyEdge); - return Graph.fromDataSet(gellyVertices, gellyEdges, - graph.getConfig().getExecutionEnvironment()); + public Graph transformToGelly(LG graph) { + DataSet> gellyVertices = graph.getVertices() + .map(toGellyVertex); + DataSet> gellyEdges = graph.getEdges().map(toGellyEdge); + return Graph.fromDataSet(gellyVertices, gellyEdges, graph.getConfig().getExecutionEnvironment()); } /** - * Perform some operation in Gelly and transform the Gelly graph back to a Gradoop - * {@link LogicalGraph}. + * Perform some operation in Gelly and transform the Gelly graph back to a Gradoop {@link BaseGraph}. * - * @param graph The Gelly graph. + * @param gellyGraph The Gelly graph. * @return The Gradoop graph. * @throws Exception on failure */ - public abstract LogicalGraph executeInGelly(Graph graph) throws Exception; + public abstract LG executeInGelly(Graph gellyGraph) throws Exception; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java index 0ade49ce3310..09c77e610377 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/ClusteringCoefficientBase.java @@ -17,25 +17,39 @@ import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithNullValue; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; /** - * Base class for Gradoop EPGM model wrapper for Flink Gellys implementation of the clustering - * coefficient algorithm. Implementations compute the local and global clustering coefficient of - * a graph, where: + * Base class for Gradoop EPGM model wrapper for Flink Gellys implementation of the clustering coefficient + * algorithm. Implementations compute the local and global clustering coefficient of a graph, where: *
  *   local - connectedness of a single vertex regarding the connections of its neighborhood, with
  *           value between 0.0 (no edges between neighbors) and 1.0 (neighbors fully connected)
  *   global - connectedness of the graph as ratio from closed triplets (triangles) to all triplets
  *            with value between 0.0 (no closed triplets) and 1.0 (all triplets closed)
  * 
+ * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public abstract class ClusteringCoefficientBase extends - GradoopGellyAlgorithm { +public abstract class ClusteringCoefficientBase< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * Property key to access the local clustering coefficient value stored in the vertices @@ -52,24 +66,22 @@ public abstract class ClusteringCoefficientBase extends * Calls constructor of super class {@link GradoopGellyAlgorithm} */ public ClusteringCoefficientBase() { - super(new VertexToGellyVertexWithNullValue(), - new EdgeToGellyEdgeWithNullValue()); + super(new VertexToGellyVertexWithNullValue<>(), + new EdgeToGellyEdgeWithNullValue<>()); } @Override - public LogicalGraph executeInGelly(Graph graph) - throws Exception { - return executeInternal(graph); + public LG executeInGelly(Graph gellyGraph) throws Exception { + return executeInternal(gellyGraph); } /** * Executes the computation of the clustering coefficient. * * @param gellyGraph Gelly graph with initialized vertices - * @return {@link LogicalGraph} with local values written to the vertices or global value + * @return {@link BaseGraph} with local values written to the vertices or global value * written to the graph head * @throws Exception Thrown if the gelly algorithm fails */ - protected abstract LogicalGraph executeInternal(Graph gellyGraph) - throws Exception; + protected abstract LG executeInternal(Graph gellyGraph) throws Exception; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java index 4ce56baab2c2..8929f7097ae2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirected.java @@ -19,19 +19,33 @@ import org.apache.flink.graph.Graph; import org.apache.flink.graph.library.clustering.directed.GlobalClusteringCoefficient; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; import org.gradoop.common.model.impl.properties.PropertyValue; import org.gradoop.flink.algorithms.gelly.functions.WritePropertyToGraphHeadMap; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; /** * Gradoop EPGM model wrapper for Flink Gellys implementation of the global clustering coefficient * algorithm for directed graphs * {@link org.apache.flink.graph.library.clustering.directed.GlobalClusteringCoefficient}. - * Returns the initial {@link LogicalGraph} with global value written to the graph head. + * Returns the initial {@link BaseGraph} with global value written to the graph head. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class GellyGlobalClusteringCoefficientDirected extends ClusteringCoefficientBase { +public class GellyGlobalClusteringCoefficientDirected< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> extends ClusteringCoefficientBase { /** * Creates an instance of the GellyGlobalClusteringCoefficientDirected wrapper class. @@ -41,14 +55,8 @@ public GellyGlobalClusteringCoefficientDirected() { super(); } - /** - * {@inheritDoc} - * - * Calls Flink Gelly algorithms to compute the global clustering coefficient for a directed graph. - */ @Override - protected LogicalGraph executeInternal(Graph gellyGraph) - throws Exception { + protected LG executeInternal(Graph gellyGraph) throws Exception { GlobalClusteringCoefficient global = new org.apache.flink.graph.library.clustering.directed .GlobalClusteringCoefficient().run(gellyGraph); @@ -57,8 +65,8 @@ protected LogicalGraph executeInternal(Graph ge double globalValue = global.getResult().getGlobalClusteringCoefficientScore(); - DataSet resultHead = currentGraph.getGraphHead() - .map(new WritePropertyToGraphHeadMap(ClusteringCoefficientBase.PROPERTY_KEY_GLOBAL, + DataSet resultHead = currentGraph.getGraphHead() + .map(new WritePropertyToGraphHeadMap<>(ClusteringCoefficientBase.PROPERTY_KEY_GLOBAL, PropertyValue.create(globalValue))); return currentGraph.getFactory().fromDataSets( diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java index ad276a76d78b..323cc7f40838 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirected.java @@ -19,19 +19,33 @@ import org.apache.flink.graph.Graph; import org.apache.flink.graph.library.clustering.undirected.GlobalClusteringCoefficient; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; import org.gradoop.common.model.impl.properties.PropertyValue; import org.gradoop.flink.algorithms.gelly.functions.WritePropertyToGraphHeadMap; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; /** * Gradoop EPGM model wrapper for Flink Gellys implementation of the global clustering coefficient * algorithm for undirected graphs * {@link org.apache.flink.graph.library.clustering.undirected.GlobalClusteringCoefficient}. - * Returns the initial {@link LogicalGraph} with global value written to the graph head. + * Returns the initial {@link BaseGraph} with global value written to the graph head. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class GellyGlobalClusteringCoefficientUndirected extends ClusteringCoefficientBase { +public class GellyGlobalClusteringCoefficientUndirected< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> extends ClusteringCoefficientBase { /** * Creates an instance of the GellyGlobalClusteringCoefficientUndirected wrapper class. @@ -41,15 +55,8 @@ public GellyGlobalClusteringCoefficientUndirected() { super(); } - /** - * {@inheritDoc} - * - * Calls Flink Gelly algorithms to compute the global clustering coefficient for an undirected - * graph. - */ @Override - protected LogicalGraph executeInternal(Graph gellyGraph) - throws Exception { + protected LG executeInternal(Graph gellyGraph) throws Exception { GlobalClusteringCoefficient global = new org.apache.flink.graph.library.clustering.undirected .GlobalClusteringCoefficient().run(gellyGraph); @@ -58,8 +65,8 @@ protected LogicalGraph executeInternal(Graph ge double globalValue = global.getResult().getGlobalClusteringCoefficientScore(); - DataSet resultHead = currentGraph.getGraphHead() - .map(new WritePropertyToGraphHeadMap(ClusteringCoefficientBase.PROPERTY_KEY_GLOBAL, + DataSet resultHead = currentGraph.getGraphHead() + .map(new WritePropertyToGraphHeadMap<>(ClusteringCoefficientBase.PROPERTY_KEY_GLOBAL, PropertyValue.create(globalValue))); return currentGraph.getFactory().fromDataSets( diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java index da904cc067bd..bde1041e221c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirected.java @@ -18,20 +18,34 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.clusteringcoefficient.functions.LocalCCResultTupleToVertexJoin; import org.gradoop.flink.algorithms.gelly.clusteringcoefficient.functions.LocalDirectedCCResultToTupleMap; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; /** * Gradoop EPGM model wrapper for Flink Gellys implementation of the local clustering coefficient * algorithm for directed graphs * {@link org.apache.flink.graph.library.clustering.directed.LocalClusteringCoefficient}. - * Returns the initial {@link LogicalGraph} with local values written to the vertices. + * Returns the initial {@link BaseGraph} with local values written to the vertices. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class GellyLocalClusteringCoefficientDirected extends ClusteringCoefficientBase { +public class GellyLocalClusteringCoefficientDirected< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> extends ClusteringCoefficientBase { /** * Creates an instance of the GellyLocalClusteringCoefficientDirected wrapper class. @@ -41,21 +55,15 @@ public GellyLocalClusteringCoefficientDirected() { super(); } - /** - * {@inheritDoc} - * - * Calls Flink Gelly algorithms to compute the local clustering coefficients for a directed graph. - */ @Override - protected LogicalGraph executeInternal(Graph gellyGraph) - throws Exception { + protected LG executeInternal(Graph gellyGraph) throws Exception { - DataSet resultVertices = new org.apache.flink.graph.library.clustering.directed + DataSet resultVertices = new org.apache.flink.graph.library.clustering.directed .LocalClusteringCoefficient().run(gellyGraph) .map(new LocalDirectedCCResultToTupleMap()) .join(currentGraph.getVertices()) .where(0).equalTo(new Id<>()) - .with(new LocalCCResultTupleToVertexJoin()); + .with(new LocalCCResultTupleToVertexJoin<>()); return currentGraph.getFactory().fromDataSets( currentGraph.getGraphHead(), resultVertices, currentGraph.getEdges()); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java index fd915713cc0f..60be662cba23 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirected.java @@ -18,20 +18,34 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.clusteringcoefficient.functions.LocalCCResultTupleToVertexJoin; import org.gradoop.flink.algorithms.gelly.clusteringcoefficient.functions.LocalUndirectedCCResultToTupleMap; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; /** * Gradoop EPGM model wrapper for Flink Gellys implementation of the local clustering coefficient * algorithm for undirected graphs * {@link org.apache.flink.graph.library.clustering.undirected.LocalClusteringCoefficient}. - * Returns the initial {@link LogicalGraph} with local values written to the vertices. + * Returns the initial {@link BaseGraph} with local values written to the vertices. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class GellyLocalClusteringCoefficientUndirected extends ClusteringCoefficientBase { +public class GellyLocalClusteringCoefficientUndirected< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> extends ClusteringCoefficientBase { /** * Creates an instance of the GellyLocalClusteringCoefficientUndirected wrapper class. @@ -41,22 +55,15 @@ public GellyLocalClusteringCoefficientUndirected() { super(); } - /** - * {@inheritDoc} - * - * Calls Flink Gelly algorithms to compute the local clustering coefficients for an undirected - * graph. - */ @Override - protected LogicalGraph executeInternal(Graph gellyGraph) - throws Exception { + protected LG executeInternal(Graph gellyGraph) throws Exception { - DataSet resultVertices = new org.apache.flink.graph.library.clustering.undirected + DataSet resultVertices = new org.apache.flink.graph.library.clustering.undirected .LocalClusteringCoefficient().run(gellyGraph) .map(new LocalUndirectedCCResultToTupleMap()) .join(currentGraph.getVertices()) .where(0).equalTo(new Id<>()) - .with(new LocalCCResultTupleToVertexJoin()); + .with(new LocalCCResultTupleToVertexJoin<>()); return currentGraph.getFactory().fromDataSets( currentGraph.getGraphHead(), resultVertices, currentGraph.getEdges()); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java index 099f9e5c3239..3c14b11adfe3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/functions/LocalCCResultTupleToVertexJoin.java @@ -17,19 +17,21 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.clusteringcoefficient.ClusteringCoefficientBase; /** * Writes the local clustering coefficient from {@code Tuple2} to the - * corresponding epgm vertex as property. + * corresponding Gradoop vertex as property. + * + * @param Gradoop vertex type. */ -public class LocalCCResultTupleToVertexJoin implements - JoinFunction, EPGMVertex, EPGMVertex> { +public class LocalCCResultTupleToVertexJoin + implements JoinFunction, V, V> { @Override - public EPGMVertex join(Tuple2 resultTuple, EPGMVertex vertex) throws Exception { + public V join(Tuple2 resultTuple, V vertex) throws Exception { vertex.setProperty(ClusteringCoefficientBase.PROPERTY_KEY_LOCAL, resultTuple.f1); return vertex; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java index 3dedbed73b15..1fc6b8692684 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/AnnotateWeaklyConnectedComponents.java @@ -18,15 +18,17 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.connectedcomponents.functions.GellyVertexValueToVertexPropertyJoin; import org.gradoop.flink.algorithms.gelly.connectedcomponents.functions.VertexPropertyToEdgePropertyJoin; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithGradoopId; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; import org.gradoop.flink.model.impl.functions.epgm.SourceId; import org.gradoop.flink.model.impl.functions.epgm.TargetId; @@ -34,11 +36,23 @@ /** * A gradoop operator wrapping Flinks ScatterGatherIteration-Algorithm for ConnectedComponents * {@link org.apache.flink.graph.library.ConnectedComponents}. - * The result will be the same {@link LogicalGraph} with a component id assigned to each vertex - * as a property. If {@link #annotateEdges} is set to {@code true}, the component id is assigned to - * each edge as a property, too. + * The result will be the same {@link BaseGraph} with a component id assigned to each vertex as a property. + * If {@link #annotateEdges} is set to {@code true}, the component id is assigned to each edge as a property, + * too. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class AnnotateWeaklyConnectedComponents extends GradoopGellyAlgorithm { +public class AnnotateWeaklyConnectedComponents< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * Property key to store the component id in. @@ -62,7 +76,7 @@ public class AnnotateWeaklyConnectedComponents extends GradoopGellyAlgorithm(), new EdgeToGellyEdgeWithNullValue<>()); this.propertyKey = propertyKey; this.maxIterations = maxIterations; this.annotateEdges = false; @@ -76,32 +90,31 @@ public AnnotateWeaklyConnectedComponents(String propertyKey, int maxIterations) * @param maxIterations The maximum number of iterations. * @param annotateEdges Whether to write the component property to the edges */ - public AnnotateWeaklyConnectedComponents(String propertyKey, int maxIterations, - boolean annotateEdges) { - super(new VertexToGellyVertexWithGradoopId(), new EdgeToGellyEdgeWithNullValue()); + public AnnotateWeaklyConnectedComponents(String propertyKey, int maxIterations, boolean annotateEdges) { + super(new VertexToGellyVertexWithGradoopId<>(), new EdgeToGellyEdgeWithNullValue<>()); this.propertyKey = propertyKey; this.maxIterations = maxIterations; this.annotateEdges = annotateEdges; } @Override - public LogicalGraph executeInGelly(Graph graph) - throws Exception { - DataSet annotatedVertices = new org.apache.flink.graph.library.ConnectedComponents< - GradoopId, GradoopId, NullValue>(maxIterations).run(graph) - .join(currentGraph.getVertices()) - .where(0).equalTo(new Id<>()) - .with(new GellyVertexValueToVertexPropertyJoin(propertyKey)); + public LG executeInGelly(Graph gellyGraph) throws Exception { + DataSet annotatedVertices = + new org.apache.flink.graph.library.ConnectedComponents(maxIterations) + .run(gellyGraph) + .join(currentGraph.getVertices()) + .where(0).equalTo(new Id<>()) + .with(new GellyVertexValueToVertexPropertyJoin<>(propertyKey)); - DataSet edges = currentGraph.getEdges(); + DataSet edges = currentGraph.getEdges(); if (annotateEdges) { edges = edges.join(annotatedVertices) .where(new SourceId<>()).equalTo(new Id<>()) - .with(new VertexPropertyToEdgePropertyJoin(propertyKey)) + .with(new VertexPropertyToEdgePropertyJoin<>(propertyKey)) .join(annotatedVertices) .where(new TargetId<>()).equalTo(new Id<>()) - .with(new VertexPropertyToEdgePropertyJoin(propertyKey)); + .with(new VertexPropertyToEdgePropertyJoin<>(propertyKey)); } return currentGraph.getFactory().fromDataSets( diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java index 4778b9949498..a31a64e3c740 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/ValueWeaklyConnectedComponents.java @@ -18,19 +18,21 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.api.java.utils.DataSetUtils; -import org.apache.flink.graph.Edge; import org.apache.flink.graph.Graph; -import org.apache.flink.graph.Vertex; import org.apache.flink.graph.library.ConnectedComponents; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.flink.algorithms.gelly.BaseGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.connectedcomponents.functions.CreateLongSourceIds; import org.gradoop.flink.algorithms.gelly.connectedcomponents.functions.CreateLongTargetIds; +import org.gradoop.flink.algorithms.gelly.connectedcomponents.functions.MapVertexIdComponentId; import org.gradoop.flink.algorithms.gelly.functions.LongTupleToGellyEdgeWithLongValue; import org.gradoop.flink.algorithms.gelly.functions.LongTupleToGellyVertexWithLongValue; -import org.gradoop.flink.algorithms.gelly.connectedcomponents.functions.MapVertexIdComponentId; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; import org.gradoop.flink.model.impl.functions.epgm.SourceId; @@ -39,9 +41,20 @@ * {@link org.apache.flink.graph.library.ConnectedComponents}. * * Returns a mapping of {@code VertexId -> ComponentId} + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class ValueWeaklyConnectedComponents - extends BaseGellyAlgorithm>> { +public class ValueWeaklyConnectedComponents< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends BaseGellyAlgorithm>> { /** * Max number of gelly iteration. @@ -58,25 +71,25 @@ public ValueWeaklyConnectedComponents(int maxIteration) { } /** - * Transforms a LogicalGraph to a Gelly Graph. + * Transforms a {@link BaseGraph} to a Gelly Graph. * * @param graph Gradoop Graph. * @return Gelly Graph. */ @Override - public Graph transformToGelly(LogicalGraph graph) { + public Graph transformToGelly(LG graph) { DataSet> uniqueVertexID = DataSetUtils.zipWithUniqueId(graph.getVertices().map(new Id<>())); - DataSet> vertices = uniqueVertexID - .map(new LongTupleToGellyVertexWithLongValue()); + DataSet> vertices = uniqueVertexID + .map(new LongTupleToGellyVertexWithLongValue()); - DataSet> edges = + DataSet> edges = uniqueVertexID .join(graph.getEdges()) .where(1).equalTo(new SourceId<>()) - .with(new CreateLongSourceIds()) + .with(new CreateLongSourceIds<>()) .join(uniqueVertexID) .where(3).equalTo(1) .with(new CreateLongTargetIds()) @@ -88,15 +101,15 @@ public Graph transformToGelly(LogicalGraph graph) { /** * Executes gelly algorithm and post process the result. * - * @param graph The Gelly graph. + * @param gellyGraph The Gelly graph. * @return List of VertexId and ComponentId. * @throws Exception in case of failure. */ @Override - public DataSet> executeInGelly(Graph graph) + public DataSet> executeInGelly(Graph gellyGraph) throws Exception { return new ConnectedComponents(maxIteration) - .run(graph).map(new MapVertexIdComponentId()); + .run(gellyGraph).map(new MapVertexIdComponentId()); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java index cd42b39eea67..22c0ffb99789 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollection.java @@ -15,17 +15,32 @@ */ package org.gradoop.flink.algorithms.gelly.connectedcomponents; -import org.gradoop.flink.model.api.operators.UnaryGraphToCollectionOperator; -import org.gradoop.flink.model.impl.epgm.GraphCollection; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphCollectionOperator; /** * Computes the weakly connected components of a graph. Uses the gradoop wrapper * {@link AnnotateWeaklyConnectedComponents} of Flinks ConnectedComponents. - * Splits the resulting {@link LogicalGraph} into a {@link GraphCollection} of its weakly connected + * Splits the resulting {@link BaseGraph} into a {@link BaseGraphCollection} of its weakly connected * components. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class WeaklyConnectedComponentsAsCollection implements UnaryGraphToCollectionOperator { +public class WeaklyConnectedComponentsAsCollection< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + implements UnaryBaseGraphToBaseGraphCollectionOperator { /** * Default property key to temporarily store the component id. @@ -65,10 +80,10 @@ public WeaklyConnectedComponentsAsCollection(String propertyKey, int maxIteratio } @Override - public GraphCollection execute(LogicalGraph graph) { + public GC execute(LG graph) { - LogicalGraph graphWithWccIds = graph.callForGraph( - new AnnotateWeaklyConnectedComponents(propertyKey, maxIterations)); + LG graphWithWccIds = graph.callForGraph( + new AnnotateWeaklyConnectedComponents<>(propertyKey, maxIterations)); return graphWithWccIds.splitBy(propertyKey); } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java index 9c6a3c216b15..28d58d64034b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/CreateLongSourceIds.java @@ -19,17 +19,19 @@ import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.api.java.tuple.Tuple4; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; /** * Join function to receive structural information of the graph. * Builds edge triples with long id's. + * + * @param Gradoop Edge type */ @FunctionAnnotation.ForwardedFieldsFirst({"f0->f0", "f1->f1", "f0->f2"}) @FunctionAnnotation.ForwardedFieldsSecond("targetId->f3") -public class CreateLongSourceIds - implements JoinFunction, EPGMEdge, Tuple4> { +public class CreateLongSourceIds + implements JoinFunction, E, Tuple4> { /** * Reuse object. @@ -51,7 +53,7 @@ public CreateLongSourceIds() { * @return tuple {@code ,vertexID,sourceID,targetID>} */ @Override - public Tuple4 join(Tuple2 tuple, EPGMEdge edge) { + public Tuple4 join(Tuple2 tuple, E edge) { reuse.f0 = tuple.f0; reuse.f1 = tuple.f1; reuse.f2 = tuple.f0; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java index 1a7510c30a5a..2010b4debd8b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/GellyVertexValueToVertexPropertyJoin.java @@ -16,15 +16,17 @@ package org.gradoop.flink.algorithms.gelly.connectedcomponents.functions; import org.apache.flink.api.common.functions.JoinFunction; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; /** * Stores the gelly vertex value (a {@link GradoopId}) as property with the given property key in * the gradoop vertex. + * + * @param Gradoop Vertex type */ -public class GellyVertexValueToVertexPropertyJoin - implements JoinFunction, EPGMVertex, EPGMVertex> { +public class GellyVertexValueToVertexPropertyJoin + implements JoinFunction, V, V> { /** * Property key to store the gelly vertex value. @@ -41,9 +43,8 @@ public GellyVertexValueToVertexPropertyJoin(String propertyKey) { } @Override - public EPGMVertex join(org.apache.flink.graph.Vertex gellyVertex, - EPGMVertex gradoopVertex) { - gradoopVertex.setProperty(propertyKey, gellyVertex.getValue()); - return gradoopVertex; + public V join(org.apache.flink.graph.Vertex gellyVertex, V vertex) { + vertex.setProperty(propertyKey, gellyVertex.getValue()); + return vertex; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java index 3ff37d9d8af8..37de1f592b0c 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/functions/VertexPropertyToEdgePropertyJoin.java @@ -16,16 +16,20 @@ package org.gradoop.flink.algorithms.gelly.connectedcomponents.functions; import org.apache.flink.api.common.functions.JoinFunction; -import org.gradoop.common.model.impl.pojo.EPGMEdge; -import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.properties.PropertyValue; /** * Reads a vertex property and stores it to an edge property, using the given property key. * If the edge already has this property, compare the edge value to the vertex value and store the * smaller property value. + * + * @param Gradoop vertex type. + * @param Gradoop edge type. */ -public class VertexPropertyToEdgePropertyJoin implements JoinFunction { +public class VertexPropertyToEdgePropertyJoin + implements JoinFunction { /** * Property key to store the property. @@ -42,7 +46,7 @@ public VertexPropertyToEdgePropertyJoin(String propertyKey) { } @Override - public EPGMEdge join(EPGMEdge edge, EPGMVertex vertex) throws Exception { + public E join(E edge, V vertex) throws Exception { PropertyValue newEdgeValue = vertex.getPropertyValue(propertyKey); if (edge.hasProperty(propertyKey)) { if (edge.getPropertyValue(propertyKey).compareTo(newEdgeValue) < 0) { diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java index 29214248cc60..a7e3f9d341ca 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdge.java @@ -15,13 +15,14 @@ */ package org.gradoop.flink.algorithms.gelly.functions; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; /** - * Convert a Gradoop {@link EPGMEdge} to a Gelly EPGMEdge. + * Convert a Gradoop {@link Edge} to a Gelly Edge. * + * @param Gradoop edge type. * @param Value type of the output gelly edge. */ -public interface EdgeToGellyEdge extends ElementToGellyEdge { +public interface EdgeToGellyEdge extends ElementToGellyEdge { } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java index c4f04684a0bd..4aa2f9318974 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithDouble.java @@ -15,16 +15,17 @@ */ package org.gradoop.flink.algorithms.gelly.functions; -import org.apache.flink.graph.Edge; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; import org.gradoop.common.model.impl.properties.PropertyValue; /** - * Maps EPGM edge to a Gelly edge consisting of EPGM source and target + * Maps Gradoop edge to a Gelly edge consisting of Gradoop source and target * identifier and {@link Double} as edge value. + * + * @param Gradoop edge type. */ -public class EdgeToGellyEdgeWithDouble implements EdgeToGellyEdge { +public class EdgeToGellyEdgeWithDouble implements EdgeToGellyEdge { /** * Property key to get the value for. @@ -47,7 +48,7 @@ public EdgeToGellyEdgeWithDouble(String propertyKey) { } @Override - public Edge map(EPGMEdge epgmEdge) + public org.apache.flink.graph.Edge map(E epgmEdge) throws Exception { reuseEdge.setSource(epgmEdge.getSourceId()); reuseEdge.setTarget(epgmEdge.getTargetId()); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java index 4927bb2b6f43..a33577b70426 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithNullValue.java @@ -17,15 +17,17 @@ import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; /** - * Maps EPGM edge to a Gelly edge consisting of EPGM source and target + * Maps Gradoop edge to a Gelly edge consisting of Gradoop source and target * identifier and {@link NullValue} as edge value. + * + * @param Gradoop edge type. */ @FunctionAnnotation.ForwardedFields("sourceId->f0;targetId->f1") -public class EdgeToGellyEdgeWithNullValue implements EdgeToGellyEdge { +public class EdgeToGellyEdgeWithNullValue implements EdgeToGellyEdge { /** * Reduce object instantiations */ @@ -40,10 +42,9 @@ public EdgeToGellyEdgeWithNullValue() { } @Override - public org.apache.flink.graph.Edge map(EPGMEdge epgmEdge) - throws Exception { - reuseEdge.setSource(epgmEdge.getSourceId()); - reuseEdge.setTarget(epgmEdge.getTargetId()); + public org.apache.flink.graph.Edge map(E edge) throws Exception { + reuseEdge.setSource(edge.getSourceId()); + reuseEdge.setTarget(edge.getTargetId()); return reuseEdge; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java index 847b4d049e88..bba297b56b33 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/EdgeToGellyEdgeWithPropertyValue.java @@ -16,17 +16,19 @@ package org.gradoop.flink.algorithms.gelly.functions; import org.apache.flink.api.java.functions.FunctionAnnotation; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; import org.gradoop.common.model.impl.properties.PropertyValue; /** - * Maps EPGM edge to a Gelly edge consisting of EPGM source and target + * Maps Gradoop edge to a Gelly edge consisting of Gradoop source and target * identifier and {@link PropertyValue} as edge value. + * + * @param Gradoop edge type. */ @FunctionAnnotation.ForwardedFields("sourceId->f0;targetId->f1") @FunctionAnnotation.ReadFields("properties") -public class EdgeToGellyEdgeWithPropertyValue implements EdgeToGellyEdge { +public class EdgeToGellyEdgeWithPropertyValue implements EdgeToGellyEdge { /** * Property key to get the value for. */ @@ -35,8 +37,7 @@ public class EdgeToGellyEdgeWithPropertyValue implements EdgeToGellyEdge - reuseEdge; + private final org.apache.flink.graph.Edge reuseEdge; /** * Constructor. @@ -49,10 +50,10 @@ public EdgeToGellyEdgeWithPropertyValue(String propertyKey) { } @Override - public org.apache.flink.graph.Edge map(EPGMEdge epgmEdge) { - reuseEdge.setSource(epgmEdge.getSourceId()); - reuseEdge.setTarget(epgmEdge.getTargetId()); - reuseEdge.setValue(epgmEdge.getPropertyValue(propertyKey)); + public org.apache.flink.graph.Edge map(E edge) { + reuseEdge.setSource(edge.getSourceId()); + reuseEdge.setTarget(edge.getTargetId()); + reuseEdge.setValue(edge.getPropertyValue(propertyKey)); return reuseEdge; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java index 32bcc8810f9b..21abc7713730 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyEdge.java @@ -19,7 +19,7 @@ import org.apache.flink.graph.Edge; /** - * Convert class I to a Gelly EPGMEdge with K key and EV value. + * Convert input to a Gelly Edge with K key and EV value. * * @param Input type. * @param Key type of the output gelly edge. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java index f83680909627..3a26feaf53ad 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/ElementToGellyVertex.java @@ -19,7 +19,7 @@ import org.apache.flink.graph.Vertex; /** - * Convert class I to a Gelly EPGMVertex with K key and VV value. + * Convert input to a Gelly Vertex with K key and VV value. * * @param Input type. * @param Key type of the output gelly vertex. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java index 48c581100e34..3f9c1f219244 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertex.java @@ -15,15 +15,15 @@ */ package org.gradoop.flink.algorithms.gelly.functions; -import org.apache.flink.graph.Vertex; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; /** - * Convert a Gradoop {@link Vertex} to a Gelly EPGMVertex. + * Convert a Gradoop {@link Vertex} to a Gelly Vertex. * - * @param Value type of the output gelly vertex. + * @param Gradoop input Vertex type + * @param Value type of the output Gelly vertex. */ -public interface VertexToGellyVertex - extends ElementToGellyVertex { +public interface VertexToGellyVertex + extends ElementToGellyVertex { } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java index 0d59aa8216f8..83bff622f174 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithGradoopId.java @@ -16,14 +16,16 @@ package org.gradoop.flink.algorithms.gelly.functions; import org.apache.flink.api.java.functions.FunctionAnnotation; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; /** - * Maps EPGM vertex to a Gelly vertex with the {@link GradoopId} as its id and value. + * Maps Gradoop vertex to a Gelly vertex with the {@link GradoopId} as its id and value. + * + * @param Gradoop Vertex type */ @FunctionAnnotation.ForwardedFields("id->f0;id->f1") -public class VertexToGellyVertexWithGradoopId implements VertexToGellyVertex { +public class VertexToGellyVertexWithGradoopId implements VertexToGellyVertex { /** * Reduce object instantiations */ @@ -37,8 +39,8 @@ public VertexToGellyVertexWithGradoopId() { } @Override - public org.apache.flink.graph.Vertex map(EPGMVertex epgmVertex) { - GradoopId id = epgmVertex.getId(); + public org.apache.flink.graph.Vertex map(V vertex) { + GradoopId id = vertex.getId(); reuseVertex.setId(id); reuseVertex.setValue(id); return reuseVertex; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java index b6de078d6954..9cc262232e07 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithNullValue.java @@ -17,14 +17,16 @@ import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; /** - * Maps EPGM vertex to a Gelly vertex with the {@link GradoopId} as its id. + * Maps Gradoop Vertex to a Gelly vertex with the {@link GradoopId} as its id. + * + * @param Gradoop Vertex type */ @FunctionAnnotation.ForwardedFields("id->f0") -public class VertexToGellyVertexWithNullValue implements VertexToGellyVertex { +public class VertexToGellyVertexWithNullValue implements VertexToGellyVertex { /** * Reduce object instantiations */ @@ -39,8 +41,8 @@ public VertexToGellyVertexWithNullValue() { } @Override - public org.apache.flink.graph.Vertex map(EPGMVertex epgmVertex) { - reuseVertex.setId(epgmVertex.getId()); + public org.apache.flink.graph.Vertex map(V vertex) { + reuseVertex.setId(vertex.getId()); return reuseVertex; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java index bbad6eea13d8..7880bef90edf 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/VertexToGellyVertexWithPropertyValue.java @@ -16,16 +16,19 @@ package org.gradoop.flink.algorithms.gelly.functions; import org.apache.flink.api.java.functions.FunctionAnnotation; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.properties.PropertyValue; /** - * Maps EPGM vertex to a Gelly vertex consisting of the EPGM identifier and a {@link PropertyValue}. + * Maps Gradoop vertex to a Gelly vertex consisting of the {@link GradoopId} and a {@link PropertyValue}. + * + * @param Gradoop Vertex type */ @FunctionAnnotation.ForwardedFields("id->f0") @FunctionAnnotation.ReadFields("properties") -public class VertexToGellyVertexWithPropertyValue implements VertexToGellyVertex { +public class VertexToGellyVertexWithPropertyValue + implements VertexToGellyVertex { /** * Property key to access the label value which will be propagated */ @@ -47,9 +50,9 @@ public VertexToGellyVertexWithPropertyValue(String propertyKey) { } @Override - public org.apache.flink.graph.Vertex map(EPGMVertex epgmVertex) throws Exception { - reuseVertex.setId(epgmVertex.getId()); - reuseVertex.setValue(epgmVertex.getPropertyValue(propertyKey)); + public org.apache.flink.graph.Vertex map(V vertex) throws Exception { + reuseVertex.setId(vertex.getId()); + reuseVertex.setValue(vertex.getPropertyValue(propertyKey)); return reuseVertex; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java index 54698cb3d849..0596408defad 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/functions/WritePropertyToGraphHeadMap.java @@ -16,29 +16,31 @@ package org.gradoop.flink.algorithms.gelly.functions; import org.apache.flink.api.common.functions.MapFunction; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; +import org.gradoop.common.model.api.entities.GraphHead; import org.gradoop.common.model.impl.properties.PropertyValue; /** - * MapFunction, that writes a given property value to the EPGMGraphHead. + * MapFunction, that writes a given property value to the GraphHead. + * + * @param Gradoop graph head type. */ -public class WritePropertyToGraphHeadMap implements MapFunction { +public class WritePropertyToGraphHeadMap implements MapFunction { /** - * PropertyKey to access the value + * PropertyKey to access the value. */ private final String propertyKey; /** - * PropertyValue to store in EPGMGraphHead + * PropertyValue to store in GraphHead. */ private final PropertyValue propertyValue; /** - * Creates an instance of a MapFunction, that writes a given property value to the EPGMGraphHead. + * Creates an instance of a MapFunction, that writes a given property value to the GraphHead. * * @param propertyKey PropertyKey to access the value - * @param propertyValue PropertyValue to store in EPGMGraphHead + * @param propertyValue PropertyValue to store in GraphHead */ public WritePropertyToGraphHeadMap(String propertyKey, PropertyValue propertyValue) { this.propertyKey = propertyKey; @@ -46,7 +48,7 @@ public WritePropertyToGraphHeadMap(String propertyKey, PropertyValue propertyVal } @Override - public EPGMGraphHead map(EPGMGraphHead graphHead) throws Exception { + public G map(G graphHead) throws Exception { graphHead.setProperty(propertyKey, propertyValue); return graphHead; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java index 1ad4a1825702..2e4435e8dedc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/HITS.java @@ -18,14 +18,17 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithNullValue; import org.gradoop.flink.algorithms.gelly.hits.functions.HITSToAttributes; import org.gradoop.flink.algorithms.gelly.hits.functions.HitsResultKeySelector; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; /** @@ -35,8 +38,20 @@ * convergence threshold, or both. *

* The Results are stored as properties of the vertices (with given keys). + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class HITS extends GradoopGellyAlgorithm { +public class HITS< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * Property key to store the authority score. @@ -61,7 +76,7 @@ public class HITS extends GradoopGellyAlgorithm { * @param iterations number of iterations */ public HITS(String authorityPropertyKey, String hubPropertyKey, int iterations) { - super(new VertexToGellyVertexWithNullValue(), new EdgeToGellyEdgeWithNullValue()); + super(new VertexToGellyVertexWithNullValue<>(), new EdgeToGellyEdgeWithNullValue<>()); this.authorityPropertyKey = authorityPropertyKey; this.hubPropertyKey = hubPropertyKey; hits = new org.apache.flink.graph.library.linkanalysis.HITS<>(iterations, Double.MAX_VALUE); @@ -76,7 +91,7 @@ public HITS(String authorityPropertyKey, String hubPropertyKey, int iterations) * @param convergenceThreshold convergence threshold for sum of scores */ public HITS(String authorityPropertyKey, String hubPropertyKey, double convergenceThreshold) { - super(new VertexToGellyVertexWithNullValue(), new EdgeToGellyEdgeWithNullValue()); + super(new VertexToGellyVertexWithNullValue<>(), new EdgeToGellyEdgeWithNullValue<>()); this.authorityPropertyKey = authorityPropertyKey; this.hubPropertyKey = hubPropertyKey; hits = new org.apache.flink.graph.library.linkanalysis.HITS<>(Integer.MAX_VALUE, @@ -93,7 +108,7 @@ public HITS(String authorityPropertyKey, String hubPropertyKey, double convergen */ public HITS(String authorityPropertyKey, String hubPropertyKey, int maxIterations, double convergenceThreshold) { - super(new VertexToGellyVertexWithNullValue(), new EdgeToGellyEdgeWithNullValue()); + super(new VertexToGellyVertexWithNullValue<>(), new EdgeToGellyEdgeWithNullValue<>()); this.authorityPropertyKey = authorityPropertyKey; this.hubPropertyKey = hubPropertyKey; hits = @@ -102,13 +117,12 @@ public HITS(String authorityPropertyKey, String hubPropertyKey, int maxIteration @Override - public LogicalGraph executeInGelly(Graph graph) - throws Exception { + public LG executeInGelly(Graph gellyGraph) throws Exception { - DataSet newVertices = hits.runInternal(graph) + DataSet newVertices = hits.runInternal(gellyGraph) .join(currentGraph.getVertices()) .where(new HitsResultKeySelector()).equalTo(new Id<>()) - .with(new HITSToAttributes(authorityPropertyKey, hubPropertyKey)); + .with(new HITSToAttributes<>(authorityPropertyKey, hubPropertyKey)); return currentGraph.getFactory() .fromDataSets(currentGraph.getGraphHead(), newVertices, currentGraph.getEdges()); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java index 318c92e0f407..b91e6a56e6d8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/hits/functions/HITSToAttributes.java @@ -17,14 +17,16 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.graph.library.linkanalysis.HITS; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.properties.PropertyValue; /** - * Stores HITS Results as Properties of a EPGMVertex + * Stores HITS Results as Properties of a Gradoop Vertex + * + * @param Gradoop Vertex type */ -public class HITSToAttributes implements JoinFunction, EPGMVertex, EPGMVertex> { +public class HITSToAttributes implements JoinFunction, V, V> { /** * Property Key to store the authority score @@ -47,9 +49,8 @@ public HITSToAttributes(String authorityPropertyKey, String hubPropertyKey) { } @Override - public EPGMVertex join(HITS.Result result, EPGMVertex vertex) throws Exception { - vertex.setProperty(authorityPropertyKey, - PropertyValue.create(result.getAuthorityScore().getValue())); + public V join(HITS.Result result, V vertex) throws Exception { + vertex.setProperty(authorityPropertyKey, PropertyValue.create(result.getAuthorityScore().getValue())); vertex.setProperty(hubPropertyKey, PropertyValue.create(result.getHubScore().getValue())); return vertex; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java index c259651e252b..00422766d3a4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GellyLabelPropagation.java @@ -18,13 +18,29 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; /** * Executes the label propagation integrated in Flink Gelly. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class GellyLabelPropagation extends LabelPropagation { +public class GellyLabelPropagation< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> extends LabelPropagation { /** * Constructor diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java index 259e91bf56bf..da51ad3183df 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagation.java @@ -18,15 +18,31 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.properties.PropertyValue; import org.gradoop.flink.algorithms.gelly.labelpropagation.functions.LPMessageFunction; import org.gradoop.flink.algorithms.gelly.labelpropagation.functions.LPUpdateFunction; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; /** * Executes the label propagation integrated in Gradoop. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class GradoopLabelPropagation extends LabelPropagation { +public class GradoopLabelPropagation< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> extends LabelPropagation { /** * Constructor diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java index 4691369eb4e0..7d1862c01900 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/LabelPropagation.java @@ -18,14 +18,17 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.properties.PropertyValue; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithPropertyValue; import org.gradoop.flink.algorithms.gelly.labelpropagation.functions.LPVertexJoin; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; import static com.google.common.base.Preconditions.checkNotNull; @@ -35,15 +38,26 @@ * * During vertex centric iteration (Label Propagation Algorithm): * - * In each super step each vertex will adopt the value sent by the majority of - * their neighbors or the smallest one if there is just one neighbor. If - * multiple labels occur with the same frequency, the minimum of them will be - * selected as new label. If a vertex changes its value in a super step, the new - * value will be propagated to the neighbours. + * In each super step each vertex will adopt the value sent by the majority of their neighbors or the smallest + * one if there is just one neighbor. If multiple labels occur with the same frequency, the minimum of them + * will be selected as new label. If a vertex changes its value in a super step, the new value will be + * propagated to the neighbours. * * The computation will terminate if no new values are assigned. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public abstract class LabelPropagation extends GradoopGellyAlgorithm { +public abstract class LabelPropagation< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * Counter to define maximum number of iterations for the algorithm @@ -62,18 +76,18 @@ public abstract class LabelPropagation extends GradoopGellyAlgorithm(propertyKey), + new EdgeToGellyEdgeWithNullValue<>()); this.maxIterations = maxIterations; this.propertyKey = checkNotNull(propertyKey); } @Override - public LogicalGraph executeInGelly(Graph graph) { - DataSet labeledVertices = executeInternal(graph) + public LG executeInGelly(Graph gellyGraph) { + DataSet labeledVertices = executeInternal(gellyGraph) .join(currentGraph.getVertices()) .where(0).equalTo(new Id<>()) - .with(new LPVertexJoin(propertyKey)); + .with(new LPVertexJoin<>(propertyKey)); // return labeled graph return currentGraph.getFactory() diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java index 0e5b70f11681..f8c2b04f1a2a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPMessageFunction.java @@ -28,8 +28,7 @@ public class LPMessageFunction extends ScatterFunction { @Override - public void sendMessages(Vertex vertex) throws - Exception { + public void sendMessages(Vertex vertex) { sendMessageToAllNeighbors(vertex.getValue()); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java index 7a402a2192f4..016dbfb6e569 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/labelpropagation/functions/LPVertexJoin.java @@ -17,25 +17,27 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.api.java.functions.FunctionAnnotation; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.properties.PropertyValue; /** - * Updates the vertex on the left side with the property value on the right side + * Updates the vertex on the left side with the property value on the right side. + * + * @param Gradoop vertex type. */ @FunctionAnnotation.ForwardedFieldsSecond("id;label;graphIds") @FunctionAnnotation.ReadFieldsFirst("f1") -public class LPVertexJoin implements JoinFunction - , EPGMVertex, EPGMVertex> { +public class LPVertexJoin + implements JoinFunction, V, V> { /** - * Property key to access the value which will be propagated + * Property key to access the value which will be propagated. */ private final String propertyKey; /** - * Constructor + * Constructor. * * @param propertyKey property key to access the propagation value */ @@ -44,10 +46,9 @@ public LPVertexJoin(String propertyKey) { } @Override - public EPGMVertex join( - org.apache.flink.graph.Vertex gellyVertex, - EPGMVertex epgmVertex) throws Exception { - epgmVertex.setProperty(propertyKey, gellyVertex.getValue()); - return epgmVertex; + public V join(org.apache.flink.graph.Vertex gellyVertex, V vertex) + throws Exception { + vertex.setProperty(propertyKey, gellyVertex.getValue()); + return vertex; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java index 5dcab39ae402..2c3fac6b431b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRank.java @@ -18,20 +18,35 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithNullValue; -import org.gradoop.flink.algorithms.gelly.pagerank.functions.PageRankToAttribute; import org.gradoop.flink.algorithms.gelly.pagerank.functions.PageRankResultKey; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.algorithms.gelly.pagerank.functions.PageRankToAttribute; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; /** * A gradoop operator wrapping {@link org.apache.flink.graph.library.linkanalysis.PageRank}. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class PageRank extends GradoopGellyAlgorithm { +public class PageRank< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * Property key to store the page rank in. @@ -78,9 +93,8 @@ public PageRank(String propertyKey, double dampingFactor, int iterations) { * @param includeZeroDegrees Whether to include "zero-degree" vertices in the PageRank * computation and result. */ - public PageRank(String propertyKey, double dampingFactor, int iterations, - boolean includeZeroDegrees) { - super(new VertexToGellyVertexWithNullValue(), new EdgeToGellyEdgeWithNullValue()); + public PageRank(String propertyKey, double dampingFactor, int iterations, boolean includeZeroDegrees) { + super(new VertexToGellyVertexWithNullValue<>(), new EdgeToGellyEdgeWithNullValue<>()); this.propertyKey = propertyKey; this.dampingFactor = dampingFactor; this.iterations = iterations; @@ -88,14 +102,13 @@ public PageRank(String propertyKey, double dampingFactor, int iterations, } @Override - public LogicalGraph executeInGelly(Graph graph) - throws Exception { - DataSet newVertices = + public LG executeInGelly(Graph gellyGraph) throws Exception { + DataSet newVertices = new org.apache.flink.graph.library.linkanalysis.PageRank( - dampingFactor, iterations).setIncludeZeroDegreeVertices(includeZeroDegrees).run(graph) + dampingFactor, iterations).setIncludeZeroDegreeVertices(includeZeroDegrees).run(gellyGraph) .join(currentGraph.getVertices()) .where(new PageRankResultKey()).equalTo(new Id<>()) - .with(new PageRankToAttribute(propertyKey)); + .with(new PageRankToAttribute<>(propertyKey)); return currentGraph.getFactory().fromDataSets( currentGraph.getGraphHead(), newVertices, currentGraph.getEdges()); } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java index 3265fbf739a8..5b10ea6c4b97 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/pagerank/functions/PageRankToAttribute.java @@ -18,15 +18,16 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.graph.library.linkanalysis.PageRank; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.properties.PropertyValue; /** * Stores the page rank result from the left as a Property in in the right. + * + * @param Gradoop vertex type. */ -public class PageRankToAttribute - implements JoinFunction, EPGMVertex, EPGMVertex> { +public class PageRankToAttribute implements JoinFunction, V, V> { /** * Property to store the page rank in. @@ -43,7 +44,7 @@ public PageRankToAttribute(String targetProperty) { } @Override - public EPGMVertex join(PageRank.Result result, EPGMVertex vertex) { + public V join(PageRank.Result result, V vertex) { vertex.setProperty(pageRankPropery, PropertyValue.create(result.getPageRankScore().getValue())); return vertex; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java index 0829bd6ccf64..704f29c5a604 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCI.java @@ -19,16 +19,15 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.api.java.utils.DataSetUtils; -import org.apache.flink.graph.Edge; import org.apache.flink.graph.Graph; -import org.apache.flink.graph.Vertex; import org.apache.flink.graph.pregel.VertexCentricConfiguration; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.BaseGellyAlgorithm; -import org.gradoop.flink.algorithms.gelly.randomjump.functions.EPGMEdgeWithGellyEdgeIdJoin; -import org.gradoop.flink.algorithms.gelly.randomjump.functions.GellyVertexWithEPGMVertexJoin; +import org.gradoop.flink.algorithms.gelly.randomjump.functions.EdgeWithGellyEdgeIdJoin; +import org.gradoop.flink.algorithms.gelly.randomjump.functions.GellyVertexWithVertexJoin; import org.gradoop.flink.algorithms.gelly.randomjump.functions.GellyVertexWithLongIdToGradoopIdJoin; import org.gradoop.flink.algorithms.gelly.randomjump.functions.GetVisitedGellyEdgeLongIdsFlatMap; import org.gradoop.flink.algorithms.gelly.randomjump.functions.GetVisitedSourceTargetIdsFlatMap; @@ -40,7 +39,9 @@ import org.gradoop.flink.algorithms.gelly.randomjump.functions.VCIVertexValue; import org.gradoop.flink.algorithms.gelly.randomjump.functions.VertexWithVisitedSourceTargetIdJoin; import org.gradoop.flink.algorithms.gelly.randomjump.functions.VisitedGellyEdgesWithLongIdToGradoopIdJoin; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphOperator; import org.gradoop.flink.model.impl.functions.epgm.Id; import org.gradoop.flink.model.impl.functions.epgm.SourceId; import org.gradoop.flink.model.impl.functions.tuple.Value0Of2; @@ -53,8 +54,8 @@ /** * Performs the RandomJump using Gellys VertexCentricIteration (VCI). - * Uniformly at random picks {@link #numberOfStartVertices} starting vertices and then simulates a RandomWalk for each - * starting vertex on the graph, where once visited edges are not used again. For each walker, + * Uniformly at random picks {@link #numberOfStartVertices} starting vertices and then simulates a RandomWalk + * for each starting vertex on the graph, where once visited edges are not used again. For each walker, * with a given {@link #jumpProbability}, or if the walk ends in a sink, or if all outgoing edges * of the current vertex were visited, randomly jumps to any vertex in the graph and starts a new * RandomWalk from there. @@ -64,13 +65,25 @@ * visit at least given in {@link #percentageToVisit}). * Returns the initial graph with vertices and edges annotated by a boolean property named * "sampled", which is set to {@code true} if visited, or {@code false} if not. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class KRandomJumpGellyVCI - extends BaseGellyAlgorithm { +public class KRandomJumpGellyVCI< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends BaseGellyAlgorithm + implements UnaryBaseGraphToBaseGraphOperator { /** - * The graph used in {@link KRandomJumpGellyVCI#execute(LogicalGraph)}. + * The graph used in {@link KRandomJumpGellyVCI#execute(LG)}. */ - protected LogicalGraph currentGraph; + protected LG currentGraph; /** * Number of starting vertices. @@ -128,19 +141,19 @@ public KRandomJumpGellyVCI(int numberOfStartVertices, int maxIterations, double } @Override - public Graph transformToGelly(LogicalGraph graph) { + public Graph transformToGelly(LG graph) { this.currentGraph = graph; indexToVertexIdMap = DataSetUtils.zipWithIndex(graph.getVertices().map(new Id<>())); indexToEdgeIdMap = DataSetUtils.zipWithIndex(graph.getEdges().map(new Id<>())); - DataSet> vertices = indexToVertexIdMap + DataSet> vertices = indexToVertexIdMap .map(new LongIdToGellyVertexWithVCIValueMap()); - DataSet> edges = graph.getEdges() + DataSet> edges = graph.getEdges() .join(indexToVertexIdMap) .where(new SourceId<>()).equalTo(1) - .with(new LongIdWithEdgeToTupleJoin()) + .with(new LongIdWithEdgeToTupleJoin<>()) .join(indexToVertexIdMap) .where(1).equalTo(1) .with(new ReplaceTargetWithLongIdJoin()) @@ -152,8 +165,7 @@ public Graph transformToGelly(LogicalGraph graph) { } @Override - public LogicalGraph executeInGelly(Graph gellyGraph) - throws Exception { + public LG executeInGelly(Graph gellyGraph) throws Exception { long vertexCount = gellyGraph.numberOfVertices(); @@ -197,27 +209,27 @@ public LogicalGraph executeInGelly(Graph gellyGraph) .with(new VisitedGellyEdgesWithLongIdToGradoopIdJoin()); // compute new visited edges - DataSet visitedEdges = currentGraph.getEdges() + DataSet visitedEdges = currentGraph.getEdges() .leftOuterJoin(visitedGellyEdgeIds) .where(new Id<>()).equalTo("*") - .with(new EPGMEdgeWithGellyEdgeIdJoin(SamplingConstants.PROPERTY_KEY_SAMPLED)); + .with(new EdgeWithGellyEdgeIdJoin<>(SamplingConstants.PROPERTY_KEY_SAMPLED)); DataSet visitedSourceTargetIds = visitedEdges - .flatMap(new GetVisitedSourceTargetIdsFlatMap(SamplingConstants.PROPERTY_KEY_SAMPLED)) + .flatMap(new GetVisitedSourceTargetIdsFlatMap<>(SamplingConstants.PROPERTY_KEY_SAMPLED)) .distinct(); // compute new visited vertices - DataSet visitedVertices = resultGraph.getVertices() + DataSet visitedVertices = resultGraph.getVertices() .join(indexToVertexIdMap) .where(0).equalTo(0) .with(new GellyVertexWithLongIdToGradoopIdJoin()) .join(currentGraph.getVertices()) .where(0).equalTo(new Id<>()) - .with(new GellyVertexWithEPGMVertexJoin(SamplingConstants.PROPERTY_KEY_SAMPLED)); + .with(new GellyVertexWithVertexJoin<>(SamplingConstants.PROPERTY_KEY_SAMPLED)); visitedVertices = visitedVertices.leftOuterJoin(visitedSourceTargetIds) .where(new Id<>()).equalTo("*") - .with(new VertexWithVisitedSourceTargetIdJoin(SamplingConstants.PROPERTY_KEY_SAMPLED)); + .with(new VertexWithVisitedSourceTargetIdJoin<>(SamplingConstants.PROPERTY_KEY_SAMPLED)); // return graph return currentGraph.getFactory().fromDataSets( diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EdgeWithGellyEdgeIdJoin.java similarity index 66% rename from gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java rename to gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EdgeWithGellyEdgeIdJoin.java index 79ce7ec76f92..46b11ceb1621 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EPGMEdgeWithGellyEdgeIdJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/EdgeWithGellyEdgeIdJoin.java @@ -17,16 +17,18 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.api.java.functions.FunctionAnnotation; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; /** - * Joins an EPGM edge with a GradoopId of an visited edge from the VCI run. Assigns a boolean - * property to the EPGM edge, determining if this edge was visited. The property is set to - * {@code true} if the EPGM edge has a join partner, set to {@code false} otherwise. + * Joins an Gradoop edge with a GradoopId of an visited edge from the VCI run. Assigns a boolean + * property to the Gradoop edge, determining if this edge was visited. The property is set to + * {@code true} if the Gradoop edge has a join partner, set to {@code false} otherwise. + * + * @param Gradoop Edge type */ @FunctionAnnotation.ForwardedFieldsFirst("id;sourceId;targetId;label;graphIds") -public class EPGMEdgeWithGellyEdgeIdJoin implements JoinFunction { +public class EdgeWithGellyEdgeIdJoin implements JoinFunction { /** * Key for the boolean property of the edge. @@ -34,17 +36,16 @@ public class EPGMEdgeWithGellyEdgeIdJoin implements JoinFunction Gradoop Vertex type */ @FunctionAnnotation.ReadFieldsFirst("f1") @FunctionAnnotation.ForwardedFieldsSecond("id;label;graphIds") -public class GellyVertexWithEPGMVertexJoin implements - JoinFunction, EPGMVertex, EPGMVertex> { +public class GellyVertexWithVertexJoin + implements JoinFunction, V, V> { /** - * Key for the boolean property value to assign to the EPGM vertex. + * Key for the boolean property value to assign to the Gradoop vertex. */ private final String propertyKey; /** - * Creates an instance of GellyVertexWithEPGMVertexJoin with a given key for - * the boolean property value. + * Creates an instance of GellyVertexWithVertexJoin with a given key for the boolean property value. * * @param propertyKey Key for the boolean property value. */ - public GellyVertexWithEPGMVertexJoin(String propertyKey) { + public GellyVertexWithVertexJoin(String propertyKey) { this.propertyKey = propertyKey; } @Override - public EPGMVertex join(org.apache.flink.graph.Vertex gellyVertex, - EPGMVertex epgmVertex) throws Exception { - epgmVertex.setProperty(propertyKey, gellyVertex.getValue().f0); - return epgmVertex; + public V join(org.apache.flink.graph.Vertex gellyVertex, V vertex) + throws Exception { + vertex.setProperty(propertyKey, gellyVertex.getValue().f0); + return vertex; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java index ff87a4ba88e8..9aad46983fa9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/GetVisitedSourceTargetIdsFlatMap.java @@ -18,15 +18,17 @@ import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.util.Collector; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; /** * Retrieves the source- and target-id from an edge, if this edge was visited, determined by the * boolean property. + * + * @param Gradoop Edge type */ @FunctionAnnotation.ReadFields("properties") -public class GetVisitedSourceTargetIdsFlatMap implements FlatMapFunction { +public class GetVisitedSourceTargetIdsFlatMap implements FlatMapFunction { /** * Key for the boolean property value to determine, if the edge was visited. @@ -43,7 +45,7 @@ public GetVisitedSourceTargetIdsFlatMap(String propertyKey) { } @Override - public void flatMap(EPGMEdge edge, Collector out) throws Exception { + public void flatMap(E edge, Collector out) throws Exception { if (edge.getPropertyValue(propertyKey).getBoolean()) { out.collect(edge.getSourceId()); out.collect(edge.getTargetId()); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java index baa4e3246651..86c9f833470f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/LongIdWithEdgeToTupleJoin.java @@ -19,17 +19,19 @@ import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.api.java.tuple.Tuple3; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMEdge; /** - * Takes an EPGM edge and creates a tuple, containing the edges source id as unique long id, its + * Takes an Gradoop edge and creates a tuple, containing the edges source id as unique long id, its * target id as GradoopId and its own id as GradoopId. + * + * @param Gradoop Edge type */ @FunctionAnnotation.ForwardedFieldsFirst("targetId->f1;id->f2") @FunctionAnnotation.ForwardedFieldsSecond("f0") -public class LongIdWithEdgeToTupleJoin implements - JoinFunction, Tuple3> { +public class LongIdWithEdgeToTupleJoin + implements JoinFunction, Tuple3> { /** * Reduce object instantiation. @@ -44,12 +46,11 @@ public LongIdWithEdgeToTupleJoin() { } @Override - public Tuple3 join( - EPGMEdge epgmEdge, - Tuple2 uniqueLongToVertexId) throws Exception { + public Tuple3 join(E edge, Tuple2 uniqueLongToVertexId) + throws Exception { reuseTuple.f0 = uniqueLongToVertexId.f0; - reuseTuple.f1 = epgmEdge.getTargetId(); - reuseTuple.f2 = epgmEdge.getId(); + reuseTuple.f1 = edge.getTargetId(); + reuseTuple.f2 = edge.getId(); return reuseTuple; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java index 825a4cdccb87..4489a8001e84 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/randomjump/functions/VertexWithVisitedSourceTargetIdJoin.java @@ -17,15 +17,17 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.api.java.functions.FunctionAnnotation; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; /** - * Joins an EPGM vertex with the source- resp. target-id of a visited edge. Sets the vertex visited + * Joins an Gradoop vertex with the source- resp. target-id of a visited edge. Sets the vertex visited * property to {@code true}, if there is a join-partner. + * + * @param Gradoop Vertex type */ @FunctionAnnotation.ForwardedFieldsFirst("id;label;graphIds") -public class VertexWithVisitedSourceTargetIdJoin implements JoinFunction { +public class VertexWithVisitedSourceTargetIdJoin implements JoinFunction { /** * Key for the boolean property of the edge. @@ -42,7 +44,7 @@ public VertexWithVisitedSourceTargetIdJoin(String propertyKey) { } @Override - public EPGMVertex join(EPGMVertex vertex, GradoopId visitedId) throws Exception { + public V join(V vertex, GradoopId visitedId) throws Exception { if (visitedId != null) { vertex.setProperty(propertyKey, true); } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java index 3da438b5a4a2..6912e00c85f1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPaths.java @@ -18,20 +18,34 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithDouble; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithNullValue; import org.gradoop.flink.algorithms.gelly.shortestpaths.functions.SingleSourceShortestPathsAttribute; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; /** * A gradoop operator wrapping {@link org.apache.flink.graph.library.SingleSourceShortestPaths}. * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class SingleSourceShortestPaths extends GradoopGellyAlgorithm { +public class SingleSourceShortestPaths< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * ID of the source vertex @@ -61,11 +75,11 @@ public class SingleSourceShortestPaths extends GradoopGellyAlgorithm(), + new EdgeToGellyEdgeWithDouble<>(propertyKeyEdge)); this.propertyKeyVertex = propertyKeyVertex; this.propertyKeyEdge = propertyKeyEdge; this.iterations = iterations; @@ -73,15 +87,14 @@ public SingleSourceShortestPaths(GradoopId srcVertexId, String propertyKeyEdge, } @Override - public LogicalGraph executeInGelly(Graph graph) { - - DataSet newVertices = new org.apache.flink.graph.library.SingleSourceShortestPaths + public LG executeInGelly(Graph gellyGraph) { + DataSet newVertices = new org.apache.flink.graph.library.SingleSourceShortestPaths (srcVertexId, iterations) - .run(graph) + .run(gellyGraph) .join(currentGraph.getVertices()) .where(0) .equalTo(new Id<>()) - .with(new SingleSourceShortestPathsAttribute(propertyKeyVertex)); + .with(new SingleSourceShortestPathsAttribute<>(propertyKeyVertex)); return currentGraph.getFactory() .fromDataSets(currentGraph.getGraphHead(), newVertices, currentGraph.getEdges()); } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java index 8c7985bfcb84..20cb49feab8b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/shortestpaths/functions/SingleSourceShortestPathsAttribute.java @@ -16,14 +16,16 @@ package org.gradoop.flink.algorithms.gelly.shortestpaths.functions; import org.apache.flink.api.common.functions.JoinFunction; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; /** * Stores the minimum distance as a property in vertex. + * + * @param Gradoop Vertex type */ -public class SingleSourceShortestPathsAttribute - implements JoinFunction, EPGMVertex, EPGMVertex> { +public class SingleSourceShortestPathsAttribute + implements JoinFunction, V, V> { /** * Property to store the minimum distance in. @@ -40,9 +42,8 @@ public SingleSourceShortestPathsAttribute(String shortestPathProperty) { } @Override - public EPGMVertex join(org.apache.flink.graph.Vertex gellyVertex, - EPGMVertex gradoopVertex) { - gradoopVertex.setProperty(shortestPathProperty, gellyVertex.getValue()); - return gradoopVertex; + public V join(org.apache.flink.graph.Vertex gellyVertex, V vertex) { + vertex.setProperty(shortestPathProperty, gellyVertex.getValue()); + return vertex; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java index f87a1bebc8ef..6d363f086ca8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCounting.java @@ -19,23 +19,38 @@ import org.apache.flink.api.java.tuple.Tuple3; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; import org.gradoop.common.model.impl.properties.PropertyValue; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.WritePropertyToGraphHeadMap; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; /** * Gradoop EPGM model wrapper for the Flink Gelly algorithm for triangle counting in a graph * {@link org.apache.flink.graph.library.TriangleEnumerator}. * Counts all triangles (closed triplets) in a graph, without taking the edge direction in account. - * Returns the initial {@code LogicalGraph} with the number of triangles written as property to the - * {@code EPGMGraphHead}. The value is accessed via the property key in {@link #PROPERTY_KEY_TRIANGLES}. + * Returns the initial {@link BaseGraph} with the number of triangles written as property to the + * {@code GraphHead}. The value is accessed via the property key in {@link #PROPERTY_KEY_TRIANGLES}. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class GellyTriangleCounting extends GradoopGellyAlgorithm { +public class GellyTriangleCounting< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * Property key to access the value for counted triangles in the graph head @@ -47,19 +62,18 @@ public class GellyTriangleCounting extends GradoopGellyAlgorithm(), + new EdgeToGellyEdgeWithNullValue<>()); } @Override - public LogicalGraph executeInGelly(Graph graph) - throws Exception { + public LG executeInGelly(Graph gellyGraph) throws Exception { DataSet> triangles = new org.apache.flink.graph.library.TriangleEnumerator() - .run(graph); + .run(gellyGraph); - DataSet resultHead = currentGraph.getGraphHead() - .map(new WritePropertyToGraphHeadMap( + DataSet resultHead = currentGraph.getGraphHead() + .map(new WritePropertyToGraphHeadMap<>( PROPERTY_KEY_TRIANGLES, PropertyValue.create(triangles.count()))); return currentGraph.getFactory().fromDataSets( diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java index f8debfa60dcf..dd525aa00c74 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegrees.java @@ -18,13 +18,16 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.graph.Graph; import org.apache.flink.types.NullValue; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.GradoopGellyAlgorithm; import org.gradoop.flink.algorithms.gelly.functions.EdgeToGellyEdgeWithNullValue; import org.gradoop.flink.algorithms.gelly.functions.VertexToGellyVertexWithNullValue; import org.gradoop.flink.algorithms.gelly.vertexdegrees.functions.DistinctVertexDegreesToAttribute; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.functions.epgm.Id; /** @@ -33,8 +36,20 @@ *

* Note: This Gelly implementation count loops between edges like {@code (v1) -> (v2)}, * {@code (v2) -> (v1)} as one. + * + * @param Gradoop graph head type. + * @param Gradoop vertex type. + * @param Gradoop edge type. + * @param Gradoop type of the graph. + * @param Gradoop type of the graph collection. */ -public class DistinctVertexDegrees extends GradoopGellyAlgorithm { +public class DistinctVertexDegrees< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + extends GradoopGellyAlgorithm { /** * Property key to store the sum vertex degree in. @@ -76,7 +91,7 @@ public DistinctVertexDegrees(String propertyKey, String propertyKeyIn, String pr */ public DistinctVertexDegrees(String propertyKey, String propertyKeyIn, String propertyKeyOut, boolean includeZeroDegreeVertices) { - super(new VertexToGellyVertexWithNullValue(), new EdgeToGellyEdgeWithNullValue()); + super(new VertexToGellyVertexWithNullValue<>(), new EdgeToGellyEdgeWithNullValue<>()); this.propertyKey = propertyKey; this.propertyKeyIn = propertyKeyIn; this.propertyKeyOut = propertyKeyOut; @@ -84,14 +99,14 @@ public DistinctVertexDegrees(String propertyKey, String propertyKeyIn, String pr } @Override - public LogicalGraph executeInGelly(Graph graph) throws Exception { - DataSet newVertices = + public LG executeInGelly(Graph gellyGraph) throws Exception { + DataSet newVertices = new org.apache.flink.graph.asm.degree.annotate.directed.VertexDegrees() .setIncludeZeroDegreeVertices(includeZeroDegreeVertices) - .run(graph) + .run(gellyGraph) .join(currentGraph.getVertices()) .where(0).equalTo(new Id<>()) - .with(new DistinctVertexDegreesToAttribute(propertyKey, propertyKeyIn, propertyKeyOut)); + .with(new DistinctVertexDegreesToAttribute<>(propertyKey, propertyKeyIn, propertyKeyOut)); return currentGraph.getFactory() .fromDataSets(currentGraph.getGraphHead(), newVertices, currentGraph.getEdges()); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java index 36842ccbf7b6..819536a32600 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/functions/DistinctVertexDegreesToAttribute.java @@ -18,16 +18,17 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.graph.asm.degree.annotate.directed.VertexDegrees; import org.apache.flink.graph.asm.degree.annotate.directed.VertexDegrees.Degrees; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.properties.PropertyValue; /** * Stores the in-degree, out-degree and the sum of both as a property in vertex + * + * @param Gradoop Vertex type */ -public class DistinctVertexDegreesToAttribute - implements JoinFunction - , EPGMVertex, EPGMVertex> { +public class DistinctVertexDegreesToAttribute + implements JoinFunction, V, V> { /** * Property to store the sum of vertex degrees in. @@ -57,14 +58,13 @@ public DistinctVertexDegreesToAttribute(String vertexDegreesProperty, } @Override - public EPGMVertex join(org.apache.flink.graph.Vertex degree, EPGMVertex vertex) - throws Exception { + public V join(org.apache.flink.graph.Vertex degree, V vertex) throws Exception { vertex.setProperty(vertexDegreesProperty, - PropertyValue.create(degree.getValue().getDegree().getValue())); + PropertyValue.create(degree.getValue().getDegree().getValue())); vertex.setProperty(vertexInDegreeProperty, - PropertyValue.create(degree.getValue().getInDegree().getValue())); + PropertyValue.create(degree.getValue().getInDegree().getValue())); vertex.setProperty(vertexOutDegreeProperty, - PropertyValue.create(degree.getValue().getOutDegree().getValue())); + PropertyValue.create(degree.getValue().getOutDegree().getValue())); return vertex; } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java index 00a31b2252e6..ea03f5f1c1c6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/BaseGraphOperators.java @@ -15,6 +15,7 @@ */ package org.gradoop.flink.model.api.epgm; +import com.google.common.collect.Lists; import org.apache.flink.api.common.functions.FilterFunction; import org.apache.flink.api.java.DataSet; import org.gradoop.common.model.api.entities.Edge; @@ -29,6 +30,7 @@ import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphCollectionOperator; import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphOperator; import org.gradoop.flink.model.api.operators.UnaryBaseGraphToValueOperator; +import org.gradoop.flink.model.impl.functions.epgm.PropertyGetter; import org.gradoop.flink.model.impl.operators.aggregation.Aggregation; import org.gradoop.flink.model.impl.operators.cloning.Cloning; import org.gradoop.flink.model.impl.operators.combination.Combination; @@ -43,6 +45,7 @@ import org.gradoop.flink.model.impl.operators.neighborhood.ReduceEdgeNeighborhood; import org.gradoop.flink.model.impl.operators.neighborhood.ReduceVertexNeighborhood; import org.gradoop.flink.model.impl.operators.overlap.Overlap; +import org.gradoop.flink.model.impl.operators.split.Split; import org.gradoop.flink.model.impl.operators.subgraph.Subgraph; import org.gradoop.flink.model.impl.operators.tostring.functions.EdgeToDataString; import org.gradoop.flink.model.impl.operators.tostring.functions.EdgeToIdString; @@ -554,6 +557,18 @@ default DataSet equalsByData(LG other) { */ DataSet isEmpty(); + /** + * Splits the graph into multiple logical graphs using the property value which is assigned to the given + * property key. Vertices and edges that do not have this property will be removed from the resulting + * collection. + * + * @param propertyKey split property key + * @return graph collection + */ + default GC splitBy(String propertyKey) { + return callForCollection(new Split<>(new PropertyGetter<>(Lists.newArrayList(propertyKey)))); + } + //---------------------------------------------------------------------------- // Call for Operators //---------------------------------------------------------------------------- diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java index 0a6f4976f935..05cb63e34e26 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/api/epgm/LogicalGraphOperators.java @@ -82,16 +82,6 @@ GraphCollection groupEdgesByRollUp( // Auxiliary Operators //---------------------------------------------------------------------------- - /** - * Splits the graph into multiple logical graphs using the property value - * which is assigned to the given property key. Vertices and edges that do - * not have this property will be removed from the resulting collection. - * - * @param propertyKey split property key - * @return graph collection - */ - GraphCollection splitBy(String propertyKey); - /** * Creates a logical graph from that graph and other graphs using the given operator. * diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java index b74e076996f5..cbf08d27668d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/epgm/LogicalGraph.java @@ -15,7 +15,6 @@ */ package org.gradoop.flink.model.impl.epgm; -import com.google.common.collect.Lists; import org.apache.flink.api.java.DataSet; import org.gradoop.common.model.impl.pojo.EPGMEdge; import org.gradoop.common.model.impl.pojo.EPGMGraphHead; @@ -31,11 +30,9 @@ import org.gradoop.flink.model.api.operators.BinaryBaseGraphToValueOperator; import org.gradoop.flink.model.api.operators.GraphsToGraphOperator; import org.gradoop.flink.model.api.operators.UnaryBaseGraphToValueOperator; -import org.gradoop.flink.model.impl.functions.epgm.PropertyGetter; import org.gradoop.flink.model.impl.operators.rollup.EdgeRollUp; import org.gradoop.flink.model.impl.operators.rollup.VertexRollUp; import org.gradoop.flink.model.impl.operators.sampling.SamplingAlgorithm; -import org.gradoop.flink.model.impl.operators.split.Split; import org.gradoop.flink.util.GradoopFlinkConfig; import java.io.IOException; @@ -192,11 +189,6 @@ public LogicalGraph callForGraph(GraphsToGraphOperator operator, return operator.execute(this, otherGraphs); } - @Override - public GraphCollection splitBy(String propertyKey) { - return callForCollection(new Split(new PropertyGetter<>(Lists.newArrayList(propertyKey)))); - } - //---------------------------------------------------------------------------- // Utility methods //---------------------------------------------------------------------------- diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java index b6ff2714575b..1af2bafd19f6 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/InitGraphHead.java @@ -20,36 +20,38 @@ import org.apache.flink.api.java.tuple.Tuple1; import org.apache.flink.api.java.typeutils.ResultTypeQueryable; import org.apache.flink.api.java.typeutils.TypeExtractor; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; +import org.gradoop.common.model.api.entities.GraphHead; import org.gradoop.common.model.api.entities.GraphHeadFactory; import org.gradoop.common.model.impl.id.GradoopId; /** * Initializes a new graph head from a given GradoopId. + * + * @param Graph head type */ -public class InitGraphHead implements MapFunction, EPGMGraphHead>, - ResultTypeQueryable { +public class InitGraphHead + implements MapFunction, G>, ResultTypeQueryable { /** - * EPGMGraphHeadFactory + * GraphHeadFactory */ - private final GraphHeadFactory graphHeadFactory; + private final GraphHeadFactory graphHeadFactory; /** * Constructor * - * @param epgmGraphHeadFactory graph head factory + * @param graphHeadFactory graph head factory */ - public InitGraphHead(GraphHeadFactory epgmGraphHeadFactory) { - this.graphHeadFactory = epgmGraphHeadFactory; + public InitGraphHead(GraphHeadFactory graphHeadFactory) { + this.graphHeadFactory = graphHeadFactory; } @Override - public EPGMGraphHead map(Tuple1 idTuple) { + public G map(Tuple1 idTuple) { return graphHeadFactory.initGraphHead(idTuple.f0); } @Override - public TypeInformation getProducedType() { + public TypeInformation getProducedType() { return TypeExtractor.createTypeInfo(graphHeadFactory.getType()); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java index c905f24894bc..cca4b1a661db 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyGetter.java @@ -16,9 +16,9 @@ package org.gradoop.flink.model.impl.functions.epgm; import com.google.common.collect.Lists; -import org.gradoop.flink.model.api.functions.Function; -import org.gradoop.common.model.impl.pojo.EPGMElement; +import org.gradoop.common.model.api.entities.Element; import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.api.functions.Function; import java.util.List; @@ -27,12 +27,12 @@ /** * Extracts a list of {@link PropertyValue} instances from a given entity using * a list of property keys. The order of the property keys determines the order - * of the values in the result. If the EPGM element does not have a property, + * of the values in the result. If the element does not have a property, * the property value will be {@code PropertyValue.NULL_VALUE}. * - * @param EPGM element + * @param Element */ -public class PropertyGetter +public class PropertyGetter implements Function> { /** diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java index c0de2a213eeb..6c3ec21a1454 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/functions/epgm/PropertyRemover.java @@ -16,16 +16,16 @@ package org.gradoop.flink.model.impl.functions.epgm; import org.apache.flink.api.common.functions.MapFunction; -import org.gradoop.common.model.impl.pojo.EPGMElement; +import org.gradoop.common.model.api.entities.Element; import static com.google.common.base.Preconditions.checkNotNull; /** - * Remove a property from an EPGM element. + * Remove a property from an element. * - * @param EPGM element type. + * @param Element type. */ -public class PropertyRemover implements MapFunction { +public class PropertyRemover implements MapFunction { /** * Property key to remove. diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java index 9da0293e6ec4..2470a8986fc8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/PageRankSampling.java @@ -95,11 +95,11 @@ public PageRankSampling(double dampeningFactor, int maxIteration, double thresho @Override public LogicalGraph sample(LogicalGraph graph) { - LogicalGraph pageRankGraph = new PageRank( + LogicalGraph pageRankGraph = graph.callForGraph(new PageRank<>( SamplingConstants.PAGE_RANK_SCORE_PROPERTY_KEY, dampeningFactor, maxIteration, - true).execute(graph); + true)); graph = graph.getFactory().fromDataSets( graph.getGraphHead(), pageRankGraph.getVertices(), pageRankGraph.getEdges()); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java index 834110adedc7..6dfb6e04b1cd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSampling.java @@ -116,11 +116,11 @@ public RandomLimitedDegreeVertexSampling(float sampleSize, long degreeThreshold, @Override public LogicalGraph sample(LogicalGraph graph) { - graph = new DistinctVertexDegrees( + graph = graph.callForGraph(new DistinctVertexDegrees<>( SamplingConstants.DEGREE_PROPERTY_KEY, SamplingConstants.IN_DEGREE_PROPERTY_KEY, SamplingConstants.OUT_DEGREE_PROPERTY_KEY, - true).execute(graph); + true)); DataSet newVertices = graph.getVertices() .filter(new LimitedDegreeVertexRandomFilter<>( diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java index a921c282deb9..6bb291e23bd9 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomNonUniformVertexSampling.java @@ -72,11 +72,11 @@ public RandomNonUniformVertexSampling(float sampleSize, long randomSeed) { @Override public LogicalGraph sample(LogicalGraph graph) { - graph = new DistinctVertexDegrees( + graph = graph.callForGraph(new DistinctVertexDegrees<>( SamplingConstants.DEGREE_PROPERTY_KEY, SamplingConstants.IN_DEGREE_PROPERTY_KEY, SamplingConstants.OUT_DEGREE_PROPERTY_KEY, - true).execute(graph); + true)); DataSet newVertices = graph.getVertices() .map(new VertexToDegreeMap(SamplingConstants.DEGREE_PROPERTY_KEY)) diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java index 298c5623ff78..9ecc5285fa03 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomVertexNeighborhoodSampling.java @@ -117,9 +117,8 @@ public LogicalGraph sample(LogicalGraph graph) { .filter(new EdgesWithSampledVerticesFilter(neighborType)) .map(new Value0Of3<>()); - graph = graph.getFactory().fromDataSets(graph.getVertices(), newEdges); - - graph = new FilterVerticesWithDegreeOtherThanGiven(0L).execute(graph); + graph = graph.getFactory().fromDataSets(graph.getVertices(), newEdges) + .callForGraph(new FilterVerticesWithDegreeOtherThanGiven<>(0L)); return graph; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java index 41f0bbc3b364..864905787885 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/RandomWalkSampling.java @@ -16,8 +16,8 @@ package org.gradoop.flink.model.impl.operators.sampling; import org.apache.flink.api.java.DataSet; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.pojo.EPGMEdge; +import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.flink.algorithms.gelly.randomjump.KRandomJumpGellyVCI; import org.gradoop.flink.model.impl.epgm.LogicalGraph; import org.gradoop.flink.model.impl.functions.epgm.ByProperty; @@ -87,8 +87,8 @@ public RandomWalkSampling(float sampleSize, int numberOfStartVertices, @Override protected LogicalGraph sample(LogicalGraph graph) { - LogicalGraph gellyResult = new KRandomJumpGellyVCI(numberOfStartVertices, maxIteration, - jumpProbability, sampleSize).execute(graph); + LogicalGraph gellyResult = graph.callForGraph( + new KRandomJumpGellyVCI<>(numberOfStartVertices, maxIteration, jumpProbability, sampleSize)); DataSet sampledVertices = gellyResult.getVertices() .filter(new ByProperty<>(SamplingConstants.PROPERTY_KEY_SAMPLED)); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java index 3f1ee37077f3..f09eb97c4a07 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/FilterVerticesWithDegreeOtherThanGiven.java @@ -16,17 +16,31 @@ package org.gradoop.flink.model.impl.operators.sampling.functions; import org.apache.flink.api.java.DataSet; -import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.flink.algorithms.gelly.vertexdegrees.DistinctVertexDegrees; -import org.gradoop.flink.model.api.operators.UnaryGraphToGraphOperator; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphOperator; import org.gradoop.flink.model.impl.functions.epgm.PropertyRemover; import org.gradoop.flink.model.impl.operators.sampling.common.SamplingConstants; /** * Retains all vertices which do not have the given degree. + * + * @param The graph head type. + * @param The vertex type. + * @param The edge type. + * @param The type of the graph. + * @param The type of the graph collection. */ -public class FilterVerticesWithDegreeOtherThanGiven implements UnaryGraphToGraphOperator { +public class FilterVerticesWithDegreeOtherThanGiven< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> implements UnaryBaseGraphToBaseGraphOperator { /** * the given degree @@ -43,15 +57,15 @@ public FilterVerticesWithDegreeOtherThanGiven(long degree) { } @Override - public LogicalGraph execute(LogicalGraph graph) { + public LG execute(LG graph) { - DistinctVertexDegrees distinctVertexDegrees = new DistinctVertexDegrees( + DistinctVertexDegrees distinctVertexDegrees = new DistinctVertexDegrees<>( SamplingConstants.DEGREE_PROPERTY_KEY, SamplingConstants.IN_DEGREE_PROPERTY_KEY, SamplingConstants.OUT_DEGREE_PROPERTY_KEY, true); - DataSet newVertices = distinctVertexDegrees.execute(graph).getVertices() + DataSet newVertices = distinctVertexDegrees.execute(graph).getVertices() .filter(new VertexWithDegreeFilter<>(degree, SamplingConstants.DEGREE_PROPERTY_KEY)) .map(new PropertyRemover<>(SamplingConstants.DEGREE_PROPERTY_KEY)) .map(new PropertyRemover<>(SamplingConstants.IN_DEGREE_PROPERTY_KEY)) diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java index 5c3bc341db31..d32b9b874587 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/sampling/functions/VertexWithDegreeFilter.java @@ -16,15 +16,15 @@ package org.gradoop.flink.model.impl.operators.sampling.functions; import org.apache.flink.api.common.functions.FilterFunction; -import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.common.model.api.entities.Vertex; /** * Retains all vertices which do not have the given degree. * If a vertex does not have the degree property, it will be filtered. * - * @param EPGM vertex type with property for degree ("deg") + * @param Vertex type with property for degree ("deg") */ -public class VertexWithDegreeFilter implements FilterFunction { +public class VertexWithDegreeFilter implements FilterFunction { /** * Given degree to be filtered */ diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java index 7fd12bfabb76..7fded52f1e13 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/Split.java @@ -19,16 +19,16 @@ import org.apache.flink.api.java.tuple.Tuple1; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.api.java.tuple.Tuple3; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.id.GradoopIdSet; -import org.gradoop.common.model.impl.pojo.EPGMEdge; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.properties.PropertyValue; -import org.gradoop.flink.model.impl.epgm.GraphCollection; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.api.functions.Function; -import org.gradoop.flink.model.api.operators.UnaryGraphToCollectionOperator; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphCollectionOperator; import org.gradoop.flink.model.impl.functions.epgm.Id; import org.gradoop.flink.model.impl.functions.epgm.InitGraphHead; import org.gradoop.flink.model.impl.functions.epgm.PairTupleWithNewId; @@ -46,29 +46,40 @@ import java.util.List; /** - * Splits a LogicalGraph into a GraphCollection based on user-defined property - * values. The operator supports overlapping logical graphs, where a vertex - * can be in more than one logical graph. Edges, where source and target vertex - * have no graphs in common, are removed from the resulting collection. + * Splits a LogicalGraph into a GraphCollection based on user-defined property values. The operator supports + * overlapping logical graphs, where a vertex can be in more than one logical graph. Edges, where source and + * target vertex have no graphs in common, are removed from the resulting collection. + * + * @param The graph head type. + * @param The vertex type. + * @param The edge type. + * @param The type of the graph. + * @param The type of the graph collection. */ -public class Split implements UnaryGraphToCollectionOperator, Serializable { +public class Split< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + implements UnaryBaseGraphToBaseGraphCollectionOperator, Serializable { /** * User-defined function for value extraction */ - private final Function> function; + private final Function> function; /** * Constructor * * @param function user-defined function */ - public Split(Function> function) { + public Split(Function> function) { this.function = function; } @Override - public GraphCollection execute(LogicalGraph graph) { + public GC execute(LG graph) { //-------------------------------------------------------------------------- // compute vertices @@ -100,7 +111,7 @@ public GraphCollection execute(LogicalGraph graph) { .reduceGroup(new MultipleGraphIdsGroupReducer()); // add new graph ids to the initial vertex set - DataSet vertices = graph.getVertices() + DataSet vertices = graph.getVertices() .join(vertexIdWithGraphIds) .where(new Id<>()).equalTo(0) .with(new AddNewGraphsToVertex<>()); @@ -114,15 +125,15 @@ public GraphCollection execute(LogicalGraph graph) { .map(new Project2To1<>()); // add new graph id's to the initial graph set - DataSet newGraphs = newGraphIds - .map(new InitGraphHead(graph.getFactory().getGraphHeadFactory())); + DataSet newGraphs = newGraphIds + .map(new InitGraphHead<>(graph.getFactory().getGraphHeadFactory())); //-------------------------------------------------------------------------- // compute edges //-------------------------------------------------------------------------- // replace source and target id by the graph list the corresponding vertex - DataSet> edgeGraphIdsGraphIds = + DataSet> edgeGraphIdsGraphIds = graph.getEdges() .join(vertexIdWithGraphIds) .where(new SourceId<>()).equalTo(0) @@ -131,9 +142,8 @@ public GraphCollection execute(LogicalGraph graph) { .where("f0.targetId").equalTo(0) .with(new JoinEdgeTupleWithTargetGraphs<>()); - // add new graph ids to the edges iff source and target are contained in the - // same graph - DataSet edges = edgeGraphIdsGraphIds + // add new graph ids to the edges iff source and target are contained in the same graph + DataSet edges = edgeGraphIdsGraphIds .flatMap(new AddNewGraphsToEdge<>()); //-------------------------------------------------------------------------- diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java index 7760483ed122..4820869531cd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToEdge.java @@ -19,7 +19,7 @@ import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.api.java.tuple.Tuple3; import org.apache.flink.util.Collector; -import org.gradoop.common.model.impl.pojo.EPGMEdge; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.id.GradoopIdSet; @@ -27,11 +27,11 @@ * Adds new graph id's to the edge if source and target vertex are part of * the same graph. Filters all edges between graphs. * - * @param EPGM edge Type + * @param Edge type. */ @FunctionAnnotation.ForwardedFields("f0.id->id;f0.sourceId->sourceId;" + "f0.targetId->targetId;f0.label->label;f0.properties->properties") -public class AddNewGraphsToEdge +public class AddNewGraphsToEdge implements FlatMapFunction, E> { @Override diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java index 4212d75ce4ab..18206f0e640b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/AddNewGraphsToVertex.java @@ -18,23 +18,22 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.api.java.tuple.Tuple2; -import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.id.GradoopIdSet; /** * Adds new graph ids to the initial vertex set * - * @param EPGM vertex type + * @param Vertex type. */ @FunctionAnnotation.ReadFieldsFirst("graphIds") @FunctionAnnotation.ReadFieldsSecond("f1") -public class AddNewGraphsToVertex +public class AddNewGraphsToVertex implements JoinFunction, V> { @Override - public V join(V vertex, - Tuple2 vertexWithGraphIds) { + public V join(V vertex, Tuple2 vertexWithGraphIds) { vertex.getGraphIds().addAll(vertexWithGraphIds.f1); return vertex; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java index 4bdcc6609592..03145d54951e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithSourceGraphs.java @@ -18,20 +18,19 @@ import org.apache.flink.api.common.functions.JoinFunction; import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.api.java.tuple.Tuple2; -import org.gradoop.common.model.impl.pojo.EPGMEdge; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.id.GradoopIdSet; /** - * Join edge tuples with the graph sets of their sources + * Join edge tuples with the graph sets of their sources. * - * @param EPGM edge type + * @param Edge type. */ @FunctionAnnotation.ForwardedFieldsFirst("*->f0") @FunctionAnnotation.ForwardedFieldsSecond("f1->f1") -public class JoinEdgeTupleWithSourceGraphs - implements JoinFunction, - Tuple2> { +public class JoinEdgeTupleWithSourceGraphs + implements JoinFunction, Tuple2> { /** * Reduce object instantiation. @@ -39,8 +38,7 @@ public class JoinEdgeTupleWithSourceGraphs private final Tuple2 reuseTuple = new Tuple2<>(); @Override - public Tuple2 join( - E left, Tuple2 right) { + public Tuple2 join(E left, Tuple2 right) { reuseTuple.f0 = left; reuseTuple.f1 = right.f1; return reuseTuple; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java index 9ebb926fdfee..a668da6304b0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/JoinEdgeTupleWithTargetGraphs.java @@ -19,27 +19,25 @@ import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.api.java.tuple.Tuple3; -import org.gradoop.common.model.impl.pojo.EPGMEdge; +import org.gradoop.common.model.api.entities.Edge; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.id.GradoopIdSet; /** - * Join edge tuples with the graph sets of their targets + * Join edge tuples with the graph sets of their targets. * - * @param EPGM edge type + * @param Edge type. */ @FunctionAnnotation.ForwardedFieldsFirst("f0;f1") @FunctionAnnotation.ForwardedFieldsSecond("f1->f2") -public class JoinEdgeTupleWithTargetGraphs - implements JoinFunction - , Tuple2, - Tuple3> { +public class JoinEdgeTupleWithTargetGraphs + implements JoinFunction, Tuple2, + Tuple3> { /** * Reduce object instantiation. */ - private final Tuple3 reuseTuple = - new Tuple3<>(); + private final Tuple3 reuseTuple = new Tuple3<>(); @Override public Tuple3 join( diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java index a009d4fc537e..b732617d6c66 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/split/functions/SplitValues.java @@ -19,10 +19,10 @@ import org.apache.flink.api.java.functions.FunctionAnnotation; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.util.Collector; -import org.gradoop.common.model.impl.pojo.EPGMVertex; -import org.gradoop.flink.model.api.functions.Function; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.api.functions.Function; import java.util.List; @@ -32,11 +32,11 @@ * Maps the vertices to pairs, where each pair contains the vertex id and one * split value. The split values are determined using a user defined function. * - * @param EPGM vertex type + * @param Vertex type. */ @FunctionAnnotation.ForwardedFields("id->f0") @FunctionAnnotation.ReadFields("properties") -public class SplitValues +public class SplitValues implements FlatMapFunction> { /** * Self defined Function @@ -53,8 +53,7 @@ public SplitValues(Function> function) { } @Override - public void flatMap(V vertex, - Collector> collector) throws Exception { + public void flatMap(V vertex, Collector> collector) throws Exception { List splitValues = function.apply(vertex); for (PropertyValue value : splitValues) { collector.collect(new Tuple2<>(vertex.getId(), value)); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java index 4bc536a10ae7..0ce5d4a1946b 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/AverageClusteringCoefficient.java @@ -15,18 +15,33 @@ */ package org.gradoop.flink.model.impl.operators.statistics; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.flink.algorithms.gelly.clusteringcoefficient.ClusteringCoefficientBase; import org.gradoop.flink.algorithms.gelly.clusteringcoefficient.GellyLocalClusteringCoefficientDirected; -import org.gradoop.flink.model.api.operators.UnaryGraphToGraphOperator; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphOperator; import org.gradoop.flink.model.impl.operators.aggregation.functions.average.AverageVertexProperty; /** * Calculates the average local clustering coefficient of a graph and writes it to the graph head. * Uses the Gradoop EPGM model wrapper for Flink Gellys implementation of the local clustering * coefficient algorithm for directed graphs {@link GellyLocalClusteringCoefficientDirected} + * + * @param The graph head type. + * @param The vertex type. + * @param The edge type. + * @param The type of the graph. + * @param The type of the graph collection. */ -public class AverageClusteringCoefficient implements UnaryGraphToGraphOperator { +public class AverageClusteringCoefficient< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> implements UnaryBaseGraphToBaseGraphOperator { /** * Property key to access the average clustering coefficient value stored the graph head @@ -34,10 +49,11 @@ public class AverageClusteringCoefficient implements UnaryGraphToGraphOperator { public static final String PROPERTY_KEY_AVERAGE = "clustering_coefficient_average"; @Override - public LogicalGraph execute(LogicalGraph graph) { + public LG execute(LG graph) { - return new GellyLocalClusteringCoefficientDirected().execute(graph).aggregate( - new AverageVertexProperty(ClusteringCoefficientBase.PROPERTY_KEY_LOCAL, + return graph + .callForGraph(new GellyLocalClusteringCoefficientDirected<>()) + .aggregate(new AverageVertexProperty(ClusteringCoefficientBase.PROPERTY_KEY_LOCAL, PROPERTY_KEY_AVERAGE)); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java index dfc1f691f5aa..44d54b0bea03 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistribution.java @@ -17,9 +17,13 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.tuple.Tuple3; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.flink.algorithms.gelly.connectedcomponents.AnnotateWeaklyConnectedComponents; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; -import org.gradoop.flink.model.api.operators.UnaryGraphToValueOperator; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToValueOperator; import org.gradoop.flink.model.impl.operators.sampling.common.SamplingEvaluationConstants; import org.gradoop.flink.model.impl.operators.statistics.functions.AggregateListOfWccEdges; import org.gradoop.flink.model.impl.operators.statistics.functions.AggregateListOfWccVertices; @@ -30,9 +34,20 @@ * {@link AnnotateWeaklyConnectedComponents} of Flinks ConnectedComponents. * Returns a {@code Tuple3}, containing the component id and the number of * graph elements (vertices and edges) associated with it. + * + * @param The graph head type. + * @param The vertex type. + * @param The edge type. + * @param The type of the graph. + * @param The type of the graph collection. */ -public class ConnectedComponentsDistribution - implements UnaryGraphToValueOperator>> { +public class ConnectedComponentsDistribution< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + implements UnaryBaseGraphToValueOperator>> { /** * Property key to store the component id. @@ -97,9 +112,9 @@ public ConnectedComponentsDistribution(String propertyKey, int maxIterations, } @Override - public DataSet> execute(LogicalGraph graph) { + public DataSet> execute(LG graph) { - LogicalGraph graphWithWccIds = graph.callForGraph(new AnnotateWeaklyConnectedComponents( + LG graphWithWccIds = graph.callForGraph(new AnnotateWeaklyConnectedComponents<>( propertyKey, maxIterations, annotateEdges)); graphWithWccIds = graphWithWccIds.aggregate(new AggregateListOfWccVertices(propertyKey)); @@ -108,6 +123,6 @@ public DataSet> execute(LogicalGraph graph) { } return graphWithWccIds.getGraphHead().flatMap( - new GetConnectedComponentDistributionFlatMap(propertyKey, annotateEdges)); + new GetConnectedComponentDistributionFlatMap<>(propertyKey, annotateEdges)); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java index 115bf456ab87..b853d8dd0997 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/ConnectedComponentsDistributionAsValues.java @@ -17,18 +17,33 @@ import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.flink.algorithms.gelly.connectedcomponents.ValueWeaklyConnectedComponents; -import org.gradoop.flink.model.impl.epgm.LogicalGraph; -import org.gradoop.flink.model.api.operators.UnaryGraphToValueOperator; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToValueOperator; /** * Computes the weakly connected components of a graph structure. Uses the gradoop wrapper * {@link ValueWeaklyConnectedComponents} of Flinks ConnectedComponents. *

* Returns a mapping of {@code VertexId -> ComponentId} + * + * @param The graph head type. + * @param The vertex type. + * @param The edge type. + * @param The type of the graph. + * @param The type of the graph collection. */ -public class ConnectedComponentsDistributionAsValues - implements UnaryGraphToValueOperator>> { +public class ConnectedComponentsDistributionAsValues< + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + implements UnaryBaseGraphToValueOperator>> { /** * Max iterations. @@ -45,7 +60,7 @@ public ConnectedComponentsDistributionAsValues(int maxiIteration) { } @Override - public DataSet> execute(LogicalGraph graph) { - return new ValueWeaklyConnectedComponents(maxIteration).execute(graph); + public DataSet> execute(LG graph) { + return new ValueWeaklyConnectedComponents(maxIteration).execute(graph); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java index e87ca45fd7b0..9cae35fbbfc3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/statistics/functions/GetConnectedComponentDistributionFlatMap.java @@ -18,7 +18,7 @@ import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.tuple.Tuple3; import org.apache.flink.util.Collector; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; +import org.gradoop.common.model.api.entities.GraphHead; import org.gradoop.common.model.impl.properties.PropertyValue; import java.util.ArrayList; @@ -31,9 +31,11 @@ /** * Collects the aggregated component ids from vertices and edges. Extracts the distribution for * vertices and edges over this components. + * + * @param Graph head type */ -public class GetConnectedComponentDistributionFlatMap implements - FlatMapFunction> { +public class GetConnectedComponentDistributionFlatMap + implements FlatMapFunction> { /** * Property key to store the component id. @@ -57,7 +59,7 @@ public GetConnectedComponentDistributionFlatMap(String propertyKey, boolean anno } @Override - public void flatMap(EPGMGraphHead graphHead, Collector> out) { + public void flatMap(G graphHead, Collector> out) { List vertexWcc = graphHead.getPropertyValue( new AggregateListOfWccVertices(propertyKey).getAggregatePropertyKey()).getList() .stream().map(PropertyValue::getString) diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java index a888f47d2b99..0debba732e31 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyClusteringCoefficientTestBase.java @@ -15,7 +15,12 @@ */ package org.gradoop.flink.algorithms.gelly.clusteringcoefficient; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.flink.model.GradoopFlinkTestBase; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.epgm.LogicalGraph; import org.gradoop.flink.util.FlinkAsciiGraphLoader; import org.junit.Before; @@ -73,7 +78,13 @@ public void initGraphs() { * * @return The clustering coefficient algorithm wrapper */ - public abstract ClusteringCoefficientBase getCCAlgorithm(); + public abstract < + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + ClusteringCoefficientBase getCCAlgorithm(); /** * Checks if clustering coefficient properties are written diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java index bd5c96f26d56..ca7eeebf4ac8 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientDirectedTest.java @@ -15,7 +15,12 @@ */ package org.gradoop.flink.algorithms.gelly.clusteringcoefficient; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.pojo.EPGMGraphHead; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.epgm.LogicalGraph; import static org.junit.Assert.assertEquals; @@ -28,8 +33,14 @@ public class GellyGlobalClusteringCoefficientDirectedTest extends GellyClusteringCoefficientTestBase { @Override - public ClusteringCoefficientBase getCCAlgorithm() { - return new GellyGlobalClusteringCoefficientDirected(); + public < + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + ClusteringCoefficientBase getCCAlgorithm() { + return new GellyGlobalClusteringCoefficientDirected<>(); } @Override diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java index 08074783f199..02e097c9d8e3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyGlobalClusteringCoefficientUndirectedTest.java @@ -15,7 +15,12 @@ */ package org.gradoop.flink.algorithms.gelly.clusteringcoefficient; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.pojo.EPGMGraphHead; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.epgm.LogicalGraph; import static org.junit.Assert.assertEquals; @@ -28,8 +33,14 @@ public class GellyGlobalClusteringCoefficientUndirectedTest extends GellyClusteringCoefficientTestBase { @Override - public ClusteringCoefficientBase getCCAlgorithm() { - return new GellyGlobalClusteringCoefficientUndirected(); + public < + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + ClusteringCoefficientBase getCCAlgorithm() { + return new GellyGlobalClusteringCoefficientUndirected<>(); } @Override diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java index 1c05245b4e99..87292094001e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientDirectedTest.java @@ -15,7 +15,12 @@ */ package org.gradoop.flink.algorithms.gelly.clusteringcoefficient; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.epgm.LogicalGraph; import java.util.List; @@ -30,8 +35,14 @@ public class GellyLocalClusteringCoefficientDirectedTest extends GellyClusteringCoefficientTestBase { @Override - public ClusteringCoefficientBase getCCAlgorithm() { - return new GellyLocalClusteringCoefficientDirected(); + public < + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + ClusteringCoefficientBase getCCAlgorithm() { + return new GellyLocalClusteringCoefficientDirected<>(); } @Override diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java index 154563c85cea..77f46970b69f 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/clusteringcoefficient/GellyLocalClusteringCoefficientUndirectedTest.java @@ -15,7 +15,12 @@ */ package org.gradoop.flink.algorithms.gelly.clusteringcoefficient; +import org.gradoop.common.model.api.entities.Edge; +import org.gradoop.common.model.api.entities.GraphHead; +import org.gradoop.common.model.api.entities.Vertex; import org.gradoop.common.model.impl.pojo.EPGMVertex; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; import org.gradoop.flink.model.impl.epgm.LogicalGraph; import java.util.List; @@ -30,8 +35,14 @@ public class GellyLocalClusteringCoefficientUndirectedTest extends GellyClusteringCoefficientTestBase { @Override - public ClusteringCoefficientBase getCCAlgorithm() { - return new GellyLocalClusteringCoefficientUndirected(); + public < + G extends GraphHead, + V extends Vertex, + E extends Edge, + LG extends BaseGraph, + GC extends BaseGraphCollection> + ClusteringCoefficientBase getCCAlgorithm() { + return new GellyLocalClusteringCoefficientUndirected<>(); } @Override diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java index 69343db6f0d7..90b999910f29 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/connectedcomponents/WeaklyConnectedComponentsAsCollectionTest.java @@ -41,7 +41,7 @@ public void testByElementIds() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString(graph); LogicalGraph input = loader.getLogicalGraphByVariable("input"); GraphCollection result = input - .callForCollection(new WeaklyConnectedComponentsAsCollection(propertyKey, 10)); + .callForCollection(new WeaklyConnectedComponentsAsCollection<>(propertyKey, 10)); GraphCollection components = input.splitBy("component"); collectAndAssertTrue(result.equalsByGraphElementIds(components)); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java index 4a91305f6682..f8092cc61d0b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/hits/HITSTest.java @@ -36,7 +36,7 @@ public void minimalHITSTest() throws Exception { .getLogicalGraphByVariable("input"); LogicalGraph expectedResult = getLoaderFromString(expectedResultString) .getLogicalGraphByVariable("input"); - LogicalGraph result = input.callForGraph(new HITS("aScore", "hScore", 1)); + LogicalGraph result = input.callForGraph(new HITS<>("aScore", "hScore", 1)); collectAndAssertTrue(result.equalsByData(expectedResult)); } diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java index a19217c98581..f89edbd7636e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/labelpropagation/GradoopLabelPropagationTest.java @@ -79,7 +79,7 @@ public void testByElementData() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString(graph); LogicalGraph outputGraph = loader.getLogicalGraphByVariable("input") - .callForGraph(new GradoopLabelPropagation(10, "value")); + .callForGraph(new GradoopLabelPropagation<>(10, "value")); collectAndAssertTrue(outputGraph.equalsByData( loader.getLogicalGraphByVariable("result"))); @@ -141,7 +141,7 @@ public void testByElementIds() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString(graph); LogicalGraph outputGraph = loader.getLogicalGraphByVariable("input") - .callForGraph(new GradoopLabelPropagation(10, "value")); + .callForGraph(new GradoopLabelPropagation<>(10, "value")); collectAndAssertTrue(outputGraph.equalsByElementIds( loader.getLogicalGraphByVariable("result"))); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java index 390f197deec8..6eda6675f455 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/pagerank/PageRankTest.java @@ -69,8 +69,8 @@ public void prepareTestGraph() { */ @Test public void testPageRankWithoutZeroDegrees() throws Exception { - LogicalGraph resultGraph = new PageRank(propertyKey, 0.3, 20) - .execute(testGraph); + LogicalGraph resultGraph = testGraph + .callForGraph(new PageRank<>(propertyKey, 0.3, 20)); checkPageRankProperty(resultGraph); assertEquals(resultGraph.getVertices().count(), 3L); } @@ -82,8 +82,8 @@ public void testPageRankWithoutZeroDegrees() throws Exception { */ @Test public void testPageRankWithZeroDegrees() throws Exception { - LogicalGraph resultGraph = new PageRank(propertyKey, 0.3, 20, true) - .execute(testGraph); + LogicalGraph resultGraph = testGraph + .callForGraph(new PageRank<>(propertyKey, 0.3, 20, true)); checkPageRankProperty(resultGraph); assertEquals(resultGraph.getVertices().count(), testGraph.getVertices().count()); } diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java index 56780e0fc03a..250eee673a7a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/randomjump/KRandomJumpGellyVCITest.java @@ -69,8 +69,8 @@ public void initGraphs() throws Exception { */ @Test public void baseTest() throws Exception { - LogicalGraph result = new KRandomJumpGellyVCI(1, 1000, 0.15, - 0.5).execute(socialGraph); + LogicalGraph result = socialGraph.callForGraph( + new KRandomJumpGellyVCI<>(1, 1000, 0.15, 0.5)); commonValidation(socialGraph, result); @@ -86,8 +86,8 @@ public void baseTest() throws Exception { */ @Test public void base3StartVerticesTest() throws Exception { - LogicalGraph result = new KRandomJumpGellyVCI(3, 1000, 0.15, - 0.5).execute(socialGraph); + LogicalGraph result = socialGraph.callForGraph( + new KRandomJumpGellyVCI<>(3, 1000, 0.15, 0.5)); commonValidation(socialGraph, result); @@ -103,8 +103,8 @@ public void base3StartVerticesTest() throws Exception { */ @Test public void visitAllTest() throws Exception { - LogicalGraph result = new KRandomJumpGellyVCI(1, 1000, 0.15, - 1.0).execute(socialGraph); + LogicalGraph result = socialGraph.callForGraph( + new KRandomJumpGellyVCI<>(1, 1000, 0.15, 1.0)); commonValidation(socialGraph, result); @@ -118,8 +118,8 @@ public void visitAllTest() throws Exception { */ @Test public void visitAll3StartVerticesTest() throws Exception { - LogicalGraph result = new KRandomJumpGellyVCI(3, 1000, 0.15, - 1.0).execute(socialGraph); + LogicalGraph result = socialGraph.callForGraph( + new KRandomJumpGellyVCI<>(3, 1000, 0.15, 1.0)); commonValidation(socialGraph, result); @@ -133,8 +133,8 @@ public void visitAll3StartVerticesTest() throws Exception { */ @Test public void visitAllJumpsOnlyTest() throws Exception { - LogicalGraph result = new KRandomJumpGellyVCI(1, 1000, 0.15, - 1.0).execute(customGraph); + LogicalGraph result = customGraph.callForGraph( + new KRandomJumpGellyVCI<>(1, 1000, 0.15, 1.0)); commonValidation(customGraph, result); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java index b85972de3c31..f090074bd342 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/shortestpaths/SingleSourceShortestPathsTest.java @@ -90,7 +90,7 @@ public void testByData() throws Exception { EPGMVertex srcVertexDouble = loaderDouble.getVertexByVariable("v0"); GradoopId srcVertexIdDouble = srcVertexDouble.getId(); - LogicalGraph outputGraphDouble = inputDouble.callForGraph(new SingleSourceShortestPaths(srcVertexIdDouble, + LogicalGraph outputGraphDouble = inputDouble.callForGraph(new SingleSourceShortestPaths<>(srcVertexIdDouble, "edgeValue", 10, "vertexValue")); LogicalGraph expectDouble = loaderDouble.getLogicalGraphByVariable("result"); @@ -102,7 +102,7 @@ public void testByData() throws Exception { EPGMVertex srcVertex = loader.getVertexByVariable("v0"); GradoopId srcVertexId = srcVertex.getId(); - LogicalGraph outputGraph = input.callForGraph(new SingleSourceShortestPaths(srcVertexId, + LogicalGraph outputGraph = input.callForGraph(new SingleSourceShortestPaths<>(srcVertexId, "edgeValue", 10, "vertexValue")); LogicalGraph expect = loader.getLogicalGraphByVariable("result"); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java index 1bc5b8bdda0f..f340e68408da 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/trianglecounting/GellyTriangleCountingTest.java @@ -87,9 +87,9 @@ public void testTriangleCounting() throws Exception { LogicalGraph trianglesDirectedGraph = loader.getLogicalGraphByVariable("trianglesDirected"); LogicalGraph trianglesUndirectedGraph = loader.getLogicalGraphByVariable("trianglesUndirected"); - tripletGraph = tripletGraph.callForGraph(new GellyTriangleCounting()); - trianglesDirectedGraph = trianglesDirectedGraph.callForGraph(new GellyTriangleCounting()); - trianglesUndirectedGraph = trianglesUndirectedGraph.callForGraph(new GellyTriangleCounting()); + tripletGraph = tripletGraph.callForGraph(new GellyTriangleCounting<>()); + trianglesDirectedGraph = trianglesDirectedGraph.callForGraph(new GellyTriangleCounting<>()); + trianglesUndirectedGraph = trianglesUndirectedGraph.callForGraph(new GellyTriangleCounting<>()); assertEquals("Wrong number of triangles for triplet, should be 0L", 0L, tripletGraph.getGraphHead().collect().get(0).getPropertyValue( @@ -104,7 +104,7 @@ public void testTriangleCounting() throws Exception { GellyTriangleCounting.PROPERTY_KEY_TRIANGLES).getLong()); LogicalGraph socialGraph = getSocialNetworkLoader().getLogicalGraph(); - socialGraph = socialGraph.callForGraph(new GellyTriangleCounting()); + socialGraph = socialGraph.callForGraph(new GellyTriangleCounting<>()); assertEquals("Wrong number of triangles for social graph, should be 8L", 8L, socialGraph.getGraphHead().collect().get(0).getPropertyValue( diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java index 2853291205c3..5c198ba75f75 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/gelly/vertexdegrees/DistinctVertexDegreesTest.java @@ -51,8 +51,8 @@ public void testByElementData() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString(graph); LogicalGraph input = loader.getLogicalGraphByVariable("input"); - LogicalGraph outputGraph = - input.callForGraph(new DistinctVertexDegrees("degree", "inDegree", "outDegree", false)); + LogicalGraph outputGraph = input.callForGraph(new DistinctVertexDegrees<>( + "degree", "inDegree", "outDegree", false)); LogicalGraph expect = loader.getLogicalGraphByVariable("result"); collectAndAssertTrue(outputGraph.equalsByData(expect)); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java index bd8ba69a850f..aeba741f1a6a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/csv/CSVDataSinkTest.java @@ -20,11 +20,11 @@ import org.apache.flink.api.java.tuple.Tuple3; import org.apache.hadoop.conf.Configuration; import org.gradoop.common.GradoopTestUtils; -import org.gradoop.common.model.impl.pojo.EPGMGraphHead; -import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.pojo.EPGMEdge; import org.gradoop.common.model.impl.pojo.EPGMEdgeFactory; +import org.gradoop.common.model.impl.pojo.EPGMGraphHead; import org.gradoop.common.model.impl.pojo.EPGMGraphHeadFactory; +import org.gradoop.common.model.impl.pojo.EPGMVertex; import org.gradoop.common.model.impl.pojo.EPGMVertexFactory; import org.gradoop.common.model.impl.properties.Properties; import org.gradoop.common.model.impl.properties.PropertyValue; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java index e560512f23f8..22bea469343d 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/RandomLimitedDegreeVertexSamplingTest.java @@ -54,11 +54,11 @@ public SamplingAlgorithm getSamplingOperator() { @Override public void validateSpecific(LogicalGraph input, LogicalGraph output) throws Exception { List dbDegreeVertices = Lists.newArrayList(); - LogicalGraph inputWithDegrees = new DistinctVertexDegrees( + LogicalGraph inputWithDegrees = input.callForGraph(new DistinctVertexDegrees<>( VertexDegree.BOTH.getName(), VertexDegree.IN.getName(), VertexDegree.OUT.getName(), - true).execute(input); + true)); inputWithDegrees.getVertices().output(new LocalCollectionOutputFormat<>(dbDegreeVertices)); getExecutionEnvironment().execute(); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java index 6afa5d33d110..919d5b90562b 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/AverageClusteringCoefficientTest.java @@ -79,7 +79,7 @@ public void initGraphs() { public void testFullyConnectedGraph() throws Exception { LogicalGraph graph = loader.getLogicalGraphByVariable("clique"); - LogicalGraph result = graph.callForGraph(new AverageClusteringCoefficient()); + LogicalGraph result = graph.callForGraph(new AverageClusteringCoefficient<>()); validateGraphProperties(result); EPGMGraphHead head = result.getGraphHead().collect().get(0); @@ -96,7 +96,7 @@ public void testFullyConnectedGraph() throws Exception { public void testNonConnectedGraph() throws Exception { LogicalGraph graph = loader.getLogicalGraphByVariable("nonConnected"); - LogicalGraph result = graph.callForGraph(new AverageClusteringCoefficient()); + LogicalGraph result = graph.callForGraph(new AverageClusteringCoefficient<>()); validateGraphProperties(result); EPGMGraphHead head = result.getGraphHead().collect().get(0); @@ -114,7 +114,7 @@ public void testNonConnectedGraph() throws Exception { public void testHalfConnectedGraph() throws Exception { LogicalGraph graph = loader.getLogicalGraphByVariable("halfConnected"); - LogicalGraph result = graph.callForGraph(new AverageClusteringCoefficient()); + LogicalGraph result = graph.callForGraph(new AverageClusteringCoefficient<>()); validateGraphProperties(result); EPGMGraphHead head = result.getGraphHead().collect().get(0); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java index 8a3742f56f7e..e8ec8ab4e303 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ConnectedComponentsDistributionTest.java @@ -114,8 +114,8 @@ public void testComponentDistribution() throws Exception { "]"; LogicalGraph graph = getLoaderFromString(graphString).getLogicalGraphByVariable("g"); - DataSet> componentDist = new ConnectedComponentsDistribution( - propertyKey, maxIterations, annotateEdges).execute(graph); + DataSet> componentDist = graph.callForValue( + new ConnectedComponentsDistribution<>(propertyKey, maxIterations, annotateEdges)); List> componentDistList = Lists.newArrayList(); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java index c7e1429eb03d..74ddf8a150ad 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/sampling/statistics/ValueConnectedComponentsTest.java @@ -84,8 +84,8 @@ public void testValueConnectedComponents() throws Exception { LogicalGraph graph = loader.getLogicalGraphByVariable("g"); // execute Gelly ConnectedComponents. - DataSet> cComponents = - new ConnectedComponentsDistributionAsValues(Integer.MAX_VALUE).execute(graph); + DataSet> cComponents = graph.callForValue( + new ConnectedComponentsDistributionAsValues<>(Integer.MAX_VALUE)); List> vertexComponentList = new ArrayList<>(); cComponents.output(new LocalCollectionOutputFormat<>(vertexComponentList)); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java index 162f924bd27e..5793907cdd36 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java @@ -65,7 +65,7 @@ public void testSplit() throws Exception { LogicalGraph input = loader.getLogicalGraphByVariable("input"); GraphCollection result = - input.callForCollection(new Split(SplitTest::getSplitValues)); + input.callForCollection(new Split<>(SplitTest::getSplitValues)); collectAndAssertTrue(result.equalsByGraphElementIds( loader.getGraphCollectionByVariables("graph1", "graph2"))); @@ -102,7 +102,7 @@ public void testSplit2() throws Exception { LogicalGraph input = loader.getLogicalGraphByVariable("input"); GraphCollection result = input - .callForCollection(new Split(SplitTest::getSplitValues)); + .callForCollection(new Split<>(SplitTest::getSplitValues)); GraphCollection expectation = loader.getGraphCollectionByVariables( "graph1", "graph2", "graph3"); @@ -137,7 +137,7 @@ public void testSplitWithMultipleKeys() throws Exception { LogicalGraph input = loader.getLogicalGraphByVariable("input"); GraphCollection result = input - .callForCollection(new Split(SplitTest::getSplitValues)); + .callForCollection(new Split<>(SplitTest::getSplitValues)); collectAndAssertTrue(result.equalsByGraphElementIds( loader.getGraphCollectionByVariables("graph1", "graph2"))); From ba108f019c741abd3d513b36b2fabcf6620b2bcd Mon Sep 17 00:00:00 2001 From: Timo <24251362+timo95@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:53:52 +0100 Subject: [PATCH 13/19] [#1487] Fix CAM for Windows, add gitattributes and add Windows CI (#1512) fixes #1487 --- .gitattributes | 10 ++++++++ .github/workflows/maven.yml | 25 ++++++++++++++++--- README.md | 10 +++++++- .../CanonicalAdjacencyMatrixBuilder.java | 5 ++++ .../tostring/functions/AdjacencyMatrix.java | 9 ++++--- .../functions/ConcatGraphHeadStrings.java | 8 +++--- .../functions/IncomingAdjacencyList.java | 7 +++--- .../functions/OutgoingAdjacencyList.java | 9 ++++--- .../functions/UndirectedAdjacencyList.java | 7 +++--- 9 files changed, 69 insertions(+), 21 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000000..433fe25eab26 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ + +# Checkout all text files with LF line endings regardless of git config. Needed for: +# - Checkstyle (all source code) +# - gradoop-flink cam tests (resources/data/expected) +# - gradoop-temporal cam tests (resources/data/expected) +* text=auto eol=lf + +# Denote all binary files that aren't correctly auto detected. Example: +#*.png binary +#*.jpg binary diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 68d31f15c273..2458a6e77b3d 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -8,14 +8,33 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v1 + - name: Set up Hadoop winutils (Windows) + if: matrix.os == 'windows-latest' + run: | + mkdir C:\winutils + cd C:\winutils + git init + git remote add origin https://github.com/cdarlint/winutils + git config core.sparseCheckout true + echo "hadoop-3.2.1" > .git\info\sparse-checkout + git pull origin master + echo "HADOOP_HOME=C:\winutils\hadoop-3.2.1" >> $env:GITHUB_ENV + echo "PATH=$env:PATH;$env:HADOOP_HOME\bin" >> $env:GITHUB_ENV - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: 1.8 - name: Build with Maven run: | - mvn clean install -DskipTests - mvn clean verify + mvn clean install -DskipTests --no-transfer-progress -DtrimStackTrace=false + - name: Test with Maven + if: matrix.os != 'windows-latest' + run: | + mvn verify --no-transfer-progress -DtrimStackTrace=false + - name: Test with Maven (Windows) + if: matrix.os == 'windows-latest' + run: | + mvn verify -pl !:gradoop-hbase,!:gradoop-accumulo --no-transfer-progress -DtrimStackTrace=false diff --git a/README.md b/README.md index cbed3d6c62e5..096e2980db7d 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,15 @@ In any case you also need Apache Flink (version 1.7.2): > cd gradoop > mvn clean install - + +* You might want to skip tests for faster builds. Also, some tests fail on Windows due to missing test dependencies + + > mvn clean install -DskipTests + +### Windows + +* Some operators require the Hadoop winutils + ## Gradoop modules ### gradoop-common diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java index 398773127370..f1a402b463c8 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/CanonicalAdjacencyMatrixBuilder.java @@ -58,6 +58,11 @@ public class CanonicalAdjacencyMatrixBuilder< GC extends BaseGraphCollection> implements UnaryBaseGraphCollectionToValueOperator> { + /** + * Character used to separate lines. Should be the same regardless of OS. + */ + public static final Character LINE_SEPARATOR = '\n'; + /** * function describing string representation of graph heads */ diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java index f4dda1a29214..d4cd6c290253 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/AdjacencyMatrix.java @@ -18,19 +18,20 @@ import org.apache.commons.lang3.StringUtils; import org.apache.flink.api.common.functions.GroupReduceFunction; import org.apache.flink.util.Collector; -import org.gradoop.flink.model.impl.operators.tostring.tuples.GraphHeadString; import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.flink.model.impl.operators.tostring.tuples.GraphHeadString; import org.gradoop.flink.model.impl.operators.tostring.tuples.VertexString; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import static org.gradoop.flink.model.impl.operators.tostring.CanonicalAdjacencyMatrixBuilder.LINE_SEPARATOR; + /** * creates a string representation of an adjacency matrix */ -public class AdjacencyMatrix implements - GroupReduceFunction { +public class AdjacencyMatrix implements GroupReduceFunction { @Override public void reduce(Iterable vertexLabels, @@ -47,7 +48,7 @@ public void reduce(Iterable vertexLabels, first = false; } - matrixRows.add("\n " + vertexString.getLabel()); + matrixRows.add(LINE_SEPARATOR + " " + vertexString.getLabel()); } Collections.sort(matrixRows); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java index 369660726700..bc9a3ba20915 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/ConcatGraphHeadStrings.java @@ -24,6 +24,8 @@ import java.util.Collections; import java.util.List; +import static org.gradoop.flink.model.impl.operators.tostring.CanonicalAdjacencyMatrixBuilder.LINE_SEPARATOR; + /** * concatenates the sorted string representations of graph heads to represent a * collection @@ -33,19 +35,19 @@ public class ConcatGraphHeadStrings @Override public void reduce(Iterable graphHeadLabels, - Collector collector) throws Exception { + Collector collector) throws Exception { List graphLabels = new ArrayList<>(); for (GraphHeadString graphHeadString : graphHeadLabels) { String graphLabel = graphHeadString.getLabel(); - if (! graphLabel.equals("")) { + if (!graphLabel.equals("")) { graphLabels.add(graphLabel); } } Collections.sort(graphLabels); - collector.collect(StringUtils.join(graphLabels, System.lineSeparator())); + collector.collect(StringUtils.join(graphLabels, LINE_SEPARATOR)); } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java index 324a3436b723..563addaa5280 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/IncomingAdjacencyList.java @@ -26,11 +26,12 @@ import java.util.Collections; import java.util.List; +import static org.gradoop.flink.model.impl.operators.tostring.CanonicalAdjacencyMatrixBuilder.LINE_SEPARATOR; + /** * generates a string representation fo an incoming adjacency list */ -public class IncomingAdjacencyList - implements GroupReduceFunction { +public class IncomingAdjacencyList implements GroupReduceFunction { @Override public void reduce(Iterable outgoingEdgeLabels, @@ -49,7 +50,7 @@ public void reduce(Iterable outgoingEdgeLabels, first = false; } - adjacencyListEntries.add("\n <-" + edgeString.getEdgeLabel() + "-" + + adjacencyListEntries.add(LINE_SEPARATOR + " <-" + edgeString.getEdgeLabel() + "-" + edgeString.getSourceLabel()); } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java index 1d5fdbac3575..1c031c384092 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/OutgoingAdjacencyList.java @@ -18,19 +18,20 @@ import org.apache.commons.lang3.StringUtils; import org.apache.flink.api.common.functions.GroupReduceFunction; import org.apache.flink.util.Collector; -import org.gradoop.flink.model.impl.operators.tostring.tuples.EdgeString; import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.flink.model.impl.operators.tostring.tuples.EdgeString; import org.gradoop.flink.model.impl.operators.tostring.tuples.VertexString; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import static org.gradoop.flink.model.impl.operators.tostring.CanonicalAdjacencyMatrixBuilder.LINE_SEPARATOR; + /** * generates a string representation fo an outgoing adjacency list */ -public class OutgoingAdjacencyList - implements GroupReduceFunction { +public class OutgoingAdjacencyList implements GroupReduceFunction { @Override public void reduce(Iterable outgoingEdgeLabels, @@ -49,7 +50,7 @@ public void reduce(Iterable outgoingEdgeLabels, first = false; } - adjacencyListEntries.add("\n -" + edgeString.getEdgeLabel() + "->" + + adjacencyListEntries.add(LINE_SEPARATOR + " -" + edgeString.getEdgeLabel() + "->" + edgeString.getTargetLabel()); } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java index b9110d40cd99..5b0721458ced 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/tostring/functions/UndirectedAdjacencyList.java @@ -26,11 +26,12 @@ import java.util.Collections; import java.util.List; +import static org.gradoop.flink.model.impl.operators.tostring.CanonicalAdjacencyMatrixBuilder.LINE_SEPARATOR; + /** * generates a string representation fo an outgoing adjacency list */ -public class UndirectedAdjacencyList implements - GroupReduceFunction { +public class UndirectedAdjacencyList implements GroupReduceFunction { @Override public void reduce(Iterable outgoingEdgeLabels, @@ -49,7 +50,7 @@ public void reduce(Iterable outgoingEdgeLabels, first = false; } - adjacencyListEntries.add("\n -" + edgeString.getEdgeLabel() + "-" + + adjacencyListEntries.add(LINE_SEPARATOR + " -" + edgeString.getEdgeLabel() + "-" + edgeString.getTargetLabel()); } From f848a405095b3478976ed170bf215d305ca569b2 Mon Sep 17 00:00:00 2001 From: Christopher Rost <18614530+ChrizZz110@users.noreply.github.com> Date: Thu, 4 Mar 2021 16:25:17 +0100 Subject: [PATCH 14/19] [#1521] Changed interface of duration and interval key function (#1522) fixes #1521 --- .../keyedgrouping/TemporalGroupingKeys.java | 5 ++--- .../keyedgrouping/keys/DurationKeyFunction.java | 12 ++++++++++-- .../keyedgrouping/keys/TimeIntervalKeyFunction.java | 9 +++++++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java index 4b5ebf1c2931..75897a108270 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/TemporalGroupingKeys.java @@ -16,7 +16,6 @@ package org.gradoop.temporal.model.impl.operators.keyedgrouping; import org.apache.flink.api.java.tuple.Tuple2; -import org.gradoop.flink.model.api.functions.KeyFunction; import org.gradoop.flink.model.api.functions.KeyFunctionWithDefaultValue; import org.gradoop.temporal.model.api.TimeDimension; import org.gradoop.temporal.model.impl.operators.keyedgrouping.keys.DurationKeyFunction; @@ -47,7 +46,7 @@ private TemporalGroupingKeys() { * @return The grouping key function extracting the duration. * @see DurationKeyFunction */ - public static KeyFunction duration( + public static KeyFunctionWithDefaultValue duration( TimeDimension interval, TemporalUnit timeUnit) { return new DurationKeyFunction<>(interval, timeUnit); } @@ -60,7 +59,7 @@ public static KeyFunction duration( * @return The grouping key function extracting a time interval. * @see TimeIntervalKeyFunction */ - public static KeyFunction> timeInterval( + public static KeyFunctionWithDefaultValue> timeInterval( TimeDimension interval) { return new TimeIntervalKeyFunction<>(interval); } diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java index 98fd222bb81b..5b97414a0bca 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/DurationKeyFunction.java @@ -19,7 +19,7 @@ import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.java.tuple.Tuple2; import org.gradoop.common.model.impl.properties.PropertyValue; -import org.gradoop.flink.model.api.functions.KeyFunction; +import org.gradoop.flink.model.api.functions.KeyFunctionWithDefaultValue; import org.gradoop.temporal.model.api.TimeDimension; import org.gradoop.temporal.model.impl.pojo.TemporalElement; @@ -42,7 +42,7 @@ * * @param The type of the temporal elements. */ -public class DurationKeyFunction implements KeyFunction { +public class DurationKeyFunction implements KeyFunctionWithDefaultValue { /** * A key function used to extract the interval from the element. @@ -88,6 +88,11 @@ public Long getKey(T element) { } } + @Override + public Long getDefaultKey() { + return -1L; + } + @Override public TypeInformation getType() { return BasicTypeInfo.LONG_TYPE_INFO; @@ -98,6 +103,9 @@ public void addKeyToElement(T element, Object key) { if (!(key instanceof Long)) { throw new IllegalArgumentException("Invalid type for key: " + key.getClass().getSimpleName()); } + if (getDefaultKey().equals(key)) { + return; + } element.setProperty("duration_" + intervalExtractor + "_" + timeUnit, PropertyValue.create(key)); } } diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java index 10b00bd04d07..092e58130fb0 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/keyedgrouping/keys/TimeIntervalKeyFunction.java @@ -18,7 +18,7 @@ import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.api.java.typeutils.TupleTypeInfo; -import org.gradoop.flink.model.api.functions.KeyFunction; +import org.gradoop.flink.model.api.functions.KeyFunctionWithDefaultValue; import org.gradoop.temporal.model.api.TimeDimension; import org.gradoop.temporal.model.impl.pojo.TemporalElement; @@ -30,7 +30,7 @@ * @param The type of the temporal elements. */ public class TimeIntervalKeyFunction - implements KeyFunction> { + implements KeyFunctionWithDefaultValue> { /** * The time dimension to extract from. @@ -59,6 +59,11 @@ public Tuple2 getKey(T element) { } } + @Override + public Tuple2 getDefaultKey() { + return new Tuple2<>(Long.MIN_VALUE, Long.MAX_VALUE); + } + @Override public void addKeyToElement(T element, Object key) { if (key instanceof Tuple2) { From fe026fc6899dc947f59486986a4cd05f63a566b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20G=C3=B3mez?= Date: Mon, 15 Mar 2021 14:03:29 +0100 Subject: [PATCH 15/19] [#1527] updated poms to use gradoop-gdl (#1528) * [#1527] updated poms to use gradoop-gdl * updated few gdl files to avoid multiple property definitions * removed old gdl dependency from notice and notice binary file closes #1527 --- NOTICE | 1 - NOTICE-binary | 1 - gradoop-common/pom.xml | 4 +- .../gradoop/common/util/AsciiGraphLoader.java | 24 +++--- .../transformation/ConnectNeighborsTest.java | 12 +-- .../gradoop-examples-operators/pom.xml | 2 +- .../gradoop-examples-temporal/pom.xml | 2 +- .../functions/BuildIdWithCandidates.java | 2 +- .../functions/BuildTripleWithCandidates.java | 2 +- .../common/functions/MatchingEdges.java | 2 +- .../common/functions/MatchingTriples.java | 2 +- .../common/functions/MatchingVertices.java | 2 +- .../common/matching/ElementMatcher.java | 2 +- .../matching/common/query/DFSTraverser.java | 2 +- .../matching/common/query/GraphMetrics.java | 2 +- .../matching/common/query/QueryHandler.java | 11 +-- .../matching/common/query/Triple.java | 4 +- .../query/predicates/QueryComparable.java | 8 +- .../query/predicates/QueryPredicate.java | 12 +-- .../predicates/booleans/AndPredicate.java | 4 +- .../predicates/booleans/NotPredicate.java | 16 ++-- .../predicates/booleans/OrPredicate.java | 2 +- .../predicates/booleans/XorPredicate.java | 12 +-- .../ElementSelectorComparable.java | 4 +- .../comparables/LiteralComparable.java | 2 +- .../PropertySelectorComparable.java | 2 +- .../expressions/ComparisonExpression.java | 4 +- .../planning/estimation/JoinEstimator.java | 2 +- .../planner/greedy/GreedyPlanner.java | 6 +- .../dual/functions/ValidateNeighborhood.java | 2 +- .../algorithm/DepthSearchMatching.java | 4 +- .../BuildIdWithCandidatesAndGraphs.java | 2 +- .../BuildTripleWithCandidatesAndGraphs.java | 2 +- .../basic/BasicPatternsData.java | 46 +++++----- .../flink/io/impl/tlf/TLFDataSourceTest.java | 6 +- .../DistinctByIsomorphismTestBase.java | 8 +- .../impl/operators/equality/EqualityTest.java | 2 +- .../operators/fusion/VertexFusionTest.java | 86 +++++++++---------- .../functions/ElementsFromEmbeddingTest.java | 4 +- .../common/query/GraphMetricsTest.java | 2 +- .../common/query/QueryHandlerTest.java | 10 +-- .../matching/common/query/TripleTest.java | 4 +- .../predicates/booleans/AndPredicateTest.java | 8 +- .../predicates/booleans/NotPredicateTest.java | 18 ++-- .../predicates/booleans/OrPredicateTest.java | 8 +- .../predicates/booleans/XorPredicateTest.java | 14 +-- .../ElementSelectorComparableTest.java | 2 +- .../compareables/LiteralComparableTest.java | 2 +- .../PropertySelectorComparableTest.java | 2 +- .../expressions/ComparisonExpressionTest.java | 6 +- .../model/impl/operators/split/SplitTest.java | 8 +- .../impl/operators/verify/VerifyTest.java | 6 +- .../expected/expected_graph_collection.gdl | 2 +- .../data/edgelist/vertexlabeled/expected.gdl | 8 +- .../resources/archetype-resources/pom.xml | 2 +- gradoop-store/gradoop-hbase/pom.xml | 5 -- .../equality/TemporalEqualityTest.java | 2 +- pom.xml | 8 +- 58 files changed, 208 insertions(+), 222 deletions(-) diff --git a/NOTICE b/NOTICE index 03ae26d58082..91a850033089 100644 --- a/NOTICE +++ b/NOTICE @@ -6,7 +6,6 @@ The Apache Software Foundation (http://www.apache.org/). This project bundles the following dependencies under the Apache Software License 2.0. (http://www.apache.org/licenses/LICENSE-2.0.txt) -- com.github.s1ck:gdl:0.3 - commons-cli:commons-cli:1.4 - log4j:log4j:1.2.17 - me.lemire.integercompression:JavaFastPFOR:0.1.10 diff --git a/NOTICE-binary b/NOTICE-binary index bf64ab303788..5106fe33991b 100644 --- a/NOTICE-binary +++ b/NOTICE-binary @@ -8,7 +8,6 @@ Copyright 2014-2021 Leipzig University (Database Research Group) This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- com.github.s1ck:gdl:0.3 - com.google.guava:guava:11.0.2 - commons-cli:commons-cli:1.4 - org.apache.commons:commons-lang3:3.11 diff --git a/gradoop-common/pom.xml b/gradoop-common/pom.xml index 4dff67a602ad..877084f9d423 100644 --- a/gradoop-common/pom.xml +++ b/gradoop-common/pom.xml @@ -114,8 +114,8 @@ - com.github.s1ck - gdl + org.gradoop + gradoop-gdl diff --git a/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java b/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java index 63c6f6c4be55..df04ed476ee2 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java +++ b/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java @@ -26,10 +26,10 @@ import org.gradoop.common.model.impl.id.GradoopId; import org.gradoop.common.model.impl.id.GradoopIdSet; import org.gradoop.common.model.impl.properties.Properties; -import org.s1ck.gdl.GDLHandler; -import org.s1ck.gdl.exceptions.BailSyntaxErrorStrategy; -import org.s1ck.gdl.model.Graph; -import org.s1ck.gdl.model.GraphElement; +import org.gradoop.gdl.GDLHandler; +import org.gradoop.gdl.exceptions.BailSyntaxErrorStrategy; +import org.gradoop.gdl.model.Graph; +import org.gradoop.gdl.model.GraphElement; import java.io.IOException; import java.io.InputStream; @@ -456,11 +456,11 @@ private void initGraphHeads() { * Initializes vertices and their cache. */ private void initVertices() { - for (org.s1ck.gdl.model.Vertex v : gdlHandler.getVertices()) { + for (org.gradoop.gdl.model.Vertex v : gdlHandler.getVertices()) { initVertex(v); } - for (Map.Entry e : gdlHandler.getVertexCache().entrySet()) { + for (Map.Entry e : gdlHandler.getVertexCache().entrySet()) { updateVertexCache(e.getKey(), e.getValue()); } } @@ -469,11 +469,11 @@ private void initVertices() { * Initializes edges and their cache. */ private void initEdges() { - for (org.s1ck.gdl.model.Edge e : gdlHandler.getEdges()) { + for (org.gradoop.gdl.model.Edge e : gdlHandler.getEdges()) { initEdge(e); } - for (Map.Entry e : gdlHandler.getEdgeCache().entrySet()) { + for (Map.Entry e : gdlHandler.getEdgeCache().entrySet()) { updateEdgeCache(e.getKey(), e.getValue()); } } @@ -498,7 +498,7 @@ private G initGraphHead(Graph g) { * @param v vertex from GDL Loader * @return vertex */ - private V initVertex(org.s1ck.gdl.model.Vertex v) { + private V initVertex(org.gradoop.gdl.model.Vertex v) { V vertex; if (!vertexIds.containsKey(v.getId())) { vertex = elementFactoryProvider.getVertexFactory().createVertex( @@ -520,7 +520,7 @@ private V initVertex(org.s1ck.gdl.model.Vertex v) { * @param e edge from GDL loader * @return edge */ - private E initEdge(org.s1ck.gdl.model.Edge e) { + private E initEdge(org.gradoop.gdl.model.Edge e) { E edge; if (!edgeIds.containsKey(e.getId())) { edge = elementFactoryProvider.getEdgeFactory().createEdge( @@ -555,7 +555,7 @@ private void updateGraphCache(String variable, Graph g) { * @param variable vertex variable used in GDL script * @param v vertex from GDL loader */ - private void updateVertexCache(String variable, org.s1ck.gdl.model.Vertex v) { + private void updateVertexCache(String variable, org.gradoop.gdl.model.Vertex v) { vertexCache.put(variable, vertices.get(vertexIds.get(v.getId()))); } @@ -565,7 +565,7 @@ private void updateVertexCache(String variable, org.s1ck.gdl.model.Vertex v) { * @param variable edge variable used in the GDL script * @param e edge from GDL loader */ - private void updateEdgeCache(String variable, org.s1ck.gdl.model.Edge e) { + private void updateEdgeCache(String variable, org.gradoop.gdl.model.Edge e) { edgeCache.put(variable, edges.get(edgeIds.get(e.getId()))); } diff --git a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java index 6c007c5bd8d0..41b6f6d6b3c6 100644 --- a/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java +++ b/gradoop-data-integration/src/test/java/org/gradoop/dataintegration/transformation/ConnectNeighborsTest.java @@ -38,15 +38,15 @@ public class ConnectNeighborsTest extends GradoopFlinkTestBase { "expectedIncoming:test [" + "(i)-[:neighbor]->(i2)" + "(i2)-[:neighbor]->(i)" + - "(i:V)-->(c:Center)-->(o:V)" + - "(i2:V)-->(c)-->(o2:V)" + + "(i)-->(c)-->(o)" + + "(i2)-->(c)-->(o2)" + "(:other)-->(c)-->(:other)" + "]" + "expectedOutgoing:test [" + "(o)-[:neighbor]->(o2)" + "(o2)-[:neighbor]->(o)" + - "(i:V)-->(c:Center)-->(o:V)" + - "(i2:V)-->(c)-->(o2:V)" + + "(i)-->(c)-->(o)" + + "(i2)-->(c)-->(o2)" + "(:other)-->(c)-->(:other)" + "]" + "expectedUndirected:test [" + @@ -54,8 +54,8 @@ public class ConnectNeighborsTest extends GradoopFlinkTestBase { "(i2)-[:neighbor]->(i)" + "(o)-[:neighbor]->(o2)" + "(o2)-[:neighbor]->(o)" + - "(i:V)-->(c:Center)-->(o:V)" + - "(i2:V)-->(c)-->(o2:V)" + + "(i)-->(c)-->(o)" + + "(i2)-->(c)-->(o2)" + "(:other)-->(c)-->(:other)" + "]"); diff --git a/gradoop-examples/gradoop-examples-operators/pom.xml b/gradoop-examples/gradoop-examples-operators/pom.xml index 133530238e32..a8dbf94c745e 100644 --- a/gradoop-examples/gradoop-examples-operators/pom.xml +++ b/gradoop-examples/gradoop-examples-operators/pom.xml @@ -85,7 +85,7 @@ org.apache.flink:flink-gelly_2.11 org.apache.flink:flink-java - com.github.s1ck:gdl + org.gradoop:gradoop-gdl org.antlr:antlr4-runtime com.google.guava:* diff --git a/gradoop-examples/gradoop-examples-temporal/pom.xml b/gradoop-examples/gradoop-examples-temporal/pom.xml index 02bf90328b83..d6031320ae47 100644 --- a/gradoop-examples/gradoop-examples-temporal/pom.xml +++ b/gradoop-examples/gradoop-examples-temporal/pom.xml @@ -103,7 +103,7 @@ org.apache.flink:flink-java org.apache.hbase:hbase-common - com.github.s1ck:gdl + org.gradoop:gradoop-gdl org.antlr:antlr4-runtime me.lemire.integercompression:* com.google.guava:* diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java index ef52568c3027..667925a19392 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildIdWithCandidates.java @@ -45,7 +45,7 @@ public class BuildIdWithCandidates extends AbstractBuilder queryVertices; + private transient Collection queryVertices; /** * Number of vertices in the query graph */ diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java index ff4043d80773..c969fae724a0 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/BuildTripleWithCandidates.java @@ -48,7 +48,7 @@ public class BuildTripleWithCandidates /** * Query vertices to match against. */ - private transient Collection queryEdges; + private transient Collection queryEdges; /** * Number of edges in the query graph */ diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java index 4744132907d8..72590aa867a7 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingEdges.java @@ -38,7 +38,7 @@ public class MatchingEdges extends AbstractFilter { /** * Query edges to match against. */ - private transient Collection queryEdges; + private transient Collection queryEdges; /** * Constructor * diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java index 45cfa5304dd5..378bec848446 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingTriples.java @@ -25,7 +25,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.tuples.TripleWithCandidates; import org.gradoop.flink.model.impl.operators.matching.common.tuples.TripleWithSourceEdgeCandidates; -import org.s1ck.gdl.model.Edge; +import org.gradoop.gdl.model.Edge; /** * Takes a vertex-edge pair and the corresponding target vertex as input and evaluates, if the triple matches diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java index 62d7e15ee890..4578f953a883 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/functions/MatchingVertices.java @@ -38,7 +38,7 @@ public class MatchingVertices extends AbstractFilter { /** * Query vertices to match against. */ - private transient Collection queryVertices; + private transient Collection queryVertices; /** * Create new filter. * diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java index f9f4f4c945cc..8f575a86bb9f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/matching/ElementMatcher.java @@ -17,7 +17,7 @@ import com.google.common.collect.Lists; import org.gradoop.common.model.api.entities.Element; -import org.s1ck.gdl.model.GraphElement; +import org.gradoop.gdl.model.GraphElement; import java.util.Collection; import java.util.Iterator; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java index 0849e8f405b9..908a9ebe238a 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/DFSTraverser.java @@ -16,7 +16,7 @@ package org.gradoop.flink.model.impl.operators.matching.common.query; import com.google.common.collect.Sets; -import org.s1ck.gdl.model.Edge; +import org.gradoop.gdl.model.Edge; import java.util.ArrayDeque; import java.util.Deque; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java index 9710d5d162f5..d820ef7be279 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetrics.java @@ -18,7 +18,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.model.Vertex; import java.util.ArrayList; import java.util.Collections; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java index 3baf120cb92f..e4a5aff2e236 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java @@ -21,11 +21,12 @@ import org.gradoop.common.util.GradoopConstants; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; -import org.s1ck.gdl.GDLHandler; -import org.s1ck.gdl.exceptions.BailSyntaxErrorStrategy; -import org.s1ck.gdl.model.Edge; -import org.s1ck.gdl.model.GraphElement; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.GDLHandler; +import org.gradoop.gdl.exceptions.BailSyntaxErrorStrategy; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.GraphElement; +import org.gradoop.gdl.model.Vertex; + import java.util.Collection; import java.util.Collections; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java index f1bae81e84f2..5d6d33266878 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/Triple.java @@ -15,8 +15,8 @@ */ package org.gradoop.flink.model.impl.operators.matching.common.query; -import org.s1ck.gdl.model.Edge; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; import java.util.Objects; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java index 8c63e7a6ce39..d3049947c994 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java @@ -22,10 +22,10 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.PropertySelectorComparable; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; -import org.s1ck.gdl.model.comparables.ComparableExpression; -import org.s1ck.gdl.model.comparables.ElementSelector; -import org.s1ck.gdl.model.comparables.Literal; -import org.s1ck.gdl.model.comparables.PropertySelector; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.ElementSelector; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.PropertySelector; import java.io.Serializable; import java.util.Set; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java index 7eebf47cf239..524e6f11299f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java @@ -20,12 +20,12 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.booleans.OrPredicate; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.booleans.XorPredicate; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; -import org.s1ck.gdl.model.predicates.Predicate; -import org.s1ck.gdl.model.predicates.booleans.And; -import org.s1ck.gdl.model.predicates.booleans.Not; -import org.s1ck.gdl.model.predicates.booleans.Or; -import org.s1ck.gdl.model.predicates.booleans.Xor; -import org.s1ck.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.model.predicates.Predicate; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.booleans.Not; +import org.gradoop.gdl.model.predicates.booleans.Or; +import org.gradoop.gdl.model.predicates.booleans.Xor; +import org.gradoop.gdl.model.predicates.expressions.Comparison; import java.io.Serializable; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java index a09fe2d26a75..49d3d764ca84 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java @@ -17,12 +17,12 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; -import org.s1ck.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.booleans.And; import java.util.Objects; /** - * Wraps an {@link org.s1ck.gdl.model.predicates.booleans.And} predicate + * Wraps an {@link org.gradoop.gdl.model.predicates.booleans.And} predicate */ public class AndPredicate extends QueryPredicate { /** diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java index 22b76053edf4..40992ffc6fdd 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java @@ -19,18 +19,18 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; -import org.s1ck.gdl.model.comparables.ComparableExpression; -import org.s1ck.gdl.model.predicates.Predicate; -import org.s1ck.gdl.model.predicates.booleans.And; -import org.s1ck.gdl.model.predicates.booleans.Not; -import org.s1ck.gdl.model.predicates.booleans.Or; -import org.s1ck.gdl.model.predicates.expressions.Comparison; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.predicates.Predicate; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.booleans.Not; +import org.gradoop.gdl.model.predicates.booleans.Or; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; import java.util.Objects; /** - * Wraps a {@link org.s1ck.gdl.model.predicates.booleans.Not} predicate + * Wraps a {@link org.gradoop.gdl.model.predicates.booleans.Not} predicate */ public class NotPredicate extends QueryPredicate { diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java index 3c3ea73f65e8..4ec1ae0ca9fa 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java @@ -17,7 +17,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; -import org.s1ck.gdl.model.predicates.booleans.Or; +import org.gradoop.gdl.model.predicates.booleans.Or; import java.util.Objects; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java index 3861a4e38782..2239d1c726e4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java @@ -17,16 +17,16 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; -import org.s1ck.gdl.model.predicates.Predicate; -import org.s1ck.gdl.model.predicates.booleans.And; -import org.s1ck.gdl.model.predicates.booleans.Not; -import org.s1ck.gdl.model.predicates.booleans.Or; -import org.s1ck.gdl.model.predicates.booleans.Xor; +import org.gradoop.gdl.model.predicates.Predicate; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.booleans.Not; +import org.gradoop.gdl.model.predicates.booleans.Or; +import org.gradoop.gdl.model.predicates.booleans.Xor; import java.util.Objects; /** - * Wraps a {@link org.s1ck.gdl.model.predicates.booleans.Xor} predicate + * Wraps a {@link Xor} predicate */ public class XorPredicate extends QueryPredicate { /** diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java index f0f93cc5b1fa..c99a9e6073ce 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java @@ -20,14 +20,14 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; -import org.s1ck.gdl.model.comparables.ElementSelector; +import org.gradoop.gdl.model.comparables.ElementSelector; import java.util.HashSet; import java.util.Objects; import java.util.Set; /** - * Wraps an {@link org.s1ck.gdl.model.comparables.ElementSelector} + * Wraps an {@link ElementSelector} */ public class ElementSelectorComparable extends QueryComparable { /** diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java index 43dc5c36a063..2d43e41c7b69 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java @@ -20,7 +20,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; -import org.s1ck.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.Literal; import java.util.HashSet; import java.util.Objects; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java index 37cce28bc98b..194c05e09149 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java @@ -21,7 +21,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; -import org.s1ck.gdl.model.comparables.PropertySelector; +import org.gradoop.gdl.model.comparables.PropertySelector; import java.util.HashSet; import java.util.Objects; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java index 4fc42dd9c2f3..f9655f9f079f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java @@ -23,8 +23,8 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; -import org.s1ck.gdl.model.predicates.expressions.Comparison; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; import java.util.Objects; import java.util.Set; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java index df6705e9438e..86fe41fbe0dc 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/estimation/JoinEstimator.java @@ -22,7 +22,7 @@ import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.BinaryNode; import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.JoinNode; import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.LeafNode; -import org.s1ck.gdl.model.Edge; +import org.gradoop.gdl.model.Edge; import java.util.Collection; import java.util.HashMap; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java index 82298521829a..97b55b2f64e2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java @@ -44,9 +44,9 @@ import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectVerticesNode; import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.unary.FilterEmbeddingsNode; import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.unary.ProjectEmbeddingsNode; -import org.s1ck.gdl.model.Edge; -import org.s1ck.gdl.model.Vertex; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; +import org.gradoop.gdl.utils.Comparator; import java.util.ArrayList; import java.util.HashSet; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java index ecd068736843..e359c1af08a1 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/simulation/dual/functions/ValidateNeighborhood.java @@ -28,7 +28,7 @@ import org.gradoop.flink.model.impl.operators.matching.single.simulation.dual.tuples.FatVertex; import org.gradoop.flink.model.impl.operators.matching.single.simulation.dual.util.MessageType; -import org.s1ck.gdl.model.Edge; +import org.gradoop.gdl.model.Edge; import java.util.Collection; import java.util.List; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java index 246a89d4bd1a..194faaf19efb 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/algorithm/DepthSearchMatching.java @@ -22,8 +22,8 @@ import org.gradoop.flink.model.impl.operators.matching.common.tuples.IdWithCandidates; import org.gradoop.flink.model.impl.operators.matching.common.tuples.TripleWithCandidates; import org.gradoop.flink.model.impl.operators.matching.transactional.tuples.GraphWithCandidates; -import org.s1ck.gdl.model.Edge; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; import java.util.ArrayList; import java.util.Arrays; diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java index a9f11a8c7c08..fb092342503d 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildIdWithCandidatesAndGraphs.java @@ -45,7 +45,7 @@ public class BuildIdWithCandidatesAndGraphs /** * Query vertices to match against. */ - private transient Collection queryVertices; + private transient Collection queryVertices; /** * Number of vertices in the query graph */ diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java index 40bb3da3e7b7..732cfb73c726 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/transactional/function/BuildTripleWithCandidatesAndGraphs.java @@ -44,7 +44,7 @@ public class BuildTripleWithCandidatesAndGraphs /** * Query vertices to match against. */ - private transient Collection queryEdges; + private transient Collection queryEdges; /** * Number of edges in the query graph */ diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java index 742c265d22e9..471cca146646 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/algorithms/fsm/transactional/basic/BasicPatternsData.java @@ -35,11 +35,11 @@ public class BasicPatternsData { "s5[(:A)-[:a]->(:B)-[:c]->(:E)]"; public static final String FSM_PARALLEL_EDGES = - "g1[(v1:A)-[:a]->(:A)-[:a]->(v1:A)]" + - "g2[(v2:A)-[:a]->(:A)-[:a]->(v2:A)]" + + "g1[(v1:A)-[:a]->(:A)-[:a]->(v1)]" + + "g2[(v2:A)-[:a]->(:A)-[:a]->(v2)]" + "g3[(:A)-[:a]->(:A)-[:a]->(:A)]" + "s1[(:A)-[:a]->(:A)]" + - "s2[(v3:A)-[:a]->(:A)-[:a]->(v3:A)]"; + "s2[(v3:A)-[:a]->(:A)-[:a]->(v3)]"; public static final String FSM_LOOP = "g1[(v1:A)-[:a]->(v1)-[:a]->(:A)]" + @@ -47,33 +47,33 @@ public class BasicPatternsData { "g3[(v3:A)-[:a]->(v3)-[:a]->(:A)]" + "g4[(:A)-[:a]->(:A)-[:a]->(:A)]" + "s1[(:A)-[:a]->(:A)]" + - "s2[(v3:A)-[:a]->(v3)]" + + "s2[(v3)-[:a]->(v3)]" + "s3[(v4:A)-[:a]->(v4)-[:a]->(:A)]"; public static final String FSM_DIAMOND = - "g1[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A),(v1:A)-[:a]->(v3:A)-[:a]->(v4:A)]" + - "g2[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A),(v1:A)-[:a]->(v3:A)-[:a]->(v4:A)]" + - "g3[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A),(v1:A)-[:a]->(v3:A)-[:a]->(v4:A)]" + + "g1[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A),(v1)-[:a]->(v3:A)-[:a]->(v4)]" + + "g2[(v1)-[:a]->(v2)-[:a]->(v4),(v1)-[:a]->(v3)-[:a]->(v4)]" + + "g3[(v1)-[:a]->(v2)-[:a]->(v4),(v1)-[:a]->(v3)-[:a]->(v4)]" + - "s1[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A),(v1:A)-[:a]->(v3:A)-[:a]->(v4:A)]" + + "s1[(v1)-[:a]->(v2)-[:a]->(v4),(v1)-[:a]->(v3)-[:a]->(v4)]" + - "s2[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A),(v1:A)-[:a]->(v3:A) ]" + - "s3[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A), (v3:A)-[:a]->(v4:A)]" + - "s4[(v1:A)-[:a]->(v2:A)-[:a]->(v4:A) ]" + - "s5[(v1:A)-[:a]->(v2:A) ,(v1:A)-[:a]->(v3:A) ]" + - "s6[ (v2:A)-[:a]->(v4:A), (v3:A)-[:a]->(v4:A)]" + - "s7[(v1:A)-[:a]->(v2:A) ]"; + "s2[(v1)-[:a]->(v2)-[:a]->(v4),(v1)-[:a]->(v3) ]" + + "s3[(v1)-[:a]->(v2)-[:a]->(v4), (v3)-[:a]->(v4)]" + + "s4[(v1)-[:a]->(v2)-[:a]->(v4) ]" + + "s5[(v1)-[:a]->(v2) ,(v1)-[:a]->(v3) ]" + + "s6[ (v2)-[:a]->(v4), (v3)-[:a]->(v4)]" + + "s7[(v1)-[:a]->(v2) ]"; public static final String FSM_CIRCLE_WITH_BRANCH = "g1[(v1:A)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + - "g2[(v1:A)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + - "g3[(v1:A)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + + "g2[(v1)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + + "g3[(v1)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + - "s1[(v1:A)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + - "s2[(v1:A)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1) ]" + - "s3[(v1:A)-[:a]->(:A)-[:a]->(:A) (v1)-[:b]->(:B)]" + - "s4[(v1:A)-[:a]->(:A) (:A)-[:a]->(v1)-[:b]->(:B)]" + - "s5[ (:A)-[:a]->(:A)-[:a]->(v1:A)-[:b]->(:B)]" + + "s1[(v1)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + + "s2[(v1)-[:a]->(:A)-[:a]->(:A)-[:a]->(v1) ]" + + "s3[(v1)-[:a]->(:A)-[:a]->(:A) (v1)-[:b]->(:B)]" + + "s4[(v1)-[:a]->(:A) (:A)-[:a]->(v1)-[:b]->(:B)]" + + "s5[ (:A)-[:a]->(:A)-[:a]->(v1)-[:b]->(:B)]" + "s6[(:A)-[:a]->(:A)-[:a]->(:A)]" + "s7[(:A)-[:a]->(:A)-[:b]->(:B)]" + @@ -84,9 +84,9 @@ public class BasicPatternsData { public static final String MULTI_LABELED_CIRCLE = "g1[(v:A)-[:a]->(:B)-[:a]->(:C)-[:a]->(v)]" + - "g2[(v:A)-[:a]->(:B)-[:a]->(:C)-[:a]->(v)]" + + "g2[(v)-[:a]->(:B)-[:a]->(:C)-[:a]->(v)]" + - "s1[(v:A)-[:a]->(:B)-[:a]->(:C)-[:a]->(v)]" + + "s1[(v)-[:a]->(:B)-[:a]->(:C)-[:a]->(v)]" + "s2[(:A)-[:a]->(:B)-[:a]->(:C)]" + "s3[(:B)-[:a]->(:C)-[:a]->(:A)]" + diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java index b7be7b738d93..d2afe1713fc3 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/io/impl/tlf/TLFDataSourceTest.java @@ -34,7 +34,7 @@ public void testRead() throws Exception { String asciiGraphs = "" + "g1[(v1:A)-[:a]->(v2:B)-[:b]->(v1)]" + - "g2[(v1:A)-[:a]->(v2:B)<-[:b]-(v1)]"; + "g2[(v1)-[:a]->(v2)<-[:b]-(v1)]"; FlinkAsciiGraphLoader loader = getLoaderFromString(asciiGraphs); @@ -56,7 +56,7 @@ public void testReadWithoutEdges() throws Exception { String asciiGraphs = "" + "g1[(v1:A),(v2:B)]" + - "g2[(v1:A),(v2:B)]"; + "g2[(v1),(v2)]"; FlinkAsciiGraphLoader loader = getLoaderFromString(asciiGraphs); @@ -81,7 +81,7 @@ public void testReadWithDictionary() throws Exception { String asciiGraphs = "" + "g1[(v1:A)-[:a]->(v2:B)-[:b]->(v1)]" + - "g2[(v1:A)-[:a]->(v2:B)<-[:b]-(v1)]"; + "g2[(v1)-[:a]->(v2)<-[:b]-(v1)]"; FlinkAsciiGraphLoader loader = getLoaderFromString(asciiGraphs); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java index 8a7351bf8f06..aaccb0436ff8 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/distinction/DistinctByIsomorphismTestBase.java @@ -26,24 +26,24 @@ protected GraphCollection getTestCollection() { "r:R[" + "(ra1:A)-[:a]->(ra1)-[:a]->(ra2:A)" + - "(ra1)-[:p]->(rb1:B),(ra1)-[:p]->(rb1:B)" + + "(ra1)-[:p]->(rb1:B),(ra1)-[:p]->(rb1)" + "(rb1)-[:c]->(rb2:B)-[:c]->(rb3:B)-[:c]->(rb1)]" + "a:A[" + "(aa1:A)-[:a]->(aa1)-[:a]->(aa2:A)" + - "(aa1)-[:p]->(ab1:B),(aa1)-[:p]->(ab1:B)" + + "(aa1)-[:p]->(ab1:B),(aa1)-[:p]->(ab1)" + "(ab1)-[:c]->(ab2:B)-[:c]->(ab3:B)-[:c]->(ab1)]" + // with properties "p:P[" + "(pa1:A{x : 1})-[:a{y : 1}]->(pa1)-[:a]->(pa2:A)" + - "(pa1)-[:p]->(pb1:B),(pa1)-[:p]->(pb1:B)" + + "(pa1)-[:p]->(pb1:B),(pa1)-[:p]->(pb1)" + "(pb1)-[:c]->(pb2:B)-[:c]->(pb3:B)-[:c]->(pb1)]" + "h:H[" + "(ha1:A{x : 1})-[:a{y : 1}]->(ha1)-[:a]->(ha2:A)" + - "(ha1)-[:p]->(hb1:B),(ha1)-[:p]->(hb1:B)" + + "(ha1)-[:p]->(hb1:B),(ha1)-[:p]->(hb1)" + "(hb1)-[:c]->(hb2:B)-[:c]->(hb3:B)-[:c]->(hb1)]"; return getLoaderFromString(asciiGraphs) diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java index fa054f81e7b7..12a1da39f034 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/equality/EqualityTest.java @@ -329,7 +329,7 @@ public void testUndirectedGraphEquality() throws Exception { // loop around a1 and edge from a1 to a2 "(a1:A{x : 1})-[loop:a{x : 1}]->(a1)-[aa:a{x : 1}]->(a2:A{x : 2})" + // parallel edge from a1 to b1 - "(a1)-[par1:p]->(b1:B),(a1)-[par2:p]->(b1:B)" + + "(a1)-[par1:p]->(b1:B),(a1)-[par2:p]->(b1)" + // cycle of bs "(b1)-[cyc1:c]->(b2:B)-[cyc2:c]->(b3:B)-[cyc3:c]->(b1)]" + diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java index d2c91836b1e7..73cec223c83e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/fusion/VertexFusionTest.java @@ -170,7 +170,7 @@ public void abedgewithalphaAndGraphwithaToAggregatedasource() throws Exception { "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype :" + " \"bvalue\"}) " + "]" + - "graphWithA:G {graphWithA : \"graph\"}[(a:A {atype : \"avalue\"})]" + + "graphWithA:G {graphWithA : \"graph\"}[(a)]" + "aggregatedASource:G {ab_edgeWithAlpha : \"graph\"}[" + "(:G {graphWithA : \"graph\"})-[:AlphaEdge {alphatype : \"alphavalue\"}]->(:B {btype : " + @@ -254,10 +254,9 @@ public void abEdgeWithAlphaAndAbedgeWithBetaToAbedgeWithBetaLoop() throws Except "ab_edgeWithAlpha:G {ab_edgeWithAlpha : \"graph\"}[" + "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype :" + " \"bvalue\"}) " + "]" + "" + "ab_edgeWithBeta:G {ab_edgeWithBeta : \"graph\"}[" + - "(a:A {atype : \"avalue\"})-[beta:BetaEdge {betatype : \"betavalue\"}]->(b:B {btype : " + - "\"bvalue\"}) " + "]" + "" + "ab_edgeWithBeta_loop:G {ab_edgeWithAlpha : \"graph\"}[" + - "(g2:G {ab_edgeWithBeta : \"graph\"})-[:AlphaEdge {alphatype : \"alphavalue\"}]->(g2:G " + - "{ab_edgeWithBeta : \"graph\"}) " + "]"); + "(a)-[beta:BetaEdge {betatype : \"betavalue\"}]->(b) " + + "]" + "" + "ab_edgeWithBeta_loop:G {ab_edgeWithAlpha : \"graph\"}[" + + "(g2:G {ab_edgeWithBeta : \"graph\"})-[:AlphaEdge {alphatype : \"alphavalue\"}]->(g2)]"); LogicalGraph searchGraph = loader.getLogicalGraphByVariable("ab_edgeWithAlpha"); LogicalGraph patternGraph = loader.getLogicalGraphByVariable("ab_edgeWithBeta"); VertexFusion f = new VertexFusion(); @@ -331,7 +330,7 @@ public void abcdGraphAndAbcdGraphToAbdGraph() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("abcdGraph:G {abcdGraph : \"graph\"}[" + "(a:A {atype : \"avalue\"})-[beta:BetaEdge {betatype : \"betavalue\"}]->(b:B {btype : " + "\"bvalue\"}) " + - "(b:B {btype : \"bvalue\"})-[g:GammaEdge {gtype : \"gvalue\"}]->(c:C {ctype : \"cvalue\"}) " + + "(b)-[g:GammaEdge {gtype : \"gvalue\"}]->(c:C {ctype : \"cvalue\"}) " + "]" + "" + "abdGraph:G {abcdGraph : \"graph\"}[(:G {abcdGraph : \"graph\"})]"); LogicalGraph searchGraph = loader.getLogicalGraphByVariable("abcdGraph"); LogicalGraph patternGraph = loader.getLogicalGraphByVariable("abcdGraph"); @@ -351,21 +350,19 @@ public void semicomplexAndLooplessPatternToFirstmatch() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("semicomplex:G {semicomplex : \"graph\"}[" + "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + "\"bvalue\"}) " + - "(b:B {btype : \"bvalue\"})-[l:loop {ltype : \"lvalue\"}]->(b:B {btype : \"bvalue\"}) " + - "(b:B {btype : \"bvalue\"})-->(c:C {ctype : \"cvalue\"}) " + - "(c:C {ctype : \"cvalue\"})-->(e:E {etype : \"evalue\"}) " + - "(c:C {ctype : \"cvalue\"})-[beta:BetaEdge {betatype : \"betavalue\"}]->(d:D {dtype : " + - "\"dvalue\"}) " + "(d:D {dtype : \"dvalue\"})-->(e:E {etype : \"evalue\"}) " + "]" + "" + + "(b)-[l:loop {ltype : \"lvalue\"}]->(b) " + + "(b)-->(c:C {ctype : \"cvalue\"}) " + + "(c)-->(e:E {etype : \"evalue\"}) " + + "(c)-[beta:BetaEdge {betatype : \"betavalue\"}]->(d:D {dtype : " + + "\"dvalue\"}) " + "(d)-->(e) " + "]" + "" + "looplessPattern:G {looplessPattern : \"graph\"}[" + - "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + - "\"bvalue\"}) " + "(d:D {dtype : \"dvalue\"})" + "]" + "" + + "(a)-[alpha]->(b) " + "(d)" + "]" + "" + "firstmatch:G {semicomplex : \"graph\"}[" + "(g2:G {looplessPattern : \"graph\"})-->(c2:C {ctype : \"cvalue\"}) " + - "(g2:G {looplessPattern : \"graph\"})-->(e2:E {etype : \"evalue\"}) " + - "(g2:G {looplessPattern : \"graph\"})-[:loop {ltype : \"lvalue\"}]->(g2:G {looplessPattern " + - ": \"graph\"}) " + - "(c2:C {ctype : \"cvalue\"})-[:BetaEdge {betatype : \"betavalue\"}]->(g2:G {looplessPattern" + - " : \"graph\"}) " + "(c2:C {ctype : \"cvalue\"})-->(e2:E {etype : \"evalue\"}) " + "]" + ""); + "(g2)-->(e2:E {etype : \"evalue\"}) " + + "(g2)-[:loop {ltype : \"lvalue\"}]->(g2) " + + "(c2)-[:BetaEdge {betatype : \"betavalue\"}]->(g2) " + + "(c2)-->(e2) " + "]" + ""); LogicalGraph searchGraph = loader.getLogicalGraphByVariable("semicomplex"); LogicalGraph patternGraph = loader.getLogicalGraphByVariable("looplessPattern"); VertexFusion f = new VertexFusion(); @@ -384,21 +381,20 @@ public void trickyLooplessAndPatternToThirdmatch() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("tricky:G {tricky : \"graph\"}[" + "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + "\"bvalue\"}) " + - "(d:D {dtype : \"dvalue\"})-[l:loop {ltype : \"lvalue\"}]->(b:B {btype : \"bvalue\"}) " + - "(b:B {btype : \"bvalue\"})-->(c:C {ctype : \"cvalue\"}) " + - "(c:C {ctype : \"cvalue\"})-->(e:E {etype : \"evalue\"}) " + - "(c:C {ctype : \"cvalue\"})-[beta:BetaEdge {betatype : \"betavalue\"}]->(d:D {dtype : " + - "\"dvalue\"}) " + "(d:D {dtype : \"dvalue\"})-->(e:E {etype : \"evalue\"}) " + "]" + "" + + "(d:D {dtype : \"dvalue\"})-[l:loop {ltype : \"lvalue\"}]->(b) " + + "(b)-->(c:C {ctype : \"cvalue\"}) " + + "(c)-->(e:E {etype : \"evalue\"}) " + + "(c)-[beta:BetaEdge {betatype : \"betavalue\"}]->(d) " + + "(d)-->(e)]" + "looplessPattern:G {looplessPattern : \"graph\"}[" + - "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + - "\"bvalue\"}) " + "(d:D {dtype : \"dvalue\"})" + "]" + "" + + "(a)-[alpha]->(b) " + + "(d)]" + "thirdmatch:G {tricky : \"graph\"}[" + "(g2:G {looplessPattern : \"graph\"})-->(c2:C {ctype : \"cvalue\"}) " + - "(g2:G {looplessPattern : \"graph\"})-->(e2:E {etype : \"evalue\"}) " + - "(g2:G {looplessPattern : \"graph\"})-[:loop {ltype : \"lvalue\"}]->(g2:G {looplessPattern " + - ": \"graph\"}) " + - "(c2:C {ctype : \"cvalue\"})-[:BetaEdge {betatype : \"betavalue\"}]->(g2:G {looplessPattern" + - " : \"graph\"}) " + "(c2:C {ctype : \"cvalue\"})-->(e2:E {etype : \"evalue\"}) " + "]" + ""); + "(g2)-->(e2:E {etype : \"evalue\"}) " + + "(g2)-[:loop {ltype : \"lvalue\"}]->(g2)" + + "(c2)-[:BetaEdge {betatype : \"betavalue\"}]->(g2) " + + "(c2)-->(e2) " + "]" + ""); LogicalGraph searchGraph = loader.getLogicalGraphByVariable("tricky"); LogicalGraph patternGraph = loader.getLogicalGraphByVariable("looplessPattern"); VertexFusion f = new VertexFusion(); @@ -416,17 +412,15 @@ public void sourceAndPatternToSourceFusewithPattern() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("source:G {source : \"graph\"}[" + "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + "\"bvalue\"}) " + - "(a:A {atype : \"avalue\"})-[beta:BetaEdge {betatype : \"betavalue\"}]->(b:B {btype : " + - "\"bvalue\"}) " + - "(a:A {atype : \"avalue\"})-[l:loop {ltype : \"lvalue\"}]->(c:C {ctype : \"cvalue\"}) " + - "(c:C {ctype : \"cvalue\"})-[g:GammaEdge {gtype : \"gvalue\"}]->(d:D {dtype : \"dvalue\"}) " + + "(a)-[beta:BetaEdge {betatype : \"betavalue\"}]->(b) " + + "(a)-[l:loop {ltype : \"lvalue\"}]->(c:C {ctype : \"cvalue\"}) " + + "(c)-[g:GammaEdge {gtype : \"gvalue\"}]->(d:D {dtype : \"dvalue\"}) " + "]" + "" + "pattern:G {pattern : \"graph\"}[" + - "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + - "\"bvalue\"}) " + "]" + "" + "source_fusewith_pattern:G {source : \"graph\"}[" + - "(k2:G {pattern : \"graph\"})-[:BetaEdge {betatype : \"betavalue\"}]->(k2:G {pattern : " + - "\"graph\"}) " + - "(k2:G {pattern : \"graph\"})-[:loop {ltype : \"lvalue\"}]->(c2:C {ctype : \"cvalue\"}) " + - "(c2:C {ctype : \"cvalue\"})-[:GammaEdge {gtype : \"gvalue\"}]->(d2:D {dtype : \"dvalue\"})" + + "(a)-[alpha]->(b) " + + "]" + "" + "source_fusewith_pattern:G {source : \"graph\"}[" + + "(k2:G {pattern : \"graph\"})-[:BetaEdge {betatype : \"betavalue\"}]->(k2) " + + "(k2)-[:loop {ltype : \"lvalue\"}]->(c2:C {ctype : \"cvalue\"}) " + + "(c2)-[:GammaEdge {gtype : \"gvalue\"}]->(d2:D {dtype : \"dvalue\"})" + " " + "]" + ""); LogicalGraph searchGraph = loader.getLogicalGraphByVariable("source"); LogicalGraph patternGraph = loader.getLogicalGraphByVariable("pattern"); @@ -445,13 +439,11 @@ public void patternAndSourceToPatternfusewithsource() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("pattern:G {pattern : \"graph\"}[" + "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + "\"bvalue\"}) " + "]" + "" + "source:G {source : \"graph\"}[" + - "(a:A {atype : \"avalue\"})-[alpha:AlphaEdge {alphatype : \"alphavalue\"}]->(b:B {btype : " + - "\"bvalue\"}) " + - "(a:A {atype : \"avalue\"})-[beta:BetaEdge {betatype : \"betavalue\"}]->(b:B {btype : " + - "\"bvalue\"}) " + - "(a:A {atype : \"avalue\"})-[l:loop {ltype : \"lvalue\"}]->(c:C {ctype : \"cvalue\"}) " + - "(c:C {ctype : \"cvalue\"})-[g:GammaEdge {gtype : \"gvalue\"}]->(d:D {dtype : \"dvalue\"}) " + - "]" + "" + "pattern_fusewith_source:G {pattern : \"graph\"}[(u:G {source : \"graph\"})]"); + "(a)-[alpha]->(b) " + + "(a)-[beta:BetaEdge {betatype : \"betavalue\"}]->(b) " + + "(a)-[l:loop {ltype : \"lvalue\"}]->(c:C {ctype : \"cvalue\"}) " + + "(c)-[g:GammaEdge {gtype : \"gvalue\"}]->(d:D {dtype : \"dvalue\"}) " + + "]" + "pattern_fusewith_source:G {pattern : \"graph\"}[(u:G {source : \"graph\"})]"); LogicalGraph searchGraph = loader.getLogicalGraphByVariable("pattern"); LogicalGraph patternGraph = loader.getLogicalGraphByVariable("source"); VertexFusion f = new VertexFusion(); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java index 89c682b398e7..fc903ead8df2 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/functions/ElementsFromEmbeddingTest.java @@ -32,8 +32,8 @@ import org.gradoop.flink.model.impl.operators.matching.common.tuples.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.PatternMatching; import org.junit.Test; -import org.s1ck.gdl.model.Edge; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; import java.util.ArrayList; import java.util.List; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java index dbbdc100cb1d..92678ba7a3fa 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/GraphMetricsTest.java @@ -17,7 +17,7 @@ import com.google.common.collect.Sets; import org.junit.Test; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.model.Vertex; import java.util.Map; import java.util.Set; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java index ae2174dffe85..53eb67662c29 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandlerTest.java @@ -18,11 +18,11 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import org.junit.Test; -import org.s1ck.gdl.GDLHandler; -import org.s1ck.gdl.GDLHandler.Builder; -import org.s1ck.gdl.model.Edge; -import org.s1ck.gdl.model.Element; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.GDLHandler; +import org.gradoop.gdl.GDLHandler.Builder; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Element; +import org.gradoop.gdl.model.Vertex; import java.util.Collection; import java.util.Comparator; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java index 2ccdd8d25f6b..b9e35aef5b37 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/TripleTest.java @@ -16,8 +16,8 @@ package org.gradoop.flink.model.impl.operators.matching.common.query; import org.junit.Test; -import org.s1ck.gdl.model.Edge; -import org.s1ck.gdl.model.Vertex; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; import static org.junit.Assert.*; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java index a0331c01234a..569175ec7220 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicateTest.java @@ -18,10 +18,10 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; import org.junit.Test; -import org.s1ck.gdl.model.comparables.Literal; -import org.s1ck.gdl.model.predicates.booleans.And; -import org.s1ck.gdl.model.predicates.expressions.Comparison; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; import static org.junit.Assert.assertEquals; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java index 076a309fdf28..1d359495d2bd 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicateTest.java @@ -19,15 +19,15 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; import org.junit.Test; -import org.s1ck.gdl.model.comparables.ComparableExpression; -import org.s1ck.gdl.model.comparables.Literal; -import org.s1ck.gdl.model.predicates.Predicate; -import org.s1ck.gdl.model.predicates.booleans.And; -import org.s1ck.gdl.model.predicates.booleans.Not; -import org.s1ck.gdl.model.predicates.booleans.Or; -import org.s1ck.gdl.model.predicates.booleans.Xor; -import org.s1ck.gdl.model.predicates.expressions.Comparison; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.predicates.Predicate; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.booleans.Not; +import org.gradoop.gdl.model.predicates.booleans.Or; +import org.gradoop.gdl.model.predicates.booleans.Xor; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; import static org.junit.Assert.assertEquals; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java index 29aad6e0bfbd..5a1b25bd6acb 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicateTest.java @@ -18,10 +18,10 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; import org.junit.Test; -import org.s1ck.gdl.model.comparables.Literal; -import org.s1ck.gdl.model.predicates.booleans.Or; -import org.s1ck.gdl.model.predicates.expressions.Comparison; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.predicates.booleans.Or; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; import static org.junit.Assert.assertEquals; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java index 04a91253ee2c..af50ba9adf2c 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicateTest.java @@ -18,13 +18,13 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; import org.junit.Test; -import org.s1ck.gdl.model.comparables.Literal; -import org.s1ck.gdl.model.predicates.booleans.And; -import org.s1ck.gdl.model.predicates.booleans.Not; -import org.s1ck.gdl.model.predicates.booleans.Or; -import org.s1ck.gdl.model.predicates.booleans.Xor; -import org.s1ck.gdl.model.predicates.expressions.Comparison; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.booleans.Not; +import org.gradoop.gdl.model.predicates.booleans.Or; +import org.gradoop.gdl.model.predicates.booleans.Xor; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; import static org.junit.Assert.assertEquals; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java index 91e298eff825..f312ae1e4041 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/ElementSelectorComparableTest.java @@ -22,7 +22,7 @@ import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData.EntryType; import org.junit.Test; -import org.s1ck.gdl.model.comparables.ElementSelector; +import org.gradoop.gdl.model.comparables.ElementSelector; import java.util.NoSuchElementException; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java index adb92f6805df..41ed09004633 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/LiteralComparableTest.java @@ -18,7 +18,7 @@ import org.gradoop.common.model.impl.properties.PropertyValue; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.LiteralComparable; import org.junit.Test; -import org.s1ck.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.Literal; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java index 12b8b432e240..3b805f6add76 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/compareables/PropertySelectorComparableTest.java @@ -22,7 +22,7 @@ import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData.EntryType; import org.junit.Test; -import org.s1ck.gdl.model.comparables.PropertySelector; +import org.gradoop.gdl.model.comparables.PropertySelector; import java.util.NoSuchElementException; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java index fb69d285856a..898fea4e4506 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpressionTest.java @@ -19,9 +19,9 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.LiteralComparable; import org.junit.Test; -import org.s1ck.gdl.model.comparables.Literal; -import org.s1ck.gdl.model.predicates.expressions.Comparison; -import org.s1ck.gdl.utils.Comparator; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; import static org.junit.Assert.*; diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java index 5793907cdd36..926b86ba316a 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/split/SplitTest.java @@ -158,10 +158,10 @@ public void testSplitWithSingleResultGraph() throws Exception { "(v2)-[e3:sameAs {id : 3, sim : \"0.99\"}]->(v3)" + "]" + "g2 [" + - "(v0)-[e0:sameAs {id : 0, sim : \"0.91\"}]->(v1)" + - "(v0)-[e1:sameAs {id : 1, sim : \"0.3\"}]->(v2)" + - "(v2)-[e2:sameAs {id : 2, sim : \"0.1\"}]->(v1)" + - "(v2)-[e3:sameAs {id : 3, sim : \"0.99\"}]->(v3)" + + "(v0)-[e0]->(v1)" + + "(v0)-[e1]->(v2)" + + "(v2)-[e2]->(v1)" + + "(v2)-[e3]->(v3)" + "]" ); diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java index f7224a92c45b..d931f281ea7e 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/verify/VerifyTest.java @@ -57,7 +57,7 @@ public class VerifyTest extends GradoopFlinkTestBase { public void testVerifyWithSubgraph() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); loader.appendToDatabaseFromString("expected[" + - "(eve)-[ekb:knows {since : 2015}]->(bob)" + + "(eve)-[ekb]->(bob)" + "]"); LogicalGraph input = loader.getLogicalGraphByVariable("g0"); @@ -94,9 +94,9 @@ public void testVerifyWithSubgraph() throws Exception { public void testVerifyWithApplySubgraph() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); loader.appendToDatabaseFromString("expected0[" + - "(eve)-[ekb:knows {since : 2015}]->(bob)" + + "(eve)-[ekb]->(bob)" + "] expected1 [" + - "(frank)-[fkd:knows {since : 2015}]->(dave)" + + "(frank)-[fkd]->(dave)" + "]"); GraphCollection input = loader.getGraphCollectionByVariables("g0", "g1"); GradoopId id0 = loader.getGraphHeadByVariable("g0").getId(); diff --git a/gradoop-flink/src/test/resources/data/csv/expected/expected_graph_collection.gdl b/gradoop-flink/src/test/resources/data/csv/expected/expected_graph_collection.gdl index 5610d266222e..21f6dad07183 100644 --- a/gradoop-flink/src/test/resources/data/csv/expected/expected_graph_collection.gdl +++ b/gradoop-flink/src/test/resources/data/csv/expected/expected_graph_collection.gdl @@ -4,7 +4,7 @@ expected1:g1 {a:"graph1",b:2.75d} [ expected2:g2 {a:"graph2",b:4} [ (v0:A {a:"foo",b:42,c:13.37f,d:NULL})-[e0:a {a:1234,b:13.37f}]->(v1:A {a:"bar",b:23,c:19.84f}), (v1)-[e1:a {a:5678,b:23.42f}]->(v0), - (v1)-[e2:b {a:3141L}]->(v2:B {a:1234L,b:true,c:0.123d}), + (v1)-[e2:b {a:3141L}]->(v2), (v2)-[e3]->(v3), (v4:B {a:2342L,c:19.84d})-[e4:a {b:19.84f}]->(v0), (v4)-[e5:b]->(v0) diff --git a/gradoop-flink/src/test/resources/data/edgelist/vertexlabeled/expected.gdl b/gradoop-flink/src/test/resources/data/edgelist/vertexlabeled/expected.gdl index f66c781e2dc6..abd359ccee51 100644 --- a/gradoop-flink/src/test/resources/data/edgelist/vertexlabeled/expected.gdl +++ b/gradoop-flink/src/test/resources/data/edgelist/vertexlabeled/expected.gdl @@ -2,13 +2,13 @@ expected[ (a{lan:"EN"})-->(b{lan:"ZH"}) (c{lan:"EN"})-->(d{lan:"JA"}) (e{lan:"EN"})-->(f{lan:"SV"}) -(e{lan:"EN"})-->(g{lan:"SV"}) +(e)-->(g{lan:"SV"}) (h{lan:"EN"})-->(i{lan:"JA"}) -(j{lan:"EN"})-->(i{lan:"JA"}) +(j{lan:"EN"})-->(i) (k{lan:"EN"})-->(l{lan:"FO"}) (m{lan:"AR"})-->(n{lan:"DE"}) -(m{lan:"AR"})-->(o{lan:"DE"}) +(m)-->(o{lan:"DE"}) (p{lan:"EN"})-->(q{lan:"HU"}) (r{lan:"EN"})-->(s{lan:"BN"}) -(r{lan:"EN"})-->(t{lan:"BO"}) +(r)-->(t{lan:"BO"}) ] \ No newline at end of file diff --git a/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml b/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml index 757faebbc156..243b9fd768d0 100644 --- a/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml +++ b/gradoop-quickstart/src/main/resources/archetype-resources/pom.xml @@ -94,7 +94,7 @@ ${project.groupId}:${project.artifactId} org.gradoop:* org.apache.commons:commons-lang3 - com.github.s1ck:gdl + org.gradoop:gradoop-gdl com.google.guava:guava me.lemire.integercompression:* org.antlr:antlr4-runtime diff --git a/gradoop-store/gradoop-hbase/pom.xml b/gradoop-store/gradoop-hbase/pom.xml index 46a347a8f011..bb948470a870 100644 --- a/gradoop-store/gradoop-hbase/pom.xml +++ b/gradoop-store/gradoop-hbase/pom.xml @@ -127,11 +127,6 @@ - - com.github.s1ck - gdl - - org.codehaus.jettison jettison diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java index bf32a1dd53c5..1b0b20bf182d 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/equality/TemporalEqualityTest.java @@ -361,7 +361,7 @@ public void testUndirectedGraphEquality() throws Exception { "(a1:A{x : 1})-[loop:a{x : 1, __valFrom : 1543400000000L, __valTo : 1543900000000L}]->" + "(a1)-[aa:a{x : 1}]->(a2:A{x : 2, __valFrom : 1543800000000L})" + // parallel edge from a1 to b1 - "(a1)-[par1:p]->(b1:B),(a1)-[par2:p]->(b1:B)" + + "(a1)-[par1:p]->(b1:B),(a1)-[par2:p]->(b1)" + // cycle of bs "(b1)-[cyc1:c]->(b2:B)-[cyc2:c]->(b3:B)-[cyc3:c]->(b1)]" + diff --git a/pom.xml b/pom.xml index 5b1fa9c5c4b1..94efdf9d48d7 100644 --- a/pom.xml +++ b/pom.xml @@ -159,7 +159,7 @@ 1.4 3.11 1.9.3 - 0.3.2 + 0.5.2 11.0.2 1.4.3 0.1.10 @@ -659,9 +659,9 @@ - com.github.s1ck - gdl - ${dep.gdl.version} + org.gradoop + gradoop-gdl + ${dep.gradoop.gdl.version} From cb3826351b9245417813169f9c95d80f8143c530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20G=C3=B3mez?= Date: Tue, 16 Mar 2021 19:00:11 +0100 Subject: [PATCH 16/19] [#1524] removed old travis badge and added github actions java ci badge (#1529) fixes #1524 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 096e2980db7d..8315ba5a37c5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![Apache License, Version 2.0, January 2004](https://img.shields.io/github/license/apache/maven.svg?label=License)](https://www.apache.org/licenses/LICENSE-2.0) [![Maven Central](https://img.shields.io/badge/Maven_Central-0.5.2-blue.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cgradoop) -[![Build Status](https://travis-ci.org/dbs-leipzig/gradoop.svg?branch=master)](https://travis-ci.org/dbs-leipzig/gradoop) +[![Build Status](https://github.com/dbs-leipzig/gradoop/workflows/Java%20CI/badge.svg)](https://github.com/dbs-leipzig/gradoop/actions?workflow=Java+CI) [![Code Quality: Java](https://img.shields.io/lgtm/grade/java/g/dbs-leipzig/gradoop.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/dbs-leipzig/gradoop/context:java) [![Total Alerts](https://img.shields.io/lgtm/alerts/g/dbs-leipzig/gradoop.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/dbs-leipzig/gradoop/alerts) From 600551c28f0d98eb7be252340bdc1199cfdfa4f8 Mon Sep 17 00:00:00 2001 From: lc0197 <44441963+lc0197@users.noreply.github.com> Date: Fri, 26 Mar 2021 16:50:34 +0100 Subject: [PATCH 17/19] [#1482] Implemented Temporal Pattern Matching (#1501) fixes #1482 --- .../gradoop/common/util/AsciiGraphLoader.java | 2 +- .../src/main/resources/META-INF/NOTICE | 1 - .../matching/common/query/QueryHandler.java | 8 + .../query/predicates/QueryComparable.java | 6 + .../predicates/QueryComparableFactory.java | 34 + .../query/predicates/QueryPredicate.java | 25 +- .../predicates/booleans/AndPredicate.java | 25 +- .../predicates/booleans/NotPredicate.java | 35 +- .../predicates/booleans/OrPredicate.java | 27 +- .../predicates/booleans/XorPredicate.java | 26 +- .../ElementSelectorComparable.java | 6 + .../comparables/LiteralComparable.java | 8 +- .../PropertySelectorComparable.java | 7 + .../expressions/ComparisonExpression.java | 44 +- .../unary/ProjectEmbeddingsNode.java | 3 + .../flink/util/FlinkAsciiGraphLoader.java | 2 +- .../query/predicates/CNFElementTest.java | 41 +- .../src/main/resources/META-INF/NOTICE | 1 - .../model/api/TemporalGraphOperators.java | 125 +- .../matching/common/package-info.java | 19 + .../common/query/TemporalQueryHandler.java | 211 ++++ .../matching/common/query/package-info.java | 19 + .../postprocessing/CNFPostProcessing.java | 97 ++ .../postprocessing/QueryTransformation.java | 35 + .../QueryContradictoryException.java | 22 + .../exceptions/package-info.java | 19 + .../query/postprocessing/package-info.java | 19 + .../transformation/AddTrivialConstraints.java | 181 +++ .../transformation/BoundsInference.java | 663 ++++++++++ .../transformation/MinMaxUnfolding.java | 217 ++++ .../transformation/Normalization.java | 70 ++ .../transformation/Subsumption.java | 199 +++ .../transformation/SyntacticSubsumption.java | 31 + .../transformation/TemporalSubsumption.java | 141 +++ .../transformation/TrivialContradictions.java | 118 ++ .../transformation/TrivialTautologies.java | 106 ++ .../transformation/package-info.java | 19 + .../predicates/ComparableTPGMFactory.java | 101 ++ .../query/predicates/QueryComparableTPGM.java | 65 + .../comparables/DurationComparable.java | 138 +++ .../comparables/MaxTimePointComparable.java | 145 +++ .../comparables/MinTimePointComparable.java | 151 +++ .../comparables/TemporalComparable.java | 26 + .../comparables/TimeConstantComparable.java | 99 ++ .../comparables/TimeLiteralComparable.java | 96 ++ .../comparables/TimeSelectorComparable.java | 124 ++ .../predicates/comparables/package-info.java | 19 + .../comparables/util/ComparableFactory.java | 76 ++ .../comparables/util/package-info.java | 20 + .../common/query/predicates/package-info.java | 19 + .../query/predicates/util/ComparisonUtil.java | 36 + .../query/predicates/util/package-info.java | 19 + .../statistics/TemporalGraphStatistics.java | 200 +++ .../TemporalGraphStatisticsFactory.java | 73 ++ .../BinningTemporalGraphStatistics.java | 1072 +++++++++++++++++ ...BinningTemporalGraphStatisticsFactory.java | 90 ++ .../binning/functions/ElementsToStats.java | 71 ++ .../binning/functions/package-info.java | 19 + .../statistics/binning/package-info.java | 19 + .../statistics/binning/pojo/Binning.java | 110 ++ .../binning/pojo/ReservoirSampler.java | 138 +++ .../binning/pojo/TemporalElementStats.java | 656 ++++++++++ .../statistics/binning/pojo/package-info.java | 19 + .../dummy/DummyTemporalGraphStatistics.java | 108 ++ .../DummyTemporalGraphStatisticsFactory.java | 50 + .../common/statistics/dummy/package-info.java | 19 + .../common/statistics/package-info.java | 19 + .../impl/operators/matching/package-info.java | 19 + .../single/TemporalPatternMatching.java | 258 ++++ .../cypher/CypherTemporalPatternMatching.java | 240 ++++ .../functions/ElementsFromEmbeddingTPGM.java | 301 +++++ .../single/cypher/functions/package-info.java | 19 + .../filter/FilterAndProjectTemporalEdges.java | 101 ++ .../FilterAndProjectTemporalVertices.java | 95 ++ .../FilterAndProjectTemporalEdge.java | 72 ++ .../FilterAndProjectTemporalVertex.java | 59 + .../filter/functions/package-info.java | 19 + .../cypher/operators/filter/package-info.java | 19 + .../single/cypher/operators/package-info.java | 19 + .../matching/single/cypher/package-info.java | 19 + .../planning/estimation/CNFEstimation.java | 585 +++++++++ .../estimation/FilterTemporalEstimator.java | 118 ++ .../estimation/JoinTemporalEstimator.java | 205 ++++ .../estimation/TemporalEstimator.java | 77 ++ .../TemporalQueryPlanEstimator.java | 110 ++ .../planning/estimation/package-info.java | 19 + .../planner/greedy/GreedyPlanner.java | 619 ++++++++++ .../planning/planner/greedy/package-info.java | 19 + .../plantable/TemporalPlanTableEntry.java | 91 ++ .../planning/plantable/package-info.java | 19 + .../FilterAndProjectTemporalEdgesNode.java | 161 +++ .../FilterAndProjectTemporalVerticesNode.java | 114 ++ .../planning/queryplan/leaf/package-info.java | 19 + .../planning/queryplan/package-info.java | 19 + .../cypher/pojos/EmbeddingTPGMFactory.java | 129 ++ .../single/cypher/pojos/package-info.java | 19 + .../matching/single/package-info.java | 19 + .../BaseTemporalPatternMatchingTest.java | 145 +++ .../operators/matching/TemporalTestData.java | 31 + .../query/TemporalQueryHandlerTest.java | 240 ++++ .../operators/matching/common/query/Util.java | 48 + .../AddTrivialConstraintsTest.java | 110 ++ .../transformation/BoundsInferenceTest.java | 242 ++++ .../transformation/MinMaxUnfoldingTest.java | 211 ++++ .../transformation/NormalizationTest.java | 90 ++ .../SyntacticSubsumptionTest.java | 124 ++ .../TemporalSubsumtionTest.java | 242 ++++ .../TrivialContradictionsTest.java | 119 ++ .../TrivialTautologiesTest.java | 103 ++ .../postprocessing/transformation/Util.java | 49 + .../comparables/DurationComparableTest.java | 88 ++ .../MaxTimePointComparableTest.java | 95 ++ .../MinTimePointComparableTest.java | 90 ++ .../TimeConstantComparableTest.java | 44 + .../TimeLiteralComparableTest.java | 60 + .../TimeSelectorComparableTest.java | 117 ++ ...ingTemporalGraphStatisticsFactoryTest.java | 81 ++ .../BinningTemporalGraphStatisticsTest.java | 735 +++++++++++ .../statistics/binning/pojos/BinningTest.java | 51 + .../binning/pojos/ReservoirSamplerTest.java | 60 + .../pojos/TemporalElementStatsTest.java | 319 +++++ ...mporalPatternMatchingHomomorphismTest.java | 81 ++ ...emporalPatternMatchingIsomorphismTest.java | 79 ++ .../BasePhysicalTPGMOperatorTest.java | 45 + .../FilterAndProjectTemporalEdgesTest.java | 223 ++++ .../FilterAndProjectTemporalVerticesTest.java | 184 +++ .../estimation/CNFEstimationTest.java | 542 +++++++++ .../FilterTemporalEstimatorTest.java | 121 ++ .../estimation/JoinTemporalEstimatorTest.java | 270 +++++ ...emporalQueryPlanTemporalEstimatorTest.java | 273 +++++ .../FilterAndProjectTemporalEdgesTest.java | 146 +++ .../FilterAndProjectTemporalVerticesTest.java | 116 ++ .../pojos/EmbeddingTPGMFactoryTest.java | 92 ++ .../homomorphism/HomomorphismAfterData.java | 69 ++ .../homomorphism/HomomorphismAsOfData.java | 73 ++ .../homomorphism/HomomorphismBeforeData.java | 69 ++ .../homomorphism/HomomorphismBetweenData.java | 71 ++ .../HomomorphismComparisonData.java | 80 ++ .../HomomorphismContainsData.java | 76 ++ .../homomorphism/HomomorphismEqualsTest.java | 57 + .../homomorphism/HomomorphismFromToData.java | 70 ++ .../HomomorphismImmediatelyPrecedesTest.java | 66 + .../HomomorphismImmediatelySucceedsTest.java | 66 + .../HomomorphismLengthAtLeastData.java | 73 ++ .../HomomorphismLengthAtMostData.java | 76 ++ .../HomomorphismLongerThanData.java | 94 ++ .../HomomorphismMergeAndJoinData.java | 76 ++ .../homomorphism/HomomorphismMinMaxTest.java | 69 ++ .../homomorphism/HomomorphismOtherData.java | 50 + .../HomomorphismOverlapsData.java | 85 ++ .../HomomorphismPrecedesData.java | 74 ++ .../HomomorphismSelectedData.java | 90 ++ .../HomomorphismSelfLoopData.java | 34 + .../HomomorphismShorterThanData.java | 90 ++ .../HomomorphismSucceedsData.java | 75 ++ .../isomorphism/IsomorphismAfterData.java | 53 + .../isomorphism/IsomorphismAsOfData.java | 47 + .../isomorphism/IsomorphismBeforeData.java | 51 + .../isomorphism/IsomorphismBetweenData.java | 66 + .../IsomorphismComparisonData.java | 61 + .../IsomorphismComplexQueryData.java | 71 ++ .../isomorphism/IsomorphismContainsData.java | 58 + .../isomorphism/IsomorphismEqualsTest.java | 67 ++ .../isomorphism/IsomorphismFromToData.java | 81 ++ .../IsomorphismImmediatelyPrecedesTest.java | 60 + .../IsomorphismImmediatelySucceedsTest.java | 69 ++ .../IsomorphismLengthAtLeastData.java | 71 ++ .../IsomorphismLengthAtMostData.java | 87 ++ .../IsomorphismLongerThanData.java | 135 +++ .../IsomorphismMergeAndJoinData.java | 66 + .../isomorphism/IsomorphismMinMaxTest.java | 57 + .../isomorphism/IsomorphismOverlapsData.java | 60 + .../isomorphism/IsomorphismPrecedesData.java | 61 + .../isomorphism/IsomorphismSelectedData.java | 70 ++ .../IsomorphismShorterThanData.java | 64 + .../isomorphism/IsomorphismSucceedsData.java | 73 ++ .../util/TemporalGradoopTestBase.java | 65 +- .../patternmatchingtest/citibikesample.gdl | 20 + 178 files changed, 18681 insertions(+), 72 deletions(-) create mode 100644 gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparableFactory.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandler.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/CNFPostProcessing.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/QueryTransformation.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/QueryContradictoryException.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraints.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInference.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfolding.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Normalization.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Subsumption.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumption.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumption.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictions.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologies.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/ComparableTPGMFactory.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/QueryComparableTPGM.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparable.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparable.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparable.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TemporalComparable.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparable.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparable.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparable.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/ComparableFactory.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/ComparisonUtil.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatistics.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatisticsFactory.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatistics.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactory.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/ElementsToStats.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/Binning.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/ReservoirSampler.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/TemporalElementStats.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatistics.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatisticsFactory.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/TemporalPatternMatching.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/CypherTemporalPatternMatching.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbeddingTPGM.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdges.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVertices.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalEdge.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalVertex.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimation.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimator.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimator.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalEstimator.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanEstimator.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/TemporalPlanTableEntry.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesNode.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesNode.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactory.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/package-info.java create mode 100644 gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/package-info.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/BaseTemporalPatternMatchingTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/TemporalTestData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandlerTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/Util.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraintsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInferenceTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfoldingTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/NormalizationTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumptionTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumtionTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictionsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologiesTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Util.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparableTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparableTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparableTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparableTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparableTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparableTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactoryTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/BinningTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/ReservoirSamplerTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/TemporalElementStatsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingHomomorphismTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingIsomorphismTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/BasePhysicalTPGMOperatorTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdgesTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVerticesTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimationTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimatorTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimatorTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanTemporalEstimatorTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactoryTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAfterData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAsOfData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBeforeData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBetweenData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismComparisonData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismContainsData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismEqualsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismFromToData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelyPrecedesTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelySucceedsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtLeastData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtMostData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLongerThanData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMergeAndJoinData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMinMaxTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOtherData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOverlapsData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismPrecedesData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelectedData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelfLoopData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismShorterThanData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSucceedsData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAfterData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAsOfData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBeforeData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBetweenData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComparisonData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComplexQueryData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismContainsData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismEqualsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismFromToData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelyPrecedesTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelySucceedsTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtLeastData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtMostData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLongerThanData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMergeAndJoinData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMinMaxTest.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismOverlapsData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismPrecedesData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSelectedData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismShorterThanData.java create mode 100644 gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSucceedsData.java create mode 100755 gradoop-temporal/src/test/resources/data/patternmatchingtest/citibikesample.gdl diff --git a/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java b/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java index df04ed476ee2..fcde673f06f3 100644 --- a/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java +++ b/gradoop-common/src/main/java/org/gradoop/common/util/AsciiGraphLoader.java @@ -39,7 +39,7 @@ /** * Creates collections of graphs, vertices and edges from a given GDL script. * - * @see GDL on GitHub + * @see GDL on GitHub * * @param graph head type * @param vertex type diff --git a/gradoop-common/src/main/resources/META-INF/NOTICE b/gradoop-common/src/main/resources/META-INF/NOTICE index f8c2f341e183..2033e624b319 100644 --- a/gradoop-common/src/main/resources/META-INF/NOTICE +++ b/gradoop-common/src/main/resources/META-INF/NOTICE @@ -3,7 +3,6 @@ Copyright 2014-2019 Leipzig University (Database Research Group) This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- com.github.s1ck:gdl:0.3 - org.apache.flink:flink-java:1.7.0 - org.apache.hbase:hbase-server:1.4.3 - org.codehaus.jettison:jettison:1.3.7 diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java index e4a5aff2e236..9a4a33b7841e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/QueryHandler.java @@ -666,4 +666,12 @@ public void updateGeneratedVariableNames(Function renameFunction vertexCache = Collections.unmodifiableMap(newVertexCache); edgeCache = Collections.unmodifiableMap(newEdgeCache); } + + /** + * Returns the GDL handler + * @return GDL handler + */ + public GDLHandler getGdlHandler() { + return gdlHandler; + } } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java index d3049947c994..273a9dff58ec 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparable.java @@ -78,4 +78,10 @@ public static QueryComparable createFrom(ComparableExpression expression) { * @return set of property keys */ public abstract Set getPropertyKeys(String variable); + + /** + * Returns the wrapped comparable + * @return wrapped comparable + */ + public abstract ComparableExpression getWrappedComparable(); } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparableFactory.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparableFactory.java new file mode 100644 index 000000000000..1f5d320af4df --- /dev/null +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryComparableFactory.java @@ -0,0 +1,34 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.flink.model.impl.operators.matching.common.query.predicates; + +import org.gradoop.gdl.model.comparables.ComparableExpression; +import java.io.Serializable; + +/** + * Factory for @link{QueryComparable}s in order to support integration of newer GDL versions + * in gradoop-temporal + */ +public abstract class QueryComparableFactory implements Serializable { + + /** + * Creates a {@link QueryComparable} from a GDL comparable expression + * + * @param comparable comparable to create wrapper for + * @return QueryComparable + */ + public abstract QueryComparable createFrom(ComparableExpression comparable); +} diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java index 524e6f11299f..1b0f10eb00e4 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/QueryPredicate.java @@ -30,30 +30,42 @@ import java.io.Serializable; /** - * Wrapps a Predicate + * Wrapper class for a Predicate */ public abstract class QueryPredicate implements Serializable { /** * Generic wrapper function to createFrom a given predicate + * * @param predicate the predicate to be warpped * @return the wrapped predicate */ public static QueryPredicate createFrom(Predicate predicate) { + return QueryPredicate.createFrom(predicate, null); + } + + /** + * Generic wrapper function to createFrom a given predicate + * + * @param predicate the predicate to be wrapped + * @param comparableFactory factory for comparable + * @return the wrapped predicate + */ + public static QueryPredicate createFrom(Predicate predicate, QueryComparableFactory comparableFactory) { if (predicate.getClass() == And.class) { - return new AndPredicate((And) predicate); + return new AndPredicate((And) predicate, comparableFactory); } else if (predicate.getClass() == Or.class) { - return new OrPredicate((Or) predicate); + return new OrPredicate((Or) predicate, comparableFactory); } else if (predicate.getClass() == Xor.class) { - return new XorPredicate((Xor) predicate); + return new XorPredicate((Xor) predicate, comparableFactory); } else if (predicate.getClass() == Not.class) { - return new NotPredicate((Not) predicate); + return new NotPredicate((Not) predicate, comparableFactory); } else if (predicate.getClass() == Comparison.class) { - return new ComparisonExpression((Comparison) predicate); + return new ComparisonExpression((Comparison) predicate, comparableFactory); } else { throw new IllegalArgumentException(predicate.getClass() + " is not a GDL Predicate"); } @@ -61,6 +73,7 @@ public static QueryPredicate createFrom(Predicate predicate) { /** * Converts the predicate into Conjunctive Normal Form + * * @return the predicate in CNF */ public abstract CNF asCNF(); diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java index 49d3d764ca84..a7beb877a189 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/AndPredicate.java @@ -16,6 +16,7 @@ package org.gradoop.flink.model.impl.operators.matching.common.query.predicates.booleans; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparableFactory; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.gdl.model.predicates.booleans.And; @@ -30,16 +31,34 @@ public class AndPredicate extends QueryPredicate { */ private final And and; + /** + * Optional factory for creating QueryComparables + */ + private final QueryComparableFactory comparableFactory; + /** * Returns a new AndPredicate + * * @param and the predicate */ public AndPredicate(And and) { + this(and, null); + } + + /** + * Returns a new AndPredicate + * + * @param and the predicate + * @param comparableFactory factory for query comparables + */ + public AndPredicate(And and, QueryComparableFactory comparableFactory) { this.and = and; + this.comparableFactory = comparableFactory; } /** * Converts the predicate into conjunctive normal form + * * @return predicate in CNF */ public CNF asCNF() { @@ -49,18 +68,20 @@ public CNF asCNF() { /** * Retruns the wrapped left hand side predicate + * * @return the left hand side */ public QueryPredicate getLhs() { - return QueryPredicate.createFrom(and.getArguments()[0]); + return QueryPredicate.createFrom(and.getArguments()[0], comparableFactory); } /** * Retruns the wrapped right hand side predicate + * * @return the right hand side */ public QueryPredicate getRhs() { - return QueryPredicate.createFrom(and.getArguments()[1]); + return QueryPredicate.createFrom(and.getArguments()[1], comparableFactory); } @Override diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java index 40992ffc6fdd..5aca4b1559c2 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/NotPredicate.java @@ -17,6 +17,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparableFactory; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; import org.gradoop.gdl.model.comparables.ComparableExpression; @@ -39,16 +40,34 @@ public class NotPredicate extends QueryPredicate { */ private final Not not; + /** + * Optional factory for creating QueryComparables + */ + private final QueryComparableFactory comparableFactory; + /** * Create a new wrapper + * * @param not the wrapped not predicate */ public NotPredicate(Not not) { + this(not, null); + } + + /** + * Create a new wrapper + * + * @param not the wrapped not predicate + * @param comparableFactory factory for comparables + */ + public NotPredicate(Not not, QueryComparableFactory comparableFactory) { this.not = not; + this.comparableFactory = comparableFactory; } /** * Converts the predicate into conjunctive normal form + * * @return predicate in cnf */ @Override @@ -58,20 +77,21 @@ public CNF asCNF() { if (expression.getClass() == Comparison.class) { CNF cnf = new CNF(); CNFElement cnfElement = new CNFElement(); - cnfElement.addPredicate(new ComparisonExpression(invertComparison((Comparison) expression))); + cnfElement.addPredicate(new ComparisonExpression( + invertComparison((Comparison) expression), comparableFactory)); cnf.addPredicate(cnfElement); return cnf; } else if (expression.getClass() == Not.class) { - return QueryPredicate.createFrom(expression.getArguments()[0]).asCNF(); + return QueryPredicate.createFrom(expression.getArguments()[0], comparableFactory).asCNF(); } else if (expression.getClass() == And.class) { Predicate[] otherArguments = expression.getArguments(); Or or = new Or( new Not(otherArguments[0]), - new Not(otherArguments[0]) + new Not(otherArguments[1]) ); - return QueryPredicate.createFrom(or).asCNF(); + return QueryPredicate.createFrom(or, comparableFactory).asCNF(); } else if (expression.getClass() == Or.class) { Predicate[] otherArguments = expression.getArguments(); @@ -80,7 +100,7 @@ public CNF asCNF() { new Not(otherArguments[1]) ); - return QueryPredicate.createFrom(and).asCNF(); + return QueryPredicate.createFrom(and, comparableFactory).asCNF(); } else { Predicate[] otherArguments = expression.getArguments(); @@ -90,16 +110,17 @@ public CNF asCNF() { otherArguments[1]), new And( new Not(otherArguments[0]), - new Not(otherArguments[0])) + new Not(otherArguments[1])) ); - return QueryPredicate.createFrom(or).asCNF(); + return QueryPredicate.createFrom(or, comparableFactory).asCNF(); } } /** * Invert a comparison * eg NOT(a > b) == (a <= b) + * * @param comparison the comparison that will be inverted * @return inverted comparison */ diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java index 4ec1ae0ca9fa..1d5f57c584ed 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/OrPredicate.java @@ -16,13 +16,14 @@ package org.gradoop.flink.model.impl.operators.matching.common.query.predicates.booleans; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparableFactory; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.gdl.model.predicates.booleans.Or; import java.util.Objects; /** - * Wraps an {@link org.s1ck.gdl.model.predicates.booleans.Or} predicate + * Wraps an {@link org.gradoop.gdl.model.predicates.booleans.Or} predicate */ public class OrPredicate extends QueryPredicate { /** @@ -30,16 +31,34 @@ public class OrPredicate extends QueryPredicate { */ private final Or or; + /** + * Optional factory for creating QueryComparables + */ + private final QueryComparableFactory comparableFactory; + /** * Creates a new or wrapper + * * @param or the wrapped or predicate */ public OrPredicate(Or or) { + this(or, null); + } + + /** + * Creates a new or wrapper + * + * @param or the wrapped or predicate + * @param comparableFactory factory for query comparables + */ + public OrPredicate(Or or, QueryComparableFactory comparableFactory) { this.or = or; + this.comparableFactory = comparableFactory; } /** * Converts the predicate into conjunctive normal form + * * @return predicate in cnf */ public CNF asCNF() { @@ -48,18 +67,20 @@ public CNF asCNF() { /** * Returns the left hand side predicate + * * @return the left hand side predicate */ public QueryPredicate getLhs() { - return QueryPredicate.createFrom(or.getArguments()[0]); + return QueryPredicate.createFrom(or.getArguments()[0], comparableFactory); } /** * Returns the right hand side predicate + * * @return the right hand side predicate */ public QueryPredicate getRhs() { - return QueryPredicate.createFrom(or.getArguments()[1]); + return QueryPredicate.createFrom(or.getArguments()[1], comparableFactory); } @Override diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java index 2239d1c726e4..1ffc328ddf84 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/booleans/XorPredicate.java @@ -16,6 +16,7 @@ package org.gradoop.flink.model.impl.operators.matching.common.query.predicates.booleans; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparableFactory; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.gdl.model.predicates.Predicate; import org.gradoop.gdl.model.predicates.booleans.And; @@ -34,13 +35,29 @@ public class XorPredicate extends QueryPredicate { */ private final Xor xor; + /** + * Optional factory for creating QueryComparables + */ + private final QueryComparableFactory comparableFactory; + /** * Creates a new Wrapper * * @param xor The wrapped xor predicate */ public XorPredicate(Xor xor) { + this(xor, null); + } + + /** + * Creates a new Wrapper + * + * @param xor The wrapped xor predicate + * @param comparableFactory factory for comparables + */ + public XorPredicate(Xor xor, QueryComparableFactory comparableFactory) { this.xor = xor; + this.comparableFactory = comparableFactory; } /** @@ -53,7 +70,8 @@ public CNF asCNF() { Predicate rhs = xor.getArguments()[1]; QueryPredicate wrapper = QueryPredicate.createFrom( - new Or(new And(lhs, new Not(rhs)), new And(new Not(lhs), rhs)) + new Or(new And(lhs, new Not(rhs)), new And(new Not(lhs), rhs)), + comparableFactory ); return wrapper.asCNF(); @@ -61,18 +79,20 @@ public CNF asCNF() { /** * Returns the wrapped left hand side predicate + * * @return wrapped left hand side predicate */ public QueryPredicate getLhs() { - return QueryPredicate.createFrom(xor.getArguments()[0]); + return QueryPredicate.createFrom(xor.getArguments()[0], comparableFactory); } /** * Returns the wrapped right hand side predicate + * * @return wrapped right hand side predicate */ public QueryPredicate getRhs() { - return QueryPredicate.createFrom(xor.getArguments()[1]); + return QueryPredicate.createFrom(xor.getArguments()[1], comparableFactory); } @Override diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java index c99a9e6073ce..b213cafba042 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/ElementSelectorComparable.java @@ -20,6 +20,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.gdl.model.comparables.ComparableExpression; import org.gradoop.gdl.model.comparables.ElementSelector; import java.util.HashSet; @@ -67,6 +68,11 @@ public Set getPropertyKeys(String variable) { return new HashSet<>(); } + @Override + public ComparableExpression getWrappedComparable() { + return elementSelector; + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java index 2d43e41c7b69..97aea428224f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/LiteralComparable.java @@ -21,13 +21,14 @@ import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.ComparableExpression; import java.util.HashSet; import java.util.Objects; import java.util.Set; /** - * Wraps a {@link org.s1ck.gdl.model.comparables.Literal} + * Wraps a {@link org.gradoop.gdl.model.comparables.Literal} */ public class LiteralComparable extends QueryComparable { /** @@ -75,6 +76,11 @@ public Set getPropertyKeys(String variable) { return new HashSet<>(0); } + @Override + public ComparableExpression getWrappedComparable() { + return literal; + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java index 194c05e09149..72ec3ead014e 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/comparables/PropertySelectorComparable.java @@ -21,6 +21,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.gdl.model.comparables.ComparableExpression; import org.gradoop.gdl.model.comparables.PropertySelector; import java.util.HashSet; @@ -38,6 +39,7 @@ public class PropertySelectorComparable extends QueryComparable { /** * Creates a new wrapper + * * @param propertySelector the wrapped property selector */ public PropertySelectorComparable(PropertySelector propertySelector) { @@ -93,6 +95,11 @@ public Set getPropertyKeys(String variable) { Sets.newHashSet(propertySelector.getPropertyName()) : new HashSet<>(0); } + @Override + public ComparableExpression getWrappedComparable() { + return propertySelector; + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java index f9655f9f079f..3463c9a6b194 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/expressions/ComparisonExpression.java @@ -20,6 +20,7 @@ import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparableFactory; import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; @@ -38,28 +39,51 @@ public class ComparisonExpression extends QueryPredicate { */ private final Comparison comparison; + /** + * Optional factory for query comparables + */ + private QueryComparableFactory comparableFactory = null; + /** * Creates a new comparison wrapped + * * @param comparison the wrapped comparison */ public ComparisonExpression(Comparison comparison) { + this(comparison, null); + } + + /** + * Creates a new wrapped comparison and sets the query comparable factory + * + * @param comparison the wrapped comparison + * @param comparableFactory QueryComparableFactory to use + */ + public ComparisonExpression(Comparison comparison, QueryComparableFactory comparableFactory) { this.comparison = comparison; + this.comparableFactory = comparableFactory; } /** * Returns the wrapped left hand side of the comparison + * * @return wrapped left hand side */ public QueryComparable getLhs() { - return QueryComparable.createFrom(comparison.getComparableExpressions()[0]); + return comparableFactory == null ? + QueryComparable.createFrom(comparison.getComparableExpressions()[0]) : + comparableFactory.createFrom(comparison.getComparableExpressions()[0]); } /** * Returns the wrapped left hand side of the comparison + * * @return wrapped left hand side */ public QueryComparable getRhs() { - return QueryComparable.createFrom(comparison.getComparableExpressions()[1]); + return comparableFactory == null ? + QueryComparable.createFrom(comparison.getComparableExpressions()[1]) : + comparableFactory.createFrom(comparison.getComparableExpressions()[1]); } public Comparator getComparator() { @@ -89,7 +113,6 @@ public boolean evaluate(Embedding embedding, EmbeddingMetaData metaData) { public boolean evaluate(GraphElement element) { PropertyValue lhsValue = getLhs().evaluate(element); PropertyValue rhsValue = getRhs().evaluate(element); - return compare(lhsValue, rhsValue); } @@ -117,9 +140,9 @@ private boolean compare(PropertyValue lhsValue, PropertyValue rhsValue) { } } - /** * Returns the variables referenced by the expression + * * @return set of variables */ public Set getVariables() { @@ -128,6 +151,7 @@ public Set getVariables() { /** * Returns the properties referenced by the expression for a given variable + * * @param variable the variable * @return set of referenced properties */ @@ -138,8 +162,20 @@ public Set getPropertyKeys(String variable) { return properties; } + /** + * Returns a ComparisonExpression that wraps the same comparison, but with lhs and + * rhs switched + * + * @return ComparisonExpression wrapping comparison with lhs and rhs switched + */ + public ComparisonExpression switchSides() { + Comparison switchedComp = comparison.switchSides(); + return new ComparisonExpression(switchedComp, comparableFactory); + } + /** * Converts the predicate into conjunctive normal form + * * @return predicate in cnf */ @Override diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java index f16cba3ee6d5..b1654ab940e3 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/planning/queryplan/unary/ProjectEmbeddingsNode.java @@ -82,6 +82,9 @@ protected EmbeddingMetaData computeEmbeddingMetaData() { embeddingMetaData.setPropertyColumn( projectionKeys.get(i).getLeft(), projectionKeys.get(i).getRight(), i)); + for (String var: childMetaData.getDirectionMapping().keySet()) { + embeddingMetaData.setDirection(var, childMetaData.getDirection(var)); + } return embeddingMetaData; } diff --git a/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java b/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java index aae5e958eedf..821f954bab7f 100644 --- a/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java +++ b/gradoop-flink/src/main/java/org/gradoop/flink/util/FlinkAsciiGraphLoader.java @@ -35,7 +35,7 @@ * Used the {@link AsciiGraphLoader} to generate instances of * {@link LogicalGraph} and {@link GraphCollection} from GDL. * - * @see GDL on GitHub + * @see GDL on GitHub */ public class FlinkAsciiGraphLoader { diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java index 99f98b6c9be5..126476b18914 100644 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java +++ b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/common/query/predicates/CNFElementTest.java @@ -29,6 +29,7 @@ import static org.junit.Assert.*; public class CNFElementTest { + @Test public void extractVariablesTest() { QueryHandler query = new QueryHandler("MATCH (a), (b) WHERE a=b OR a.name = \"Alice\""); @@ -61,54 +62,30 @@ public void testEvaluation() { //Should be true if a = b Embedding embedding = new Embedding(); - embedding.add( - a, - PropertyValue.create("Alfred"), PropertyValue.create(42) - ); + embedding.add(a, PropertyValue.create("Alfred"), PropertyValue.create(42)); embedding.add(a); - embedding.add( - c, - PropertyValue.create(42) - ); + embedding.add(c, PropertyValue.create(42)); assertTrue(cnfElement.evaluate(embedding, metaData)); //Should be true if a.name = "Alice" embedding = new Embedding(); - embedding.add( - a, - PropertyValue.create("Alice"), PropertyValue.create(42) - ); + embedding.add(a, PropertyValue.create("Alice"), PropertyValue.create(42)); embedding.add(GradoopId.get()); - embedding.add( - c, - PropertyValue.create(42) - ); + embedding.add(c, PropertyValue.create(42)); assertTrue(cnfElement.evaluate(embedding, metaData)); //Should be true if a.age > c.age embedding = new Embedding(); - embedding.add( - a, - PropertyValue.create("Alfred"), PropertyValue.create(42) - ); + embedding.add(a, PropertyValue.create("Alfred"), PropertyValue.create(42)); embedding.add(GradoopId.get()); - embedding.add( - c, - PropertyValue.create(23) - ); + embedding.add(c, PropertyValue.create(23)); assertTrue(cnfElement.evaluate(embedding, metaData)); //Should be false otherwise embedding = new Embedding(); - embedding.add( - a, - PropertyValue.create("Alfred"), PropertyValue.create(42) - ); + embedding.add(a, PropertyValue.create("Alfred"), PropertyValue.create(42)); embedding.add(GradoopId.get()); - embedding.add( - c, - PropertyValue.create(42) - ); + embedding.add(c, PropertyValue.create(42)); assertFalse(cnfElement.evaluate(embedding, metaData)); } } diff --git a/gradoop-store/gradoop-hbase/src/main/resources/META-INF/NOTICE b/gradoop-store/gradoop-hbase/src/main/resources/META-INF/NOTICE index 835dbc3dda97..53bb9d7eefeb 100644 --- a/gradoop-store/gradoop-hbase/src/main/resources/META-INF/NOTICE +++ b/gradoop-store/gradoop-hbase/src/main/resources/META-INF/NOTICE @@ -3,7 +3,6 @@ Copyright 2014-2019 Leipzig University (Database Research Group) This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) -- com.github.s1ck:gdl:0.3 - org.codehaus.jettison:jettison:1.3.7 - org.apache.hbase:hbase-hadoop-compat:1.4.3 - org.apache.hbase:hbase-server:1.4.3 diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java index 2d7a5b5b7709..497ed363089b 100644 --- a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/api/TemporalGraphOperators.java @@ -17,6 +17,7 @@ import org.gradoop.flink.model.api.epgm.BaseGraphOperators; import org.gradoop.flink.model.impl.epgm.LogicalGraph; +import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; import org.gradoop.temporal.model.api.functions.TemporalPredicate; import org.gradoop.temporal.model.impl.TemporalGraph; import org.gradoop.temporal.model.impl.TemporalGraphCollection; @@ -28,6 +29,10 @@ import org.gradoop.temporal.model.impl.functions.predicates.FromTo; import org.gradoop.temporal.model.impl.functions.predicates.ValidDuring; import org.gradoop.temporal.model.impl.operators.diff.Diff; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.dummy.DummyTemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.CypherTemporalPatternMatching; import org.gradoop.temporal.model.impl.operators.snapshot.Snapshot; import org.gradoop.temporal.model.impl.operators.verify.VerifyAndUpdateEdgeValidity; import org.gradoop.temporal.model.impl.pojo.TemporalEdge; @@ -88,7 +93,7 @@ default TemporalGraph asOf(long timestamp) { * {@code FROM fromTimestamp TO toTimestamp} where both values are timestamps in milliseconds. * * @param fromTimestamp the from timestamp in milliseconds to query - * @param toTimestamp the to timestamp in milliseconds to query + * @param toTimestamp the to timestamp in milliseconds to query * @return the snapshot as a temporal graph * @see Snapshot * @see FromTo @@ -102,7 +107,7 @@ default TemporalGraph fromTo(long fromTimestamp, long toTimestamp) { * {@code BETWEEN fromTimestamp AND toTimestamp} where both values are timestamps in milliseconds. * * @param fromTimestamp the from timestamp in milliseconds to query - * @param toTimestamp the to timestamp in milliseconds to query + * @param toTimestamp the to timestamp in milliseconds to query * @return the snapshot as a temporal graph * @see Snapshot * @see Between @@ -116,7 +121,7 @@ default TemporalGraph between(long fromTimestamp, long toTimestamp) { * {@code CONTAINED IN (fromTimestamp, toTimestamp)} where both values are timestamps in milliseconds. * * @param fromTimestamp the from timestamp in milliseconds to query - * @param toTimestamp the to timestamp in milliseconds to query + * @param toTimestamp the to timestamp in milliseconds to query * @return the snapshot as a temporal graph * @see Snapshot * @see ContainedIn @@ -130,7 +135,7 @@ default TemporalGraph containedIn(long fromTimestamp, long toTimestamp) { * {@code VALID DURING (fromTimestamp, toTimestamp)} where both values are timestamps in milliseconds. * * @param fromTimestamp the from timestamp in milliseconds to query - * @param toTimestamp the to timestamp in milliseconds to query + * @param toTimestamp the to timestamp in milliseconds to query * @return the snapshot as a temporal graph * @see Snapshot * @see ValidDuring @@ -144,7 +149,7 @@ default TemporalGraph validDuring(long fromTimestamp, long toTimestamp) { * {@code CREATED IN (fromTimestamp, toTimestamp)} where both values are timestamps in milliseconds. * * @param fromTimestamp the from timestamp in milliseconds to query - * @param toTimestamp the to timestamp in milliseconds to query + * @param toTimestamp the to timestamp in milliseconds to query * @return the snapshot as a temporal graph * @see Snapshot * @see CreatedIn @@ -158,7 +163,7 @@ default TemporalGraph createdIn(long fromTimestamp, long toTimestamp) { * {@code DELETED IN (fromTimestamp, toTimestamp)} where both values are timestamps in milliseconds. * * @param fromTimestamp the from timestamp in milliseconds to query - * @param toTimestamp the to timestamp in milliseconds to query + * @param toTimestamp the to timestamp in milliseconds to query * @return the snapshot as a temporal graph * @see Snapshot * @see DeletedIn @@ -217,18 +222,120 @@ default TemporalGraph diff(TemporalPredicate firstSnapshot, TemporalPredicate se * The resulting graph will not be verified, i.e. dangling edges could occur. Use the * {@code verify()} operator to validate the graph. The graph head is preserved. * - * @param firstSnapshot The predicate used to determine the first snapshot. + * @param firstSnapshot The predicate used to determine the first snapshot. * @param secondSnapshot The predicate used to determine the second snapshot. - * @param dimension The time dimension that will be considered by the predicates. + * @param dimension The time dimension that will be considered by the predicates. * @return A temporal graph containing the union of vertex and edge sets of both snapshots, defined by the * given two predicate functions. A property with key {@link Diff#PROPERTY_KEY} is set on each graph * element with a numerical value (-1, 0, 1) defined above. */ default TemporalGraph diff(TemporalPredicate firstSnapshot, TemporalPredicate secondSnapshot, - TimeDimension dimension) { + TimeDimension dimension) { return callForGraph(new Diff(firstSnapshot, secondSnapshot, dimension)); } + /** + * Evaluates the given query using the Temporal-GDL query engine. The engine uses default morphism + * strategies, which is vertex homomorphism and edge isomorphism. The vertex and edge data of the graph + * elements is attached to the resulting vertices. + *

+ * Note, that this method used no statistics about the data graph which may result in bad runtime + * performance. Use {@link #temporalQuery(String, TemporalGraphStatistics)} to provide statistics for the + * query planner. + * + * @param temporalGdlQuery A Temporal-GDL query as {@link String} + * @return graph collection containing matching subgraphs + */ + default TemporalGraphCollection temporalQuery(String temporalGdlQuery) { + return temporalQuery(temporalGdlQuery, new DummyTemporalGraphStatistics()); + } + + /** + * Evaluates the given query using the Temporal-GDL query engine. The engine uses default morphism + * strategies, which is vertex homomorphism and edge isomorphism. The vertex and edge data of the data graph + * elements is attached to the resulting vertices. + *

+ * Note, that this method used no statistics about the data graph which may result in bad runtime + * performance. Use {@link #temporalQuery(String, String, TemporalGraphStatistics)} to provide statistics + * for the query planner. + *

+ * In addition, the operator can be supplied with a construction pattern allowing the creation of new graph + * elements based on variable bindings of the match pattern. Consider the following example: + *
+ * {@code graph.query( + * "MATCH (a:Author)-[:WROTE]->(:Paper)<-[:WROTE]-(b:Author) WHERE a <> b", + * "(a)-[:CO_AUTHOR]->(b)")} + *

+ * The query pattern is looking for pairs of authors that worked on the same paper. + * The construction pattern defines a new edge of type CO_AUTHOR between the two entities. + * + * @param temporalGdlQuery A Temporal-GDL query as {@link String} + * @param constructionPattern Construction pattern in Temporal-GDL format + * @return graph collection containing the output of the construct pattern + */ + default TemporalGraphCollection temporalQuery(String temporalGdlQuery, String constructionPattern) { + return temporalQuery(temporalGdlQuery, constructionPattern, new DummyTemporalGraphStatistics()); + } + + /** + * Evaluates the given query using the Temporal-GDL query engine. The engine uses default morphism + * strategies, which is vertex homomorphism and edge isomorphism. The vertex and edge data of the data graph + * elements is attached to the resulting vertices. + * + * @param temporalGdlQuery A Temporal-GDL query as {@link String} + * @param graphStatistics statistics about the data graph + * @return graph collection containing matching subgraphs + */ + default TemporalGraphCollection temporalQuery(String temporalGdlQuery, + TemporalGraphStatistics graphStatistics) { + return temporalQuery(temporalGdlQuery, null, graphStatistics); + } + + /** + * Evaluates the given query using the Temporal-GDL query engine. The engine uses default morphism + * strategies, which is vertex homomorphism and edge isomorphism. The vertex and edge data of the data graph + * elements is attached to the resulting vertices. + *

+ * In addition, the operator can be supplied with a construction pattern allowing the creation of new graph + * elements based on variable bindings of the match pattern. Consider the following example: + *
+ * {@code graph.query( + * "MATCH (a:Author)-[:WROTE]->(:Paper)<-[:WROTE]-(b:Author) WHERE a <> b", + * "(a)-[:CO_AUTHOR]->(b)")} + *

+ * The query pattern is looking for pairs of authors that worked on the same paper. + * The construction pattern defines a new edge of type CO_AUTHOR between the two entities. + * + * @param temporalGdlQuery A Temporal-GDL query as {@link String} + * @param constructionPattern Construction pattern in Temporal-GDL format + * @param graphStatistics Statistics about the data graph + * @return graph collection containing the output of the construct pattern + */ + default TemporalGraphCollection temporalQuery(String temporalGdlQuery, String constructionPattern, + TemporalGraphStatistics graphStatistics) { + return temporalQuery(temporalGdlQuery, constructionPattern, true, MatchStrategy.HOMOMORPHISM, + MatchStrategy.ISOMORPHISM, graphStatistics); + } + + /** + * Evaluates the given query using the Temporal-GDL query engine. + * + * @param temporalGdlQuery A Temporal-GDL query as {@link String} + * @param constructionPattern Construction pattern in Temporal-GDL format + * @param attachData attach original vertex and edge data to the result + * @param vertexStrategy morphism setting for vertex mapping + * @param edgeStrategy morphism setting for edge mapping + * @param stats statistics about the data graph + * @return graph collection containing the output of the construct pattern or a graph collection containing + * matching subgraphs if the construction pattern is {@code null}. + */ + default TemporalGraphCollection temporalQuery(String temporalGdlQuery, String constructionPattern, + boolean attachData, MatchStrategy vertexStrategy, MatchStrategy edgeStrategy, + TemporalGraphStatistics stats) { + return callForCollection( + new CypherTemporalPatternMatching(temporalGdlQuery, constructionPattern, attachData, vertexStrategy, + edgeStrategy, stats, new CNFPostProcessing())); + } //---------------------------------------------------------------------------- // Utilities //---------------------------------------------------------------------------- diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/package-info.java new file mode 100644 index 000000000000..3025fa2a1a0d --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains functionality used by all temporal pattern matching implementations. + */ +package org.gradoop.temporal.model.impl.operators.matching.common; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandler.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandler.java new file mode 100644 index 000000000000..135859d05871 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandler.java @@ -0,0 +1,211 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query; + +import org.gradoop.flink.model.impl.operators.matching.common.query.QueryHandler; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; +import org.gradoop.gdl.GDLHandler; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.Predicate; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.ComparableTPGMFactory; + +import java.util.HashMap; +import java.util.Map; + +import static org.gradoop.gdl.utils.Comparator.LTE; + +/** + * Wraps a {@link GDLHandler} and adds functionality needed for query + * processing during graph pattern matching. + * Extension of the flink QueryHandler for temporal queries + */ +public class TemporalQueryHandler extends QueryHandler { + /** + * Time Literal representing the system time at the start of query processing + */ + private final TimeLiteral now; + /** + * Transformations to apply to the query cnf + */ + private final CNFPostProcessing cnfPostProcessing; + + /** + * The query CNF + */ + private CNF cnf; + + /** + * Creates a new query handler that postprocesses the CNF with a default + * {@link CNFPostProcessing} + * + * @param gdlString GDL query string + * @throws QueryContradictoryException if a contradiction in the query is encountered + */ + public TemporalQueryHandler(String gdlString) throws QueryContradictoryException { + this(gdlString, new CNFPostProcessing()); + } + + /** + * Creates a new query handler. + * + * @param gdlString GDL query string + * @param postProcessing transformations to apply to the CNF + * @throws QueryContradictoryException if a contradiction in the query is encountered + */ + public TemporalQueryHandler(String gdlString, CNFPostProcessing postProcessing) + throws QueryContradictoryException { + super(gdlString); + this.cnfPostProcessing = postProcessing; + now = new TimeLiteral("now"); + initCNF(); + } + + /** + * Returns all available predicates in Conjunctive Normal Form {@link CNF}. If there are no + * predicates defined in the query, a CNF containing zero predicates is returned. + * + * @return predicates + */ + @Override + public CNF getPredicates() { + return cnf; + } + + /** + * Initiates the query CNF from the query, including postprocessing + * + * @throws QueryContradictoryException if query is found to be contradictory + */ + private void initCNF() throws QueryContradictoryException { + if (getGdlHandler().getPredicates().isPresent()) { + Predicate predicate = getGdlHandler().getPredicates().get(); + // some transformations on the GDL query before conversion to CNF + predicate = preprocessPredicate(predicate); + CNF rawCNF = QueryPredicate.createFrom(predicate, new ComparableTPGMFactory(now)).asCNF(); + cnf = cnfPostProcessing.postprocess(rawCNF); + } else { + // empty CNF + cnf = new CNF(); + } + } + + /** + * Pipeline for preprocessing GDL query predicates. Currently, only predicates for + * valid interval overlap of edges and their vertices are added. + * + * @param predicate the GDL predicate to preprocess + * @return preprocessed GDL predicate + */ + private Predicate preprocessPredicate(Predicate predicate) { + return addEdgeOverlapPredicates(predicate); + } + + /** + * Augments a predicate by constraints ensuring that valid times of + * edges and their adjacent nodes overlap + * + * @param predicate the predicate to augment + * @return predicate augmented by edge overlaps constraints for every edge + */ + private Predicate addEdgeOverlapPredicates(Predicate predicate) { + GDLHandler handler = getGdlHandler(); + Map edgeCache = handler.getEdgeCache(); + + // maps vertex ids to vertex variables + Map vertexMap = new HashMap<>(); + for (Vertex vertex : handler.getVertexCache(true, true).values()) { + vertexMap.put(vertex.getId(), vertex.getVariable()); + } + + // determine all (vertex, edge, vertex) triples + for (String edgeVar : handler.getEdgeCache().keySet()) { + Edge edge = edgeCache.get(edgeVar); + // no temporal predicates for paths + if (edge.hasVariableLength()) { + continue; + } + String sourceVar = vertexMap.get(edge.getSourceVertexId()); + String targetVar = vertexMap.get(edge.getTargetVertexId()); + + + // all relevant val-selectors + TimeSelector eFrom = new TimeSelector(edgeVar, TimeSelector.TimeField.VAL_FROM); + TimeSelector eTo = new TimeSelector(edgeVar, TimeSelector.TimeField.VAL_TO); + + TimeSelector sFrom = new TimeSelector(sourceVar, TimeSelector.TimeField.VAL_FROM); + TimeSelector sTo = new TimeSelector(sourceVar, TimeSelector.TimeField.VAL_TO); + + TimeSelector tFrom = new TimeSelector(targetVar, TimeSelector.TimeField.VAL_FROM); + TimeSelector tTo = new TimeSelector(targetVar, TimeSelector.TimeField.VAL_TO); + + // create predicates edgeVar.val.overlaps(sourceVar.val) AND + // edgeVar.val.overlaps(targetVar.val)... + Predicate overlaps = new Comparison( + new MaxTimePoint(eFrom, sFrom, tFrom), LTE, new MinTimePoint(eTo, sTo, tTo) + ); + // ...and add them to the resulting predicate + predicate = new And(predicate, overlaps); + } + return predicate; + } + + /** + * Returns the TimeLiteral representing the systime at the start of query processing + * + * @return TimeLiteral representing the systime at the start of query processing + */ + public TimeLiteral getNow() { + return now; + } + + /** + * Checks if the graph returns a single vertex and no edges (no loops). + * + * @return true, if single vertex graph + */ + public boolean isSingleVertexGraph() { + return getVertexCount() == 1 && getEdgeCount() == 0; + } + + /** + * Returns the number of vertices in the query graph. + * + * @return vertex count + */ + public int getVertexCount() { + return getVertices().size(); + } + + /** + * Returns the number of edges in the query graph. + * + * @return edge count + */ + public int getEdgeCount() { + return getEdges().size(); + } + +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/package-info.java new file mode 100644 index 000000000000..23a1629625ec --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains classes related to query processing during pattern matching. + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/CNFPostProcessing.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/CNFPostProcessing.java new file mode 100644 index 000000000000..f52e3c457579 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/CNFPostProcessing.java @@ -0,0 +1,97 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.AddTrivialConstraints; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.BoundsInference; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.MinMaxUnfolding; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.Normalization; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.SyntacticSubsumption; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.TemporalSubsumption; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.TrivialContradictions; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation.TrivialTautologies; + +import java.util.Arrays; +import java.util.List; + +/** + * Postprocessing pipeline for CNFs. + * Contains a list of {@link QueryTransformation} objects, that are applied to a CNF + */ +public class CNFPostProcessing { + + /** + * List of transformations. They are applied in the order of the list + */ + private final List transformations; + + /** + * Creates a new custom postprocessing pipeline + * + * @param transformations list of transformations to apply + */ + public CNFPostProcessing(List transformations) { + this.transformations = transformations; + } + + /** + * Creates a default postprocessing pipeline: + * 1. Normalization + * 2. "Translate" suitable Min/Max expressions to simple predicates + * 3. subsumption on a purely syntactical basis + * 4. checking for trivial tautologies, maybe simplifying the query + * 5. checking for trivial contradictions, maybe simplifying the query + * 6. checking for less trivial contradictions in temporal comparisons + * 7. inferring implicit temporal information + * 8. subsumption with temporal information + * 9. deduplication of clauses + */ + public CNFPostProcessing() { + this(Arrays.asList( + new Normalization(), + new MinMaxUnfolding(), + new SyntacticSubsumption(), + new TrivialTautologies(), + new TrivialContradictions(), + new AddTrivialConstraints(), + //new CheckForCircles(), + new BoundsInference(), + new TemporalSubsumption(), + new TrivialTautologies() + )); + } + + /** + * Executes the postprocessing pipeline on a CNF + * + * @param cnf CNF to postprocess + * @return postprocessed CNF + * @throws QueryContradictoryException if the CNF is found to be contradictory + * during the postprocessing + */ + public CNF postprocess(CNF cnf) throws QueryContradictoryException { + for (QueryTransformation transformation : transformations) { + cnf = transformation.transformCNF(cnf); + } + return cnf; + } + + public List getTransformations() { + return transformations; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/QueryTransformation.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/QueryTransformation.java new file mode 100644 index 000000000000..a94eef8ffa0d --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/QueryTransformation.java @@ -0,0 +1,35 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; + +/** + * Common interface for all query transformations + */ +public interface QueryTransformation { + + /** + * Applies a transformation on a CNF + * + * @param cnf the CNF to transform + * @return transformed CNF + * @throws QueryContradictoryException if a contradiction in the query is encountered + * during the transformation + */ + CNF transformCNF(CNF cnf) throws QueryContradictoryException; +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/QueryContradictoryException.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/QueryContradictoryException.java new file mode 100644 index 000000000000..6fe5ce4b6e97 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/QueryContradictoryException.java @@ -0,0 +1,22 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions; + +/** + * Exception to indicate a contradictory query + */ +public class QueryContradictoryException extends Exception { +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/package-info.java new file mode 100644 index 000000000000..02f2958beb3a --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/exceptions/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Includes exceptions that may be thrown during query postprocessing + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/package-info.java new file mode 100644 index 000000000000..678fd864fe33 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Includes everything related to query transformation + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraints.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraints.java new file mode 100644 index 000000000000..d4e872eec761 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraints.java @@ -0,0 +1,181 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.QueryTransformation; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.ComparableTPGMFactory; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeLiteralComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeSelectorComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.util.ComparisonUtil; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; + +/** + * Adds constraints a.tx_from<=a.tx_to and a.val_from<=a.val_to + * for every variable a. + * A constraint a.tx_from<=a.tx_to is only added, if a selector + * a.tx_from or a.tx_to is found within the singleton clauses of the CNF (analogously for val) + */ +public class AddTrivialConstraints implements QueryTransformation { + + @Override + public CNF transformCNF(CNF cnf) throws QueryContradictoryException { + // determine all variables of interest for tx and val intervals + List> variableSets = getNecessaryFields(cnf); + Set txVars = variableSets.get(0); + Set valVars = variableSets.get(1); + + // add trivial constraints a.tx_from <= a.tx_to, if necessary + for (String variable : txVars) { + cnf = addSingletonClause(cnf, new Comparison( + new TimeSelector(variable, TimeSelector.TimeField.TX_FROM), + LTE, new TimeSelector(variable, TimeSelector.TimeField.TX_TO) + )); + } + + // add trivial constraints a.val_from <= a.val_to, if necessary + for (String variable : valVars) { + cnf = addSingletonClause(cnf, new Comparison( + new TimeSelector(variable, TimeSelector.TimeField.VAL_FROM), + LTE, new TimeSelector(variable, TimeSelector.TimeField.VAL_TO) + )); + } + + // add all "<" relations between literals that occur in singleton clauses + ArrayList literals = new ArrayList<>(getNecessaryLiterals(cnf)); + literals.sort(new Comparator() { + @Override + public int compare(TimeLiteral timeLiteral, TimeLiteral t1) { + return Long.compare(timeLiteral.getMilliseconds(), t1.getMilliseconds()); + } + }); + for (int i = 0; i < literals.size(); i++) { + for (int j = i + 1; j < literals.size(); j++) { + if (literals.get(i).getMilliseconds() == literals.get(j).getMilliseconds()) { + continue; + } + cnf = addSingletonClause(cnf, new Comparison( + literals.get(i), LT, literals.get(j) + )); + } + } + return cnf; + } + + /** + * Adds a singleton clause to an existing CNF + * + * @param cnf CNF + * @param comparison comparison that makes up the single clause to add + * @return CNF with singleton clause appended + */ + private CNF addSingletonClause(CNF cnf, Comparison comparison) { + return cnf.and(new CNF(Collections.singletonList( + new CNFElement(Collections.singletonList( + new ComparisonExpression(comparison, new ComparableTPGMFactory()))) + ))); + } + + /** + * Generates a set of variables for transaction times and valid times. + * A variable is included in the set for transaction times, iff + * a selector a.tx_(from/to) occurs in a singleton CNF clause. + * (analogously for valid times) + * + * @param cnf CNF + * @return list containing set of tx variables at index 0, set of + * val variables at index 1 + */ + private List> getNecessaryFields(CNF cnf) { + HashSet txSet = new HashSet<>(); + HashSet valSet = new HashSet<>(); + for (CNFElement clause : cnf.getPredicates()) { + + // only temporal singleton clauses are relevant + if (clause.size() != 1 || !ComparisonUtil.isTemporal(clause.getPredicates().get(0))) { + continue; + } else { + + // unwrap the comparison... + QueryComparable[] comparables = new QueryComparable[]{ + clause.getPredicates().get(0).getLhs(), + clause.getPredicates().get(0).getRhs() + }; + for (QueryComparable comparable : comparables) { + // ...and check it for time selectors + if (comparable instanceof TimeSelectorComparable) { + TimeSelector selector = (TimeSelector) + comparable.getWrappedComparable(); + String variable = selector.getVariable(); + // add the variable to the corresponding set(s) + TimeSelector.TimeField field = selector.getTimeProp(); + if (field == TimeSelector.TimeField.TX_FROM || + field == TimeSelector.TimeField.TX_TO) { + txSet.add(variable); + } else { + valSet.add(variable); + } + } + } + } + } + return new ArrayList<>(Arrays.asList(txSet, valSet)); + } + + /** + * Finds all time literals that are included in necessary comparisons, i.e. + * comparisons that make up a single cnf clause + * + * @param cnf CNF to search for necessary time literals + * @return list of time literals that are included in necessary comparisons + */ + private Set getNecessaryLiterals(CNF cnf) { + HashSet literals = new HashSet<>(); + for (CNFElement clause : cnf.getPredicates()) { + // only temporal singleton clauses are relevant + if (clause.size() != 1 || !(ComparisonUtil.isTemporal(clause.getPredicates().get(0)))) { + continue; + } else { + // check the clause for literals and add them to the set + ComparisonExpression comparison = clause.getPredicates().get(0); + if (comparison.getLhs() instanceof TimeLiteralComparable) { + literals.add((TimeLiteral) (comparison.getLhs()).getWrappedComparable()); + } + if (comparison.getRhs() instanceof TimeLiteralComparable) { + literals.add((TimeLiteral) (comparison.getRhs()).getWrappedComparable()); + } + } + } + return literals; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInference.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInference.java new file mode 100644 index 000000000000..9e6dfc068feb --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInference.java @@ -0,0 +1,663 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.apache.commons.lang.SerializationUtils; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.QueryTransformation; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.ComparableTPGMFactory; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.DurationComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MaxTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MinTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeConstantComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeLiteralComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeSelectorComparable; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.LTE; + +/** + * Transformation that aims to infer new, informative bounds for temporal properties + * according to the clauses. + * Furthermore, contradictions are detected. + */ +public class BoundsInference implements QueryTransformation { + + @Override + public CNF transformCNF(CNF cnf) throws QueryContradictoryException { + /* + * stores the newly inferred lower bounds for time selectors + */ + HashMap lowerBounds = new HashMap<>(); + /* + * stores the newly inferred upper bounds for time selectors + */ + HashMap upperBounds = new HashMap<>(); + // clauses (not) to consider + List relevantClauses = cnf.getPredicates().stream() + .filter(this::isRelevantClause) + .collect(Collectors.toList()); + List otherClauses = cnf.getPredicates().stream() + .filter(clause -> !isRelevantClause(clause)) + .collect(Collectors.toList()); + List relevantComparisons = relevantClauses.stream() + .map(clause -> clause.getPredicates().get(0)) + .collect(Collectors.toList()); + + // stores all tuples (a,b) with a=b in relevant comparisons + HashMap> cEq = new HashMap<>(); + // stores all tuples (a,b) with a<=b in relevant comparisons + HashMap> cLeq = new HashMap<>(); + // stores all tuples (a,b) with a> cLt = new HashMap<>(); + // stores all tuples (a,b) with a!=b in relevant comparisons + HashMap> cNeq = new HashMap<>(); + + + // init bounds + for (ComparisonExpression comp : relevantComparisons) { + ComparableExpression lhs = comp.getLhs().getWrappedComparable(); + ComparableExpression rhs = comp.getRhs().getWrappedComparable(); + Comparator comparator = comp.getComparator(); + if (comp.getLhs() instanceof TimeSelectorComparable) { + lowerBounds.put((TimeSelector) lhs, TemporalElement.DEFAULT_TIME_FROM); + upperBounds.put((TimeSelector) lhs, TemporalElement.DEFAULT_TIME_TO); + } + if (comp.getRhs() instanceof TimeSelectorComparable) { + lowerBounds.put((TimeSelector) rhs, TemporalElement.DEFAULT_TIME_FROM); + upperBounds.put((TimeSelector) rhs, TemporalElement.DEFAULT_TIME_TO); + } + // init c-relations + if (comparator.equals(EQ)) { + cEq.putIfAbsent(lhs, new HashSet<>()); + cEq.putIfAbsent(rhs, new HashSet<>()); + cEq.get(lhs).add(rhs); + cEq.get(rhs).add(lhs); + } else if (comparator.equals(Comparator.LTE)) { + cLeq.putIfAbsent(lhs, new HashSet<>()); + cLeq.get(lhs).add(rhs); + } else if (comparator.equals(Comparator.LT)) { + cLt.putIfAbsent(lhs, new HashSet<>()); + cLt.get(lhs).add(rhs); + } else if (comparator.equals(Comparator.NEQ)) { + cNeq.putIfAbsent(lhs, new HashSet<>()); + cNeq.get(lhs).add(rhs); + } + } + + // compute closures for =,<,<= + List>> closures = + computeClosureRelations(cEq, cLeq, cLt); + + checkLtContradictions(closures.get(2)); + // infer new bounds + List> newBounds = updateEq(closures.get(0), lowerBounds, upperBounds); + newBounds = updateLeq(closures.get(1), newBounds.get(0), newBounds.get(1)); + newBounds = updateLt(closures.get(2), newBounds.get(0), newBounds.get(1)); + + // check them for contradictions with NEQ clauses + checkNeqContradictions(cNeq, newBounds.get(0), newBounds.get(1)); + // filter redundant clauses like a.tx_from <= a.tx_to and comparisons between selectors and literals + List remainingOldComparisons = filterRedundantComparisons(relevantComparisons); + // construct new clauses + List newComparisons = comparisons(newBounds.get(0), newBounds.get(1)); + + // construct the CNF + List remainingOldClauses = remainingOldComparisons.stream() + .map(comparison -> new CNFElement(Collections.singletonList(comparison))) + .collect(Collectors.toList()); + List newClauses = newComparisons.stream() + .map(comparison -> new CNFElement(Collections.singletonList(comparison))) + .collect(Collectors.toList()); + + List allClauses = otherClauses; + allClauses.addAll(remainingOldClauses); + allClauses.addAll(newClauses); + return new CNF(allClauses); + } + + /** + * Constructs new comparisons from the inferred bounds + * + * @param lowerBounds inferred lower bounds + * @param upperBounds inferred upper bounds + * @return inferred comparisons + */ + private List comparisons(HashMap lowerBounds, + HashMap upperBounds) { + List newComparisons = new ArrayList<>(); + // for all selectors, as lowerBounds has the same keys as upperBounds + for (Map.Entry entry : lowerBounds.entrySet()) { + TimeSelector selector = entry.getKey(); + Long lower = entry.getValue(); + Long upper = upperBounds.get(selector); + if (lower.equals(upper)) { + newComparisons.add(new ComparisonExpression( + new Comparison(selector, EQ, new TimeLiteral(lower)), + new ComparableTPGMFactory())); + } else { + if (lower > TemporalElement.DEFAULT_TIME_FROM) { + // check if informative: lower bound of from is trivial lower bound of to + if (selector.getTimeProp().equals(TX_TO)) { + TimeSelector txFromSel = new TimeSelector(selector.getVariable(), TX_FROM); + if (lowerBounds.getOrDefault(txFromSel, TemporalElement.DEFAULT_TIME_FROM).equals(lower)) { + continue; + } + } else if (selector.getTimeProp().equals(VAL_TO)) { + TimeSelector valFromSel = new TimeSelector(selector.getVariable(), VAL_FROM); + if (lowerBounds.getOrDefault(valFromSel, TemporalElement.DEFAULT_TIME_FROM).equals(lower)) { + continue; + } + } + // informative => build comparison + newComparisons.add(new ComparisonExpression( + new Comparison(new TimeLiteral(lower), LTE, selector), + new ComparableTPGMFactory())); + } + if (upper < TemporalElement.DEFAULT_TIME_TO) { + // analagously as for lower bounds + // upper bound of to is trivial upper of from + if (selector.getTimeProp().equals(TimeSelector.TimeField.TX_FROM)) { + TimeSelector txToSel = new TimeSelector(selector.getVariable(), TX_TO); + if (upperBounds.getOrDefault(txToSel, TemporalElement.DEFAULT_TIME_TO).equals(upper)) { + continue; + } + } else if (selector.getTimeProp().equals(TimeSelector.TimeField.VAL_FROM)) { + TimeSelector valToSel = new TimeSelector(selector.getVariable(), VAL_TO); + if (upperBounds.getOrDefault(valToSel, TemporalElement.DEFAULT_TIME_TO).equals(upper)) { + continue; + } + } + // informative => build comparison + newComparisons.add(new ComparisonExpression( + new Comparison(selector, LTE, new TimeLiteral(upper)), + new ComparableTPGMFactory())); + } + } + } + return newComparisons; + } + + + /** + * Checks a set of comparisons for trivial comparisons like a.tx_from <= a.tx_to or + * l1 < l2 (l1, l2 literals). + * Furthermore, comparisons between selectors and literals are removed, as they are + * replaced by those gained from the bounds + * + * @param comparisons comparisons to filter + * @return @code{comparisons} without redundant comparisons + */ + private List filterRedundantComparisons(List comparisons) { + List newComparisons = new ArrayList<>(); + + // filter out redundant clauses + for (ComparisonExpression comp : comparisons) { + QueryComparable rhs = comp.getRhs(); + QueryComparable lhs = comp.getLhs(); + Comparator comparator = comp.getComparator(); + // a.tx_from <= a.tx_to redundant + if (rhs instanceof TimeSelectorComparable && lhs instanceof TimeSelectorComparable && + comparator.equals(Comparator.LTE)) { + if (!((TimeSelectorComparable) rhs).getVariable() + .equals(((TimeSelectorComparable) lhs).getVariable())) { + newComparisons.add(comp); + } + } else if (rhs instanceof TimeLiteralComparable && lhs instanceof TimeLiteralComparable) { + // comparisons between literals not informative. + // Contradictory comparisons have been filtered out before + // cf. @link{TrivialContradictions} + continue; + } else if ((rhs instanceof TimeLiteralComparable && lhs instanceof TimeSelectorComparable) || + (rhs instanceof TimeSelectorComparable && lhs instanceof TimeLiteralComparable)) { + // comparisons between selectors and literals are redundant, + // as they are contained in the inferred bounds + continue; + } else { + newComparisons.add(comp); + } + } + return newComparisons; + } + + /** + * Checks for contradictions between the inferred bounds and all relevant != constraints + * + * @param cNeq != constraints as relations + * @param lowerBounds inferred lower bounds + * @param upperBounds inferred upper bounds + * @throws QueryContradictoryException if a contradiction is encountered + */ + private void checkNeqContradictions(HashMap> cNeq, + HashMap lowerBounds, + HashMap upperBounds) + throws QueryContradictoryException { + ArrayList> neq = relationToTuples(cNeq); + for (ArrayList tuple : neq) { + if (tuple.get(0) instanceof TimeSelector) { + TimeSelector sel = (TimeSelector) tuple.get(0); + // if lower(sel)!=upper(sel), no constraint sel!=x is contradictory + if (!lowerBounds.get(sel).equals(upperBounds.get(sel))) { + return; + } + // selector1 != selector2 only contradictory if both selectors have the same fixed value + // (lower(selector1)=upper(selector1)=lower(selector2)=upper(selector2) + if (tuple.get(1) instanceof TimeSelector) { + TimeSelector sel2 = (TimeSelector) tuple.get(1); + if (lowerBounds.get(sel).equals(lowerBounds.get(sel2)) && + lowerBounds.get(sel2).equals(upperBounds.get(sel2))) { + throw new QueryContradictoryException(); + } // selector != literal only contradictory if lower(selector)=upper(selector)=literal + } else if (tuple.get(1) instanceof TimeLiteral) { + Long literalValue = ((TimeLiteral) tuple.get(1)).getMilliseconds(); + if (lowerBounds.get(sel).equals(literalValue)) { + throw new QueryContradictoryException(); + } + } + } else if (tuple.get(0) instanceof TimeLiteral && tuple.get(1) instanceof TimeSelector) { + // selector != literal only contradictory if lower(selector)=upper(selector)=literal + TimeSelector sel = (TimeSelector) tuple.get(1); + Long literalValue = ((TimeLiteral) tuple.get(0)).getMilliseconds(); + if (lowerBounds.get(sel).equals(upperBounds.get(sel)) && lowerBounds.get(sel).equals(literalValue)) { + throw new QueryContradictoryException(); + } + } + } + } + + /** + * Updates lower and upper bounds with the lower-than relations + * + * @param rLt lower-than relations + * @param lowerBounds lower bounds + * @param upperBounds upper bounds + * @return updated lower and upper bounds as a list [lower, upper] + * @throws QueryContradictoryException if a contradiction is encountered + */ + private List> updateLt( + HashMap> rLt, + HashMap lowerBounds, HashMap upperBounds) + throws QueryContradictoryException { + + ArrayList> lt = relationToTuples(rLt); + for (ArrayList tuple : lt) { + TimeSelector selector = null; + Long literalValue = null; + // only comparisons between a selector and a literal are interesting here + // selector < literal => upper(selector) = min(upper(selector), literal-1) + if (tuple.get(0) instanceof TimeSelector && tuple.get(1) instanceof TimeLiteral) { + selector = (TimeSelector) tuple.get(0); + literalValue = ((TimeLiteral) tuple.get(1)).getMilliseconds() - 1; + upperBounds.put(selector, Math.min(upperBounds.get(selector), literalValue)); + } else if (tuple.get(1) instanceof TimeSelector && + tuple.get(0) instanceof TimeLiteral) { + // selector > literal => lower(selector) = max(lower(selector), literal+1) + selector = (TimeSelector) tuple.get(1); + literalValue = ((TimeLiteral) tuple.get(0)).getMilliseconds() + 1; + lowerBounds.put(selector, Math.max(lowerBounds.get(selector), literalValue)); + } else { + continue; + } + + if (lowerBounds.get(selector) > upperBounds.get(selector)) { + throw new QueryContradictoryException(); + } + } + + return Arrays.asList(lowerBounds, upperBounds); + } + + + /** + * Updates lower and upper bounds with the lighter-or-equal relations + * + * @param rLeq leq relations + * @param lowerBounds lower bounds + * @param upperBounds upper bounds + * @return updated lower and upper bounds as a list [lower, upper] + * @throws QueryContradictoryException if a contradiction is encountered + */ + private List> updateLeq( + HashMap> rLeq, + HashMap lowerBounds, HashMap upperBounds) + throws QueryContradictoryException { + + ArrayList> leq = relationToTuples(rLeq); + for (ArrayList tuple : leq) { + TimeSelector selector = null; + Long literalValue = null; + // only comparisons between a selector and a literal are interesting here + // selector <= literal => upper(selector) = min(upper(selector), literal) + if (tuple.get(0) instanceof TimeSelector && tuple.get(1) instanceof TimeLiteral) { + selector = (TimeSelector) tuple.get(0); + literalValue = ((TimeLiteral) tuple.get(1)).getMilliseconds(); + upperBounds.put(selector, Math.min(upperBounds.get(selector), literalValue)); + } else if (tuple.get(1) instanceof TimeSelector && + tuple.get(0) instanceof TimeLiteral) { + // selector >= literal => lower(selector) = max(lower(selector), literal) + selector = (TimeSelector) tuple.get(1); + literalValue = ((TimeLiteral) tuple.get(0)).getMilliseconds(); + lowerBounds.put(selector, Math.max(lowerBounds.get(selector), literalValue)); + } else { + continue; + } + + if (lowerBounds.get(selector) > upperBounds.get(selector)) { + throw new QueryContradictoryException(); + } + } + + return Arrays.asList(lowerBounds, upperBounds); + } + + /** + * Updates lower and upper bounds with the equality relations + * + * @param rEq equality relations + * @param lowerBounds lower bounds + * @param upperBounds upper bounds + * @return updated lower and upper bounds as a list [lower, upper] + * @throws QueryContradictoryException if a contradiction is encountered + */ + private List> updateEq( + HashMap> rEq, + HashMap lowerBounds, HashMap upperBounds) + throws QueryContradictoryException { + + ArrayList> eq = relationToTuples(rEq); + for (ArrayList tuple : eq) { + TimeSelector selector = null; + TimeLiteral literal = null; + // only comparisons between a selector and a literal are interesting here + if (tuple.get(0) instanceof TimeSelector && tuple.get(1) instanceof TimeLiteral) { + selector = (TimeSelector) tuple.get(0); + literal = (TimeLiteral) tuple.get(1); + } else if (tuple.get(1) instanceof TimeSelector && tuple.get(0) instanceof TimeLiteral) { + selector = (TimeSelector) tuple.get(1); + literal = (TimeLiteral) tuple.get(0); + } else { + continue; + } + // for selector=literal, lowerBound(selector) = literal and upperBound(selector) = literal + Long literalValue = literal.getMilliseconds(); + if (lowerBounds.get(selector) > literalValue || upperBounds.get(selector) < literalValue) { + throw new QueryContradictoryException(); + } else { + lowerBounds.put(selector, literalValue); + upperBounds.put(selector, literalValue); + } + } + return Arrays.asList(lowerBounds, upperBounds); + } + + /** + * Flattens the map representation of a relation to a list of list of ComparableExpressions. + * Each list has the length 2, representing one tuple in the relation. + * + * @param rel relation to flatten + * @return flattened relation + */ + private ArrayList> relationToTuples(HashMap> rel) { + ArrayList> list = new ArrayList<>(); + for (Map.Entry> mapEntry : rel.entrySet()) { + ComparableExpression c1 = mapEntry.getKey(); + for (ComparableExpression c2 : mapEntry.getValue()) { + list.add(new ArrayList<>(Arrays.asList(c1, c2))); + } + } + return list; + } + + /** + * Checks the lighter-than relations for tuples (a,a) and throws an exception if such a tuple is + * encountered. Other contradictions in this relation are checked later + * + * @param ltRelation lighter-than relation + * @throws QueryContradictoryException if a tuple (a,a) is encountered + */ + private void checkLtContradictions(HashMap> ltRelation) + throws QueryContradictoryException { + for (Map.Entry> tuple : ltRelation.entrySet()) { + ComparableExpression key = tuple.getKey(); + for (ComparableExpression value : tuple.getValue()) { + if (key.equals(value)) { + throw new QueryContradictoryException(); + } + } + } + } + + /** + * Computes relations rEq, rLeq, rLt so that + * rEq contains (a,b) iff relevant comparisons imply a=b + * rLeq contains (a,b) iff relevant comparisons imply a<=b, but not a=b or a < b + * rLt contains (a,b) iff relevant comparisons imply a < b + * + * @param cEq relation containing (a,b) iff relevant comparisons contain a=b + * @param cLeq relation containing (a,b) iff relevant comparisons contain a<=b + * @param cLt relation containing (a,b) iff relevant comparisons contain a < b + * @return list [rEq, rLeq, rLt] + */ + private List>> computeClosureRelations( + HashMap> cEq, + HashMap> cLeq, + HashMap> cLt) { + // init relations + HashMap> rEq; + HashMap> rLeq; + HashMap> rLt; + // compute them + rEq = union(transitiveClosure(cEq), selfInverses(transitiveClosure(union(cEq, cLeq)))); + rLeq = subtract(transitiveClosure(union(rEq, cLeq)), rEq); + rLt = transitiveClosure(union( + composition(union(rEq, rLeq), cLt), + composition(cLt, union(rEq, rLeq)), + cLt + )); + return Arrays.asList(rEq, rLeq, rLt); + } + + /** + * Returns a subrelation containing all tuples whose inverses are also contained in the relation + * I.e., a tuple (a,b) is included in the return value, if (a,b) in rel and (b,a) in rel. + * + * @param rel relation + * @return subrelation containing all tuples whose inverses are also contained @code{rel} + */ + private HashMap> selfInverses( + HashMap> rel) { + + HashMap> newRel = new HashMap<>(); + for (Map.Entry> r : rel.entrySet()) { + ComparableExpression key = r.getKey(); + for (ComparableExpression v : r.getValue()) { + if (rel.containsKey(v)) { + if (rel.get(v).contains(key)) { + newRel.putIfAbsent(key, new HashSet<>()); + newRel.get(key).add(v); + } + } + } + } + + return newRel; + } + + /** + * Subtracts one relation from another + * + * @param rel1 relation to subtract from + * @param rel2 relation to be subtracted + * @return @code{rel1} - @code{rel2} + */ + private HashMap> subtract( + HashMap> rel1, + HashMap> rel2) { + + HashMap> newRel = new HashMap<>(); + + for (Map.Entry> r1 : rel1.entrySet()) { + ComparableExpression key = r1.getKey(); + HashSet values1 = r1.getValue(); + HashSet values2 = rel2.getOrDefault(key, new HashSet<>()); + HashSet newValues = new HashSet<>(values1); + newValues.removeAll(values2); + newRel.put(key, new HashSet<>(newValues)); + } + return newRel; + } + + + /** + * Compute the transitive closure of a relation + * + * @param rel relation + * @return transitive closure of relation + */ + private HashMap> transitiveClosure( + HashMap> rel) { + + HashMap> newRel = rel; + boolean changed = true; + // apply transitivity until closure is complete: (a,b) in rel, (b,c) in rel => (a,c) in rel + while (changed) { + HashMap> oldRel = + (HashMap>) SerializationUtils.clone(newRel); + changed = false; + for (Map.Entry> r : oldRel.entrySet()) { + ComparableExpression key = r.getKey(); + for (ComparableExpression value : r.getValue()) { + newRel.putIfAbsent(key, new HashSet<>()); + changed = newRel.get(key).add(value) || changed; + if (oldRel.containsKey(value)) { + changed = newRel.get(key).addAll(oldRel.get(value)) || changed; + } + } + } + } + return newRel; + } + + /** + * Composition of two relations + * + * @param rel1 first relation + * @param rel2 second relation + * @return composition of both + */ + private HashMap> composition( + HashMap> rel1, + HashMap> rel2) { + + HashMap> newRel = new HashMap<>(); + // (a,b) in rel1, (b,c) in rel2 => put (a,c) into newRel + for (Map.Entry> r1 : rel1.entrySet()) { + ComparableExpression key = r1.getKey(); + for (ComparableExpression oldValue : r1.getValue()) { + // transitive relation? + if (rel2.containsKey(oldValue)) { + HashSet newValues = rel2.get(oldValue); + newRel.putIfAbsent(key, new HashSet<>()); + newRel.get(key).addAll(newValues); + } + } + } + return newRel; + } + + /** + * Unites relations + * + * @param relations relations to unite + * @return united relation + */ + private HashMap> union( + HashMap>... relations) { + HashMap> newRel = new HashMap<>(); + // add all relations from the array to newRel + for (HashMap> relation : relations) { + for (Map.Entry> entry : relation.entrySet()) { + ComparableExpression key = entry.getKey(); + HashSet values = entry.getValue(); + newRel.putIfAbsent(key, new HashSet<>()); + newRel.get(key).addAll(values); + } + } + return newRel; + } + + /** + * Checks whether a clause is relevant, i.e. it has size 1 and does not contain + * MIN/MAX or duration + * + * @param clause clause to check + * @return true iff clause is relevant + */ + private boolean isRelevantClause(CNFElement clause) { + return clause.size() == 1 && !isMinMax(clause.getPredicates().get(0)) && + !isDuration(clause.getPredicates().get(0)); + } + + /** + * Checks whether a given wrapped comparison contains a MIN or MAX expression + * + * @param comp comparison expression to check for MIN/MAX + * @return true iff comp contains MIN or MAX + */ + private boolean isMinMax(ComparisonExpression comp) { + return comp.getLhs() instanceof MinTimePointComparable || + comp.getLhs() instanceof MaxTimePointComparable || + comp.getRhs() instanceof MinTimePointComparable || + comp.getRhs() instanceof MaxTimePointComparable; + } + + /** + * Checks if a comparison contains a duration + * + * @param comp comparison + * @return true iff comp contains a duration + */ + private boolean isDuration(ComparisonExpression comp) { + return comp.getLhs() instanceof DurationComparable || + comp.getRhs() instanceof DurationComparable || + comp.getLhs() instanceof TimeConstantComparable || + comp.getRhs() instanceof TimeConstantComparable; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfolding.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfolding.java new file mode 100644 index 000000000000..8f1ab491511e --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfolding.java @@ -0,0 +1,217 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.QueryTransformation; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.ComparableTPGMFactory; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimePoint; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static org.gradoop.gdl.utils.Comparator.LTE; + +/** + * Reformulates certain expressions involving MIN and MAX elements, according to the following rules: + *

    + *
  • a singleton clause [MAX(a,b,c) < / <= x] is reformulated to + * [a < / <= x] AND [b < / <= x] AND [c < / <= x]
  • + *
  • a n-ary disjunctive clause [comp_1,...,comp_(i-1), MIN(a,b,c) < / <= x, comp_(i+1),...,comp_n] + * is reformulated to + * [comp_1,...,comp_(i-1), a < / <= x, b < / <= x, c < / <= x, comp_(i+1),...,comp_n]
  • + *
  • a n-ary disjunctive clause [comp_1,...,comp_(i-1), x < / <= MAX(a,b,c), comp_(i+1),...,comp_n] + * is reformulated to + * [comp_1,...,comp_(i-1), x < / <= a, x < / <= b, x < / <= c, comp_(i+1),...,comp_n]
  • + *
  • a unary clause [x < / <= MIN(a,b,c)] is reformulated to + * [x < / <= a] AND [x < / <= b] AND [x < / <= c]
  • + *
+ * + * These rules are applied exhaustively. + * !!! This class assumes input CNFs to be normalized, i.e. not to contain > or >= !!! + */ +public class MinMaxUnfolding implements QueryTransformation { + + @Override + public CNF transformCNF(CNF cnf) { + if (cnf.getPredicates().size() == 0) { + return cnf; + } else { + // apply transformations exhaustively + CNF oldCNF; + CNF newCNF = cnf; + do { + oldCNF = newCNF; + newCNF = newCNF.getPredicates().stream() + .map(this::unfoldNext) + .reduce(CNF::and).get(); + } while (!newCNF.equals(oldCNF)); + return newCNF; + } + } + + /** + * Applies the rules to a single clause (not necessarily exhaustive, several calls may be necessary) + * + * @param clause clause to apply the rules to + * @return transformed clause + */ + private CNF unfoldNext(CNFElement clause) { + // determine whether clause is singleton or not and and trigger the corresponding rule applications + if (clause.getPredicates().size() > 1) { + return new CNF( + clause.getPredicates().stream() + // no conjunctions within a disjunctive clause + .map(comp -> unfoldNext(comp, false)) + .reduce(CNF::or) + .get() + ); + } else { + return unfoldNext(clause.getPredicates().get(0), true); + } + } + + /** + * Applies the rules to a single comparison (not necessarily exhaustive), depending + * on whether the comparison is part of a singleton clause or a n-ary one (n>1). + * + * @param comp comparison to apply the rules to + * @param allowConjunctions true iff the result is allowed to be a n-ary conjunction (n > 1) + * @return transformed comparison as a CNF + */ + private CNF unfoldNext(ComparisonExpression comp, boolean allowConjunctions) { + // unwrap comparison + ComparableExpression lhs = comp.getLhs().getWrappedComparable(); + Comparator comparator = comp.getComparator(); + ComparableExpression rhs = comp.getRhs().getWrappedComparable(); + + // apply rules to comparison + if (lhs instanceof MinTimePoint) { + if (comparator == Comparator.LT || comparator == LTE) { + return exists(((MinTimePoint) lhs).getArgs(), comparator, rhs); + } + } else if (lhs instanceof MaxTimePoint) { + if (comparator == Comparator.LT || comparator == LTE) { + if (allowConjunctions) { + return forAll(((MaxTimePoint) lhs).getArgs(), comparator, rhs); + } + } + } else if (rhs instanceof MinTimePoint) { + if (comparator == Comparator.LT || comparator == Comparator.LTE) { + if (allowConjunctions) { + return forAll(lhs, comparator, ((MinTimePoint) rhs).getArgs()); + } + } + } else if (rhs instanceof MaxTimePoint) { + if (comparator == Comparator.LT || comparator == Comparator.LTE) { + return exists(lhs, comparator, ((MaxTimePoint) rhs).getArgs()); + } + } + + return new CNF(new ArrayList<>( + Collections.singletonList(new CNFElement(new ArrayList<>(Collections.singletonList(comp)))))); + + } + + /** + * Realizes an "exists" predicate as CNF. + * E.g., {@code exists((a,b,c), <=, x)} would yield + * a <= x OR b <= x OR c <= x + * + * @param args left hand side, domain of the "exists" + * @param comparator comparator + * @param rhs right hand side + * @return "exists" predicate as CNF + */ + private CNF exists(List args, Comparator comparator, ComparableExpression rhs) { + List comparisons = new ArrayList<>(); + for (TimePoint arg : args) { + comparisons.add(new ComparisonExpression(new Comparison(arg, comparator, rhs), + new ComparableTPGMFactory())); + } + CNFElement singleClause = new CNFElement(comparisons); + return new CNF(new ArrayList<>(Collections.singletonList(singleClause))); + } + + /** + * Realizes an "exists" predicate as CNF. + * E.g., {@code exists(x, <= (a,b,c)} would yield + * x <= a OR x <= b OR x <= c + * + * @param lhs left hand side + * @param comparator comparator + * @param args right hand side, domain of the "exists" + * @return "exists" predicate as CNF + */ + private CNF exists(ComparableExpression lhs, Comparator comparator, List args) { + List comparisons = new ArrayList<>(); + for (TimePoint arg : args) { + comparisons.add(new ComparisonExpression(new Comparison(lhs, comparator, arg), + new ComparableTPGMFactory())); + } + return new CNF(new ArrayList<>(Collections.singletonList(new CNFElement(comparisons)))); + } + + /** + * Realizes a "forall" predicate as CNF. + * E.g., {@code forAll((a,b,c), <= x)} would yield + * a <= x AND b <= x AND c <= x + * + * @param args left hand side, domain of the "forall" + * @param comparator comparator + * @param rhs right hand side + * @return "forall" predicate as CNF + */ + private CNF forAll(List args, Comparator comparator, ComparableExpression rhs) { + List clauses = new ArrayList<>(); + for (TimePoint arg : args) { + clauses.add(new CNFElement(new ArrayList<>(Collections.singletonList(new ComparisonExpression( + new Comparison(arg, comparator, rhs), + new ComparableTPGMFactory() + ))))); + } + return new CNF(clauses); + } + + /** + * Realizes a "forall" predicate as CNF. + * E.g., {@code forAll(x, <=, (a,b,c))} would yield + * x <= a AND x <= b AND x <= c + * + * @param lhs left hand side + * @param comparator comparator + * @param args right hand side, domain of the "forall" + * @return "forall" predicate as CNF + */ + private CNF forAll(ComparableExpression lhs, Comparator comparator, List args) { + List clauses = new ArrayList<>(); + for (TimePoint arg : args) { + clauses.add(new CNFElement(new ArrayList<>(Collections.singletonList(new ComparisonExpression( + new Comparison(lhs, comparator, arg), + new ComparableTPGMFactory() + ))))); + } + return new CNF(clauses); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Normalization.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Normalization.java new file mode 100644 index 000000000000..14df6fbcf3db --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Normalization.java @@ -0,0 +1,70 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.QueryTransformation; +import org.gradoop.gdl.utils.Comparator; + +import java.util.stream.Collectors; + +/** + * Normalizes a {@link CNF}. Ensures that all comparisons are =, !=, < or <= + */ +public class Normalization implements QueryTransformation { + + @Override + public CNF transformCNF(CNF cnf) { + if (cnf.getPredicates().size() == 0) { + return cnf; + } + return new CNF( + cnf.getPredicates().stream() + .map(this::transformDisjunction) + .collect(Collectors.toList())); + } + + /** + * Normalize a single disjunctive clause, i.e. ensure that all comparisons are =, !=, < or <= + * + * @param disj clause to normalize + * @return normalized clause + */ + private CNFElement transformDisjunction(CNFElement disj) { + return new CNFElement( + disj.getPredicates().stream() + .map(this::transformComparison) + .collect(Collectors.toList())); + } + + /** + * Normalize a single comparison. If the comparison is of form a >/>= b, it is transformed to + * b < / <= a + * + * @param comparison comparison to normalize + * @return normalized comparison + */ + private ComparisonExpression transformComparison(ComparisonExpression comparison) { + Comparator comparator = comparison.getComparator(); + if (comparator == Comparator.GT || comparator == Comparator.GTE) { + return comparison.switchSides(); + } else { + return comparison; + } + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Subsumption.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Subsumption.java new file mode 100644 index 000000000000..4e9da71285e7 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Subsumption.java @@ -0,0 +1,199 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.QueryTransformation; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Abstract base class for subsumptions of clauses. + * A simplifying assumption is made: smaller clauses are not subsumed by larger ones. + * It is not guaranteed that all subsumptions or the optimal sequence of subsumptions are applied + */ +public abstract class Subsumption implements QueryTransformation { + + @Override + public CNF transformCNF(CNF cnf) { + // separate singleton clauses from disjunctive clauses + ArrayList necessaryClauses = cnf.getPredicates().stream() + .filter(clause -> clause.size() == 1).collect(Collectors.toCollection(ArrayList::new)); + List disjunctiveClauses = cnf.getPredicates().stream() + .filter(clause -> clause.size() > 1) + .collect(Collectors.toList()); + // apply subsumption within disjunctive clauses while keeping the singletons and ... + cnf = new CNF(necessaryClauses).and( + subsumeDisjunctiveClauses(disjunctiveClauses)); + List oldClauses = cnf.getPredicates(); + // ... apply subsumption to the result + return new CNF(subsumeClauses(oldClauses)); + } + + /** + * Sort clauses: clauses that subsume most other clauses are sorted at the beginning of + * the list + * + * @param clauses clauses to sort + * @return sorted clauses + */ + protected ArrayList sortClauses(List clauses) { + // count for every clause how much clauses it subsumes + HashMap countSubsumes = new HashMap<>(); + for (int i = 0; i < clauses.size(); i++) { + CNFElement clause1 = clauses.get(i); + countSubsumes.putIfAbsent(clause1, 0); + for (int j = i; j < clauses.size(); j++) { + CNFElement clause2 = clauses.get(j); + if (subsumes(clause1, clause2)) { + countSubsumes.put(clause1, countSubsumes.get(clause1) + 1); + } + if (subsumes(clause2, clause1)) { + countSubsumes.putIfAbsent(clause2, 0); + countSubsumes.put(clause2, countSubsumes.get(clause2) + 1); + } + } + } + // sort by these counts. If two clauses subsume the same number of clauses, + // the shorter clause is sorted first + ArrayList clausesSorted = new ArrayList<>(clauses); + clausesSorted.sort(new Comparator() { + @Override + public int compare(CNFElement t1, CNFElement t2) { + int subsumedDifference = countSubsumes.get(t2) - + countSubsumes.get(t1); + return subsumedDifference != 0 ? subsumedDifference : + t1.size() - t2.size(); + } + }); + return clausesSorted; + } + + /** + * Performs the subsumption of a set of clauses + * + * @param clauses clauses for subsumption + * @return sublist of the clauses after subsumption + */ + protected ArrayList subsumeClauses(List clauses) { + ArrayList oldClauses = sortClauses(clauses); + // points to clauses that are already subsumed (their index in the clauses list) + HashSet subsumed = new HashSet<>(); + + // check for every clause if it subsumes other clauses + for (int i = 0; i < oldClauses.size(); i++) { + // clause c_i is already subsumed, i.e. actually not there anymore + if (subsumed.contains(i)) { + continue; + } + // clause c_i is not subsumed yet, i.e. may subsume other clauses + CNFElement c1 = oldClauses.get(i); + for (int j = i + 1; j < oldClauses.size(); j++) { + // clause c_j is already subsumed, i.e. actually not there anymore + if (subsumed.contains(j)) { + continue; + } + // clause c_j is not subsumed yet, i.e. may be subsumed + CNFElement c2 = oldClauses.get(j); + if (subsumes(c1, c2)) { + subsumed.add(j); + } + } + } + // only clauses that are not subsumed by other clauses are contained in the new CNF + ArrayList newClauses = new ArrayList<>(); + for (int i = 0; i < oldClauses.size(); i++) { + if (subsumed.contains(i)) { + continue; + } + newClauses.add(oldClauses.get(i)); + } + return newClauses; + } + + /** + * Applies {@link this::subsumeDisjunctiveClause} to all disjunctive clauses + * (CNF clauses of size > 1) + * + * @param disjClauses clauses + * @return CNF conjoining the subsumed clauses + */ + protected CNF subsumeDisjunctiveClauses(List disjClauses) { + List newClauses = disjClauses.stream() + .map(this::subsumeDisjunctiveClause) + .collect(Collectors.toList()); + + return new CNF(newClauses); + } + + /** + * Applies subsumption to a disjunctive clause (might simplify the clause) + * + * @param clause clause to apply subsumption to. + * @return subsumed clause + */ + protected CNFElement subsumeDisjunctiveClause(CNFElement clause) { + return new CNFElement(subsumeClauses( + clause.getPredicates().stream() + .map(comparison -> new CNFElement(Collections.singletonList(comparison))) + .collect(Collectors.toList())) + .stream() + .map(c -> c.getPredicates().get(0)) + .collect(Collectors.toList())); + } + + /** + * Checks for two disjunctive clauses c1 and c2 whether c1 subsumes c2. + * Here, c1 subsumes c2 iff c1's comparisons form a subset of c2's comparisons + * + * @param c1 first clause + * @param c2 second clause + * @return true iff c1 subsumes c2 + */ + protected boolean subsumes(CNFElement c1, CNFElement c2) { + for (ComparisonExpression comp1 : c1) { + boolean foundMatch = false; + for (ComparisonExpression comp2 : c2) { + if (subsumes(comp1, comp2)) { + foundMatch = true; + break; + } + } + if (!foundMatch) { + return false; + } + } + return true; + } + + /** + * Checks whether a ComparisonExpression c1 subsumes c2 + * + * @param c1 potentially subsuming comparison + * @param c2 potentially subsumed comparison + * @return true iff c1 subsumes c2 + */ + public abstract boolean subsumes(ComparisonExpression c1, + ComparisonExpression c2); +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumption.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumption.java new file mode 100644 index 000000000000..96702f7430e4 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumption.java @@ -0,0 +1,31 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; + +/** + * Simplifies a CNF by subsuming clauses syntactically. + * The transformation does not consider semantic information, but only syntax + * !!! This class assumes input CNFs to be normalized, i.e. not to contain < or <= !!! + */ +public class SyntacticSubsumption extends Subsumption { + + @Override + public boolean subsumes(ComparisonExpression c1, ComparisonExpression c2) { + return c1.equals(c2); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumption.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumption.java new file mode 100644 index 000000000000..5959976e0127 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumption.java @@ -0,0 +1,141 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeLiteralComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeSelectorComparable; + +/** + * Uses temporal information to subsume constraints that compare a time selector to a time literal. + * Here, a temporal comparison c1 subsumes a temporal comparison c2 iff + * c1 logically implies c2 and c1 is not equal to c2. + * !!! This class assumes the input to be normalized, i.e. not to contain > or >= !!! + */ +public class TemporalSubsumption extends Subsumption { + @Override + public boolean subsumes(ComparisonExpression c1, ComparisonExpression c2) { + // check if comparisons are both of the desired form and could thus be - potentially - subsumed + if (!structureMatches(c1, c2)) { + return false; + } + // ensure that selectors in both comparisons are always on the left hand side + boolean selectorIsLeft = c1.getLhs() instanceof TimeSelectorComparable; + if (!selectorIsLeft) { + c1 = c1.switchSides(); + c2 = c2.switchSides(); + } + // check if both comparisons' variables are equal (otherwise, no subsumption is possible) + String var1 = ((TimeSelectorComparable) (c1.getLhs())).getWrappedComparable().getVariable(); + String var2 = ((TimeSelectorComparable) (c2.getLhs())).getWrappedComparable().getVariable(); + if (!var1.equals(var2)) { + return false; + } + // check if both comparisons' time properties (tx_from, tx_to,...) are equal + // (otherwise, no subsumption is possible) + TimeSelector.TimeField field1 = ((TimeSelector) ((TimeSelectorComparable) + (c1.getLhs())).getWrappedComparable()).getTimeProp(); + TimeSelector.TimeField field2 = ((TimeSelector) ((TimeSelectorComparable) (c2.getLhs())) + .getWrappedComparable()).getTimeProp(); + if (!field1.equals(field2)) { + return false; + } + // unwrap the rest of the comparisons and check whether c1 implies c2 + Comparator comparator1 = c1.getComparator(); + Comparator comparator2 = c2.getComparator(); + Long literal1 = ((TimeLiteral) ((TimeLiteralComparable) c1.getRhs()).getWrappedComparable()) + .getMilliseconds(); + Long literal2 = ((TimeLiteral) ((TimeLiteralComparable) c2.getRhs()).getWrappedComparable()) + .getMilliseconds(); + return implies(comparator1, literal1, comparator2, literal2) && !c1.equals(c2); + } + + /** + * Checks if a comparison constraint (a comparator1 literal1) implies a comparison + * constraint (a comparator2 literal2). + * + * @param comparator1 comparator of the potentially implying constraint + * @param literal1 rhs literal of the potentially implying constraint + * @param comparator2 comparator of the potentially implied constraint + * @param literal2 rhs literal of the potentially implied constraint + * @return true iff (a comparator1 literal1) implies (a comparator2 literal2) + */ + private boolean implies(Comparator comparator1, Long literal1, Comparator comparator2, Long literal2) { + switch (comparator1) { + case EQ: + switch (comparator2) { + case EQ: return literal1.equals(literal2); + case NEQ: return !literal1.equals(literal2); + case LTE: return literal1 <= literal2; + case LT: return literal1 < literal2; + case GTE: return literal1 >= literal2; + case GT: return literal1 > literal2; + default: return false; + } + case LTE: + switch (comparator2) { + case NEQ: case LT: return literal1 < literal2; + case LTE: return literal1 <= literal2; + default: return false; + } + case LT: + switch (comparator2) { + case NEQ: case LT: return literal1 <= literal2; + case LTE: return literal1 - 1 <= literal2; + default: return false; + } + case GTE: + switch (comparator2) { + case NEQ: case GT: return literal1 > literal2; + case GTE: return literal1 >= literal2; + default: return false; + } + case GT: + switch (comparator2) { + case NEQ: case GT: return literal1 >= literal2; + case GTE: return literal1 + 1 >= literal2; + default: return false; + } + default: return false; + } + } + + /** + * Checks if two comparisons "match" for a subsumption. + * Here, only comparisons comparing a selector to a literal are relevant. + * As the CNF is assumed to be normalized (no <,<=), comparisons c1 and + * c2 are relevant iff they both have the form (selector comparator literal) + * or both have the form (literal comparator selector) + * + * @param c1 comparison + * @param c2 comparison + * @return true iff the structures of c1 and c2 match + * according to the criteria defined above + */ + private boolean structureMatches(ComparisonExpression c1, ComparisonExpression c2) { + return (c1.getLhs() instanceof TimeSelectorComparable && + c2.getLhs() instanceof TimeSelectorComparable && + c1.getRhs() instanceof TimeLiteralComparable && + c2.getRhs() instanceof TimeLiteralComparable) || + (c1.getLhs() instanceof TimeLiteralComparable && + c2.getLhs() instanceof TimeLiteralComparable && + c1.getRhs() instanceof TimeSelectorComparable && + c2.getRhs() instanceof TimeSelectorComparable); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictions.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictions.java new file mode 100644 index 000000000000..68623fed6cbe --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictions.java @@ -0,0 +1,118 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.QueryTransformation; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.ArrayList; +import java.util.List; + +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.LTE; + +/** + * Looks for trivial contradictions like {@code a.tx_from > a.tx_to} or (b.prop!=b.prop). + * Every contradictory comparison is removed from its disjunctive clause. + * If every comparison in a clause is contradictory, the whole CNF is a contradiction. + * In this case, the transformation throws a {@link QueryContradictoryException} + * !!! This class assumes input CNFs to be normalized, i.e. not to contain < or <= !!! + */ +public class TrivialContradictions implements QueryTransformation { + + @Override + public CNF transformCNF(CNF cnf) throws QueryContradictoryException { + ArrayList newClauses = new ArrayList<>(); + // check every clause for contradictions + for (CNFElement clause : cnf.getPredicates()) { + CNFElement newClause = transformDisjunction(clause); + newClauses.add(newClause); + } + return new CNF(newClauses); + } + + /** + * Checks a disjunctive clause for trivial contradictions and removes them. + * If all comparisons are contradictory, an exception is thrown. + * + * @param clause clause to check + * @return the clause iff it does not contain a trivial contradiction + * @throws QueryContradictoryException iff the clause contains a trivial contradiction + */ + private CNFElement transformDisjunction(CNFElement clause) throws QueryContradictoryException { + List oldComparisons = clause.getPredicates(); + ArrayList newComparisons = new ArrayList<>(); + for (ComparisonExpression comparison : oldComparisons) { + if (!isContradictory(comparison)) { + // contradictory comparisons are omitted in the resulting clause + newComparisons.add(comparison); + } + } + // all comparisons contradictory? + if (newComparisons.isEmpty()) { + throw new QueryContradictoryException(); + } else { + return new CNFElement(newComparisons); + } + } + + + /** + * Checks whether a comparison is a trivial contradiction (x < x, x!=x, !(a.tx_from <= a.tx_to, + * contradictory comparison between two time literals) + * + * @param comp comparison to check + * @return true iff comparison is a trivial contradiction + */ + private boolean isContradictory(ComparisonExpression comp) { + // unwrap the comparison + ComparableExpression lhs = comp.getLhs().getWrappedComparable(); + Comparator comparator = comp.getComparator(); + ComparableExpression rhs = comp.getRhs().getWrappedComparable(); + + // x a.tx_to + if (lhs instanceof TimeSelector && rhs instanceof TimeSelector && + lhs.getVariable().equals(rhs.getVariable())) { + if (((TimeSelector) lhs).getTimeProp().equals(TimeSelector.TimeField.TX_FROM) && + ((TimeSelector) rhs).getTimeProp().equals(TimeSelector.TimeField.TX_TO) || + ((TimeSelector) lhs).getTimeProp().equals(TimeSelector.TimeField.VAL_FROM) && + ((TimeSelector) rhs).getTimeProp().equals(TimeSelector.TimeField.VAL_TO)) { + return comparator.equals(GT); + } + } else if ((lhs instanceof TimeLiteral && rhs instanceof TimeLiteral) || + (lhs instanceof Literal && rhs instanceof Literal)) { + // comparison of two (time) literals is tautological iff the comparison holds + // true iff the comparison holds + return !comp.evaluate(new TemporalVertex()); + } + return false; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologies.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologies.java new file mode 100644 index 000000000000..6348f6ef9b2d --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologies.java @@ -0,0 +1,106 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.QueryTransformation; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.stream.Collectors; + +import static org.gradoop.gdl.utils.Comparator.LTE; + +/** + * Looks for trivial tautologies like {@code a.tx_from <= a.tx_to} or (b.prop=b.prop). + * Every disjunctive clause containing a tautology is removed from the CNF. + * !!! This class assumes input CNFs to be normalized, i.e. not to contain > or >= !!! + */ +public class TrivialTautologies implements QueryTransformation { + @Override + public CNF transformCNF(CNF cnf) { + if (cnf.getPredicates().size() == 0) { + return cnf; + } + return new CNF( + cnf.getPredicates().stream() + .filter(this::notTautological) + .collect(Collectors.toList()) + ); + } + + /** + * Checks whether a clause is not tautological, i.e. contains no tautological comparison + * + * @param clause clause to check for tautologies + * @return true iff the clause is not tautological + */ + private boolean notTautological(CNFElement clause) { + for (ComparisonExpression comparison : clause.getPredicates()) { + if (isTautological(comparison)) { + return false; + } + } + return true; + } + + /** + * Checks if a comparison is tautological. This check is "uninformed", it only employs + * simple (domain) logic. The following comparisons are considered tautological: + * - x=x + * - x<=x + * - a.tx_from <= a.tx_to + * - a.val_from <= a.val_to + * - literal1 comp literal2 iff the comparison holds + * + * @param comp comparison to check for tautology + * @return true iff the comparison is tautological according to the criteria listed above. + */ + private boolean isTautological(ComparisonExpression comp) { + ComparableExpression lhs = comp.getLhs().getWrappedComparable(); + Comparator comparator = comp.getComparator(); + ComparableExpression rhs = comp.getRhs().getWrappedComparable(); + + // x=x, x<=x + if (lhs.equals(rhs)) { + if (comparator.equals(Comparator.EQ) || comparator.equals(LTE)) { + return true; + } + } + // a.tx_from <= a.tx_to, a.val_from <= a.val_to + if (lhs instanceof TimeSelector && rhs instanceof TimeSelector && + lhs.getVariable().equals(rhs.getVariable())) { + if (((TimeSelector) lhs).getTimeProp().equals(TimeSelector.TimeField.TX_FROM) && + ((TimeSelector) rhs).getTimeProp().equals(TimeSelector.TimeField.TX_TO) || + ((TimeSelector) lhs).getTimeProp().equals(TimeSelector.TimeField.VAL_FROM) && + ((TimeSelector) rhs).getTimeProp().equals(TimeSelector.TimeField.VAL_TO)) { + return comparator.equals(LTE); + } + } else if ((lhs instanceof TimeLiteral && rhs instanceof TimeLiteral) || + (lhs instanceof Literal && rhs instanceof Literal)) { + // comparison of two (time) literals is tautological iff the comparison holds + // true iff the comparison holds + return comp.evaluate(new TemporalVertex()); + } + return false; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/package-info.java new file mode 100644 index 000000000000..522791a2e8c4 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Includes all query transformation functions + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/ComparableTPGMFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/ComparableTPGMFactory.java new file mode 100644 index 000000000000..6e74bb2b4809 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/ComparableTPGMFactory.java @@ -0,0 +1,101 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparableFactory; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.ElementSelectorComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.LiteralComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.PropertySelectorComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.DurationComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MaxTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MinTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeConstantComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeLiteralComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeSelectorComparable; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.ElementSelector; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.PropertySelector; +import org.gradoop.gdl.model.comparables.time.Duration; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeConstant; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +/** + * Factory for temporal comparable + */ +public class ComparableTPGMFactory extends QueryComparableFactory { + + /** + * Holds the system time stamp when the query was issued + */ + private TimeLiteral now; + + /** + * Create a new instance + * + * @param now system time of the query + */ + public ComparableTPGMFactory(TimeLiteral now) { + this.now = now; + } + + /** + * Create a new instance + */ + public ComparableTPGMFactory() { + this(new TimeLiteral("now")); + } + + @Override + public QueryComparable createFrom(ComparableExpression expression) { + Class cls = expression.getClass(); + if (cls == Literal.class) { + return new LiteralComparable((Literal) expression); + } else if (cls == PropertySelector.class) { + return new PropertySelectorComparable((PropertySelector) expression); + } else if (cls == ElementSelector.class) { + return new ElementSelectorComparable((ElementSelector) expression); + } else if (cls == TimeLiteral.class) { + return new TimeLiteralComparable((TimeLiteral) expression); + } else if (cls == TimeSelector.class) { + return new TimeSelectorComparable((TimeSelector) expression); + } else if (cls == MinTimePoint.class) { + return new MinTimePointComparable((MinTimePoint) expression); + } else if (cls == MaxTimePoint.class) { + return new MaxTimePointComparable((MaxTimePoint) expression); + } else if (cls == TimeConstant.class) { + return new TimeConstantComparable((TimeConstant) expression); + } else if (cls == Duration.class) { + return new DurationComparable((Duration) expression, now); + } else { + throw new IllegalArgumentException( + cls.getSimpleName() + " is not a temporal GDL ComparableExpression" + ); + } + } + + public TimeLiteral getNow() { + return now; + } + + public void setNow(TimeLiteral now) { + this.now = now; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/QueryComparableTPGM.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/QueryComparableTPGM.java new file mode 100644 index 000000000000..835641ececb1 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/QueryComparableTPGM.java @@ -0,0 +1,65 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates; + + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TemporalComparable; + +import java.io.Serializable; + +/** + * Wraps a {@link ComparableExpression}, that may be temporal + */ +public abstract class QueryComparableTPGM extends QueryComparable implements Serializable { + + /** + * Checks whether the comparable is related to time data + * + * @return true iff comparable denotes time data + */ + public boolean isTemporal() { + return this instanceof TemporalComparable; + } + + /** + * Returns the wrapped comparable + * + * @return wrapped comparable + */ + public abstract ComparableExpression getWrappedComparable(); + + @Override + public boolean equals(Object o) { + if (!(o instanceof QueryComparableTPGM)) { + return false; + } + return getWrappedComparable().equals(((QueryComparableTPGM) o).getWrappedComparable()); + } + + @Override + public int hashCode() { + return getWrappedComparable().hashCode(); + } + + @Override + public String toString() { + return getWrappedComparable().toString(); + } + +} + diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparable.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparable.java new file mode 100644 index 000000000000..73cea8fcfad4 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparable.java @@ -0,0 +1,138 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.common.model.api.entities.GraphElement; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.util.ComparableFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import org.gradoop.gdl.model.comparables.time.Duration; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimePoint; + +import java.util.HashSet; +import java.util.Set; + +/** + * Wraps a {@link org.gradoop.gdl.model.comparables.time.Duration} + */ +public class DurationComparable extends TemporalComparable { + + /** + * The wrapped duration + */ + private final Duration duration; + /** + * the from value of the interval + */ + private final TemporalComparable from; + /** + * the to value of the interval + */ + private final TemporalComparable to; + /** + * Long describing the system time of the query + */ + private final Long now; + + /** + * Creates a new wrapper + * + * @param duration the Duration to be wrapped + */ + public DurationComparable(Duration duration) { + this(duration, new TimeLiteral("now")); + } + + /** + * Creates a new wrapper + * + * @param duration the duration to be wrapped + * @param now system time of the query + */ + public DurationComparable(Duration duration, TimeLiteral now) { + this.duration = duration; + this.from = (TemporalComparable) ComparableFactory.createComparableFrom(duration.getFrom()); + this.to = (TemporalComparable) ComparableFactory.createComparableFrom(duration.getTo()); + this.now = now.getMilliseconds(); + } + + public Duration getDuration() { + return duration; + } + + public TemporalComparable getFrom() { + return from; + } + + public TemporalComparable getTo() { + return to; + } + + public Long getNow() { + return now; + } + + @Override + public PropertyValue evaluate(Embedding embedding, EmbeddingMetaData metaData) { + long toLong = to.evaluate(embedding, metaData).getLong() == TemporalElement.DEFAULT_TIME_TO ? + now : to.evaluate(embedding, metaData).getLong(); + return PropertyValue.create(toLong - + from.evaluate(embedding, metaData).getLong()); + } + + @Override + public PropertyValue evaluate(GraphElement element) { + long toLong = to.evaluate(element).getLong() == TemporalElement.DEFAULT_TIME_TO ? + now : to.evaluate(element).getLong(); + return PropertyValue.create(toLong - + from.evaluate(element).getLong()); + } + + @Override + public Set getPropertyKeys(String variable) { + HashSet keys = new HashSet<>(); + keys.addAll(from.getPropertyKeys(variable)); + keys.addAll(to.getPropertyKeys(variable)); + return keys; + } + + + @Override + public TimePoint getWrappedComparable() { + return duration; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + DurationComparable that = (DurationComparable) o; + return that.from.equals(from) && that.to.equals(to); + } + + @Override + public int hashCode() { + return duration.hashCode(); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparable.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparable.java new file mode 100644 index 000000000000..73ee3540f7a8 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparable.java @@ -0,0 +1,145 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.common.model.api.entities.GraphElement; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.util.ComparableFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.TimePoint; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; + +/** + * Wraps a {@link org.gradoop.gdl.model.comparables.time.MaxTimePoint} + */ +public class MaxTimePointComparable extends TemporalComparable { + + /** + * The wrapped MaxTimePoint + */ + private final MaxTimePoint maxTimePoint; + + /** + * Wrappers for the arguments + */ + private final ArrayList args; + + /** + * Creates a new wrapper. + * + * @param maxTimePoint the wrapped MaxTimePoint. + */ + public MaxTimePointComparable(MaxTimePoint maxTimePoint) { + this.maxTimePoint = maxTimePoint; + args = new ArrayList<>(); + for (TimePoint arg : maxTimePoint.getArgs()) { + args.add(ComparableFactory.createComparableFrom(arg)); + } + } + + @Override + public PropertyValue evaluate(Embedding embedding, EmbeddingMetaData metaData) { + long max = TemporalElement.DEFAULT_TIME_FROM; + for (QueryComparable arg : args) { + long argValue = arg.evaluate(embedding, metaData).getLong(); + if (argValue > max) { + max = argValue; + } + } + return PropertyValue.create(max); + } + + @Override + public PropertyValue evaluate(GraphElement element) { + if (maxTimePoint.getVariables().size() > 1) { + throw new UnsupportedOperationException("can not evaluate an expression with >1 variable on" + + " a single GraphElement!"); + } + long max = TemporalElement.DEFAULT_TIME_FROM; + for (QueryComparable arg : args) { + long argValue = arg.evaluate(element).getLong(); + if (argValue > max) { + max = argValue; + } + } + return PropertyValue.create(max); + } + + @Override + public Set getPropertyKeys(String variable) { + HashSet keys = new HashSet<>(); + for (QueryComparable comp: getArgs()) { + keys.addAll(comp.getPropertyKeys(variable)); + } + return keys; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + MaxTimePointComparable that = (MaxTimePointComparable) o; + if (that.args.size() != args.size()) { + return false; + } + + for (QueryComparable arg : args) { + boolean foundMatch = false; + for (QueryComparable candidate : that.args) { + if (arg.equals(candidate)) { + foundMatch = true; + break; + } + } + if (!foundMatch) { + return false; + } + } + return true; + } + + @Override + public int hashCode() { + return maxTimePoint != null ? maxTimePoint.hashCode() : 0; + } + + @Override + public TimePoint getWrappedComparable() { + return maxTimePoint; + } + + public MaxTimePoint getMaxTimePoint() { + return maxTimePoint; + } + + public ArrayList getArgs() { + return args; + } + +} + diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparable.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparable.java new file mode 100644 index 000000000000..0d310ab0081b --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparable.java @@ -0,0 +1,151 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.common.model.api.entities.GraphElement; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.util.ComparableFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimePoint; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; + +/** + * Wraps a {@link org.gradoop.gdl.model.comparables.time.MinTimePoint} + */ +public class MinTimePointComparable extends TemporalComparable { + + /** + * The wrapped MinTimePoint + */ + private MinTimePoint minTimePoint; + /** + * Wrappers for the arguments + */ + private ArrayList args; + + /** + * Creates a new wrapper. + * + * @param minTimePoint the wrapped MinTimePoint. + */ + public MinTimePointComparable(MinTimePoint minTimePoint) { + this.minTimePoint = minTimePoint; + args = new ArrayList<>(); + for (TimePoint arg : minTimePoint.getArgs()) { + args.add(ComparableFactory.createComparableFrom(arg)); + } + } + + public ArrayList getArgs() { + return args; + } + + public void setArgs( + ArrayList args) { + this.args = args; + } + + public MinTimePoint getMinTimePoint() { + return minTimePoint; + } + + public void setMinTimePoint(MinTimePoint minTimePoint) { + this.minTimePoint = minTimePoint; + } + + @Override + public PropertyValue evaluate(Embedding embedding, EmbeddingMetaData metaData) { + long min = TemporalElement.DEFAULT_TIME_TO; + for (QueryComparable arg : args) { + long argValue = arg.evaluate(embedding, metaData).getLong(); + if (argValue < min) { + min = argValue; + } + } + return PropertyValue.create(min); + } + + @Override + public PropertyValue evaluate(GraphElement element) { + if (minTimePoint.getVariables().size() > 1) { + throw new UnsupportedOperationException("can not evaluate an expression with >1 variable on" + + " a single GraphElement!"); + } + long min = TemporalElement.DEFAULT_TIME_TO; + for (QueryComparable arg : args) { + long argValue = arg.evaluate(element).getLong(); + if (argValue < min) { + min = argValue; + } + } + return PropertyValue.create(min); + } + + @Override + public Set getPropertyKeys(String variable) { + HashSet keys = new HashSet<>(); + for (QueryComparable comp: getArgs()) { + keys.addAll(comp.getPropertyKeys(variable)); + } + return keys; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + MinTimePointComparable that = (MinTimePointComparable) o; + if (that.args.size() != args.size()) { + return false; + } + + for (QueryComparable arg : args) { + boolean foundMatch = false; + for (QueryComparable candidate : that.args) { + if (arg.equals(candidate)) { + foundMatch = true; + break; + } + } + if (!foundMatch) { + return false; + } + } + return true; + } + + @Override + public int hashCode() { + return minTimePoint != null ? minTimePoint.hashCode() : 0; + } + + @Override + public TimePoint getWrappedComparable() { + return minTimePoint; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TemporalComparable.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TemporalComparable.java new file mode 100644 index 000000000000..85626b4a86a3 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TemporalComparable.java @@ -0,0 +1,26 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.QueryComparableTPGM; + +/** + * Abstract base class for all temporal comparable + * Provides the opportunity to implement methods specific for temporal comparable + */ +public abstract class TemporalComparable extends QueryComparableTPGM { + +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparable.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparable.java new file mode 100644 index 000000000000..4fb8abc65a26 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparable.java @@ -0,0 +1,99 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.common.model.api.entities.GraphElement; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.gdl.model.comparables.time.TimeConstant; +import org.gradoop.gdl.model.comparables.time.TimePoint; + +import java.util.HashSet; +import java.util.Set; + +/** + * Wraps a {@link org.gradoop.gdl.model.comparables.time.TimeConstant} + */ +public class TimeConstantComparable extends TemporalComparable { + + /** + * The wrapped constant + */ + private final TimeConstant constant; + + /** + * Creates a new wrapper for a TimeConstant. + * + * @param constant the TimeConstant to wrap + */ + public TimeConstantComparable(TimeConstant constant) { + this.constant = constant; + } + + /** + * Returns the wrapped constant + * + * @return the wrapped constant + */ + public TimeConstant getTimeConstant() { + return constant; + } + + + @Override + public TimePoint getWrappedComparable() { + return constant; + } + + @Override + public PropertyValue evaluate(Embedding embedding, EmbeddingMetaData metaData) { + return PropertyValue.create(constant.evaluate().get()); + } + + @Override + public PropertyValue evaluate(GraphElement element) { + return PropertyValue.create(constant.evaluate().get()); + } + + @Override + public Set getPropertyKeys(String variable) { + return new HashSet<>(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + TimeConstantComparable that = (TimeConstantComparable) o; + + return that.constant.equals(constant); + } + + @Override + public int hashCode() { + return constant.hashCode(); + } + + public TimeConstant getConstant() { + return constant; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparable.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparable.java new file mode 100644 index 000000000000..2e14e5d9a7d2 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparable.java @@ -0,0 +1,96 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.common.model.api.entities.GraphElement; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimePoint; + +import java.util.HashSet; +import java.util.Set; + +/** + * Wraps a {@link org.gradoop.gdl.model.comparables.time.TimeLiteral} + */ +public class TimeLiteralComparable extends TemporalComparable { + + /** + * The wrapped TimeLiteral + */ + private final TimeLiteral timeLiteral; + + /** + * Creates a new wrapper + * + * @param timeLiteral the wrapped literal + */ + public TimeLiteralComparable(TimeLiteral timeLiteral) { + this.timeLiteral = timeLiteral; + } + + /** + * Returns the wrapped {@link TimeLiteral} + * + * @return wrapped literal + */ + public TimeLiteral getTimeLiteral() { + return timeLiteral; + } + + @Override + public PropertyValue evaluate(Embedding embedding, EmbeddingMetaData metaData) { + return PropertyValue.create(timeLiteral.evaluate().get()); + } + + @Override + public PropertyValue evaluate(GraphElement element) { + return PropertyValue.create( + timeLiteral.evaluate().get()); + } + + @Override + public Set getPropertyKeys(String variable) { + return new HashSet<>(0); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + TimeLiteralComparable that = (TimeLiteralComparable) o; + + return that.timeLiteral.equals(timeLiteral); + } + + @Override + public int hashCode() { + return timeLiteral != null ? timeLiteral.hashCode() : 0; + } + + + @Override + public TimePoint getWrappedComparable() { + return timeLiteral; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparable.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparable.java new file mode 100644 index 000000000000..b46e866fa5dc --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparable.java @@ -0,0 +1,124 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.common.model.api.entities.GraphElement; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.gdl.model.comparables.time.TimePoint; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphElement; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +/** + * Wraps an {@link org.gradoop.gdl.model.comparables.time.TimeSelector} + */ +public class TimeSelectorComparable extends TemporalComparable { + + /** + * The wrapped TimeSelector + */ + private final TimeSelector timeSelector; + + /** + * Creates a new wrapper + * + * @param timeSelector the wrapped literal + */ + public TimeSelectorComparable(TimeSelector timeSelector) { + this.timeSelector = timeSelector; + } + + /** + * Returns the variable of the wrapped TimeSelector + * + * @return variable of the TimeSelector + */ + public String getVariable() { + return timeSelector.getVariable(); + } + + /** + * Returns the TimeField (i.e. TX_FROM, TX_TO, VAL_FROM or VAL_TO) of the wrapped TimeSelector + * + * @return TimeField of wrapped TimeSelector + */ + public TimeSelector.TimeField getTimeField() { + return timeSelector.getTimeProp(); + } + + @Override + public PropertyValue evaluate(Embedding embedding, EmbeddingMetaData metaData) { + String selectorString = timeSelector.getTimeProp().toString(); + int column = metaData + .getPropertyColumn(timeSelector.getVariable(), selectorString); + + return embedding.getProperty(column); + } + + @Override + public PropertyValue evaluate(GraphElement element) { + // here no distinction from global selectors, as element is always a single vertex or edge + Long time = -1L; + TimeSelector.TimeField field = timeSelector.getTimeProp(); + if (field.equals(TimeSelector.TimeField.TX_FROM)) { + time = ((TemporalGraphElement) element).getTxFrom(); + } else if (field == TimeSelector.TimeField.TX_TO) { + time = ((TemporalGraphElement) element).getTxTo(); + } else if (field == TimeSelector.TimeField.VAL_FROM) { + time = ((TemporalGraphElement) element).getValidFrom(); + } else if (field == TimeSelector.TimeField.VAL_TO) { + time = ((TemporalGraphElement) element).getValidTo(); + } + return PropertyValue.create(time); + } + + @Override + public Set getPropertyKeys(String variable) { + return getVariable().equals(variable) ? + new HashSet<>(Collections.singletonList(getTimeField().toString())) : + new HashSet<>(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + TimeSelectorComparable that = (TimeSelectorComparable) o; + + return that.timeSelector.equals(timeSelector); + } + + @Override + public int hashCode() { + return timeSelector != null ? timeSelector.hashCode() : 0; + } + + + @Override + public TimePoint getWrappedComparable() { + return timeSelector; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/package-info.java new file mode 100644 index 000000000000..778a1caf441e --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Includes wrappers of all comparable expressions + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/ComparableFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/ComparableFactory.java new file mode 100644 index 000000000000..ff8230a13dbc --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/ComparableFactory.java @@ -0,0 +1,76 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.util; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.ElementSelectorComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.LiteralComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.PropertySelectorComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.DurationComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MaxTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MinTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeConstantComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeLiteralComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeSelectorComparable; +import org.gradoop.gdl.model.comparables.ComparableExpression; +import org.gradoop.gdl.model.comparables.ElementSelector; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.PropertySelector; +import org.gradoop.gdl.model.comparables.time.Duration; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeConstant; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +/** + * Class for creating a {@link QueryComparable} wrapper for a GDL {@link ComparableExpression} + */ +public class ComparableFactory { + + /** + * Create a wrapper for a GDL comparable + * + * @param expression the GDL element to wrap + * @return wrapper for expression + * @throws IllegalArgumentException if expression is no GDL ComparableExpression + */ + public static QueryComparable createComparableFrom(ComparableExpression expression) { + if (expression.getClass() == Literal.class) { + return new LiteralComparable((Literal) expression); + } else if (expression.getClass() == PropertySelector.class) { + return new PropertySelectorComparable((PropertySelector) expression); + } else if (expression.getClass() == ElementSelector.class) { + return new ElementSelectorComparable((ElementSelector) expression); + } else if (expression.getClass() == TimeLiteral.class) { + return new TimeLiteralComparable((TimeLiteral) expression); + } else if (expression.getClass() == TimeSelector.class) { + return new TimeSelectorComparable((TimeSelector) expression); + } else if (expression.getClass() == MinTimePoint.class) { + return new MinTimePointComparable((MinTimePoint) expression); + } else if (expression.getClass() == MaxTimePoint.class) { + return new MaxTimePointComparable((MaxTimePoint) expression); + } else if (expression.getClass() == TimeConstant.class) { + return new TimeConstantComparable((TimeConstant) expression); + } else if (expression.getClass() == Duration.class) { + return new DurationComparable((Duration) expression); + } else { + throw new IllegalArgumentException( + expression.getClass() + " is not a GDL ComparableExpression" + ); + } + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/package-info.java new file mode 100644 index 000000000000..1de3c06dcd61 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/util/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Includes auxiliary methods for comparable expressions + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.util; + diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/package-info.java new file mode 100644 index 000000000000..dca611303a20 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains functions concerning query predicates + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query.predicates; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/ComparisonUtil.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/ComparisonUtil.java new file mode 100644 index 000000000000..1a0c10e06c7b --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/ComparisonUtil.java @@ -0,0 +1,36 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.util; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TemporalComparable; + +/** + * Utility methods for handling objects of type {@link ComparisonExpression} + */ +public class ComparisonUtil { + + /** + * Checks whether a comparison expression compares temporal elements + * + * @param comparison comparison expression to check + * @return true iff expression wraps a well-formed temporal comparison + */ + public static boolean isTemporal(ComparisonExpression comparison) { + return comparison.getLhs() instanceof TemporalComparable && + comparison.getRhs() instanceof TemporalComparable; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/package-info.java new file mode 100644 index 000000000000..085798f487a4 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/util/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains utility functions for comparisons + */ +package org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.util; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatistics.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatistics.java new file mode 100644 index 000000000000..d9234ca7d1e7 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatistics.java @@ -0,0 +1,200 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; + +import java.util.Optional; + +/** + * Abstract base class for statistics about temporal graphs + */ +public abstract class TemporalGraphStatistics { + + /** + * Returns the number of vertices with a given label + * + * @param label label of the vertices to count + * @return number of vertices with a given label + */ + public abstract long getVertexCount(String label); + + /** + * Returns total number of vertices + * + * @return total number of vertices + */ + public abstract long getVertexCount(); + + /** + * Returns the number of edges with a given label + * + * @param label label of the edges to count + * @return number of edges with a given label + */ + public abstract long getEdgeCount(String label); + + /** + * Returns total number of edges + * + * @return total number of edges + */ + public abstract long getEdgeCount(); + + /** + * Counts or estimates the number of distinct source vertices for edges + * with a certain label + * + * @param edgeLabel label of the edge to count the vertices + * @return number of distinct source vertices for edges with given label + */ + public abstract long getDistinctSourceVertexCount(String edgeLabel); + + /** + * Counts or estimates the number of distinct source vertices + * + * @return number of distinct source vertices + */ + public abstract long getDistinctSourceVertexCount(); + + /** + * Counts or estimates the number of distinct target vertices + * + * @return number of distinct target vertices + */ + public abstract long getDistinctTargetVertexCount(); + + /** + * Counts or estimates the number of distinct target vertices for edges with a certain label + * + * @param edgeLabel label of the edge to count the target vertices + * @return number of distinct target vertices for edges with given label + */ + public abstract long getDistinctTargetVertexCount(String edgeLabel); + + /** + * Estimates the probability that a temporal property (tx_from, tx_to, valid_from, valid_to) + * of an element with a certain label satisfies a constraint comparing it to a literal + * + * @param type1 the type of the element to compare (vertex or edge) + * @param label1 label of the element to compare (if known) + * @param field1 time field (tx_from, tx_to, valid_from, valid_to) of the element to compare + * @param comp comparator + * @param value long constant (i.e. literal) to compare the element with + * @return estimation of the probability that the condition holds + */ + public abstract double estimateTemporalProb(ElementType type1, Optional label1, + TimeSelector.TimeField field1, + Comparator comp, Long value); + + /** + * Estimates the probability that a comparison between two time selectors + * holds. The return value may only be reasonable, if the time selectors + * refer to distinct variables. + * + * @param type1 the type of the lhs element to compare (vertex or edge) + * @param label1 label of the lhs element to compare (if known) + * @param field1 time property (tx_from, tx_to, valid_from, valid_to) of the lhs + * element to compare + * @param comp comparator + * @param type2 the type of the rhs element to compare (vertex or edge) + * @param label2 label of the rhs element to compare (if known) + * @param field2 time property (tx_from, tx_to, val_from, val_to) of the rhs + * element to compare + * @return estimation of the probability that the condition holds + */ + public abstract double estimateTemporalProb(ElementType type1, Optional label1, + TimeSelector.TimeField field1, + Comparator comp, + ElementType type2, Optional label2, + TimeSelector.TimeField field2); + + /** + * Estimates the probability that a comparison of the form + * {@code variable.interval comparator constant} + * holds. + * + * @param type type of the lhs element (vertex/edge) + * @param label label of the lhs element + * @param comp comparator of the comparison + * @param transaction indicates whether transaction time should be compared (=>true) + * or valid time (=> false) + * @param value lhs duration constant + * @return estimated probability that the comparison holds + */ + public abstract double estimateDurationProb(ElementType type, Optional label, + Comparator comp, boolean transaction, Long value); + + /** + * Estimates the probability that a comparison of the form + * {@code variable.duration comparator variable.duration} + * holds. + * + * @param type1 type of the lhs element (vertex/edge) + * @param label1 label of the lhs element + * @param transaction1 indicates whether lhs transaction time should be compared (=>true) + * or valid time (=> false) + * @param comp comparator of the comparison + * @param type2 type of the rhs element (vertex/edge) + * @param label2 label of the rhs element + * @param transaction2 indicates whether rhs transaction time should be compared (=>true) or valid time + * (=> false) + * @return estimated probability that the comparison holds + */ + public abstract double estimateDurationProb(ElementType type1, Optional label1, + boolean transaction1, Comparator comp, + ElementType type2, Optional label2, + boolean transaction2); + + /** + * Estimates the probability that a comparison of a property value with a constant holds + * + * @param type type of the lhs (vertex/edge) + * @param label label of the lhs, if known + * @param property property to compare + * @param comp comparator of the comparison + * @param value rhs value + * @return estimated probability that the comparison holds + */ + public abstract double estimatePropertyProb(ElementType type, Optional label, String property, + Comparator comp, PropertyValue value); + + /** + * Estimates the probability that a comparison between two property selectors holds + * + * @param type1 type of the lhs element (vertex/edge) + * @param label1 label of the lhs element, if known + * @param property1 lhs property key + * @param comp comparator of the comparison + * @param type2 type of the rhs element (vertex/edge) + * @param label2 label of the rhs element, if known + * @param property2 rhs property key + * @return estimated probability that the comparison holds + */ + public abstract double estimatePropertyProb(ElementType type1, Optional label1, + String property1, Comparator comp, + ElementType type2, Optional label2, + String property2); + + /** + * Describes the two types of graph elements + */ + public enum ElementType { VERTEX, EDGE } + + +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatisticsFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatisticsFactory.java new file mode 100644 index 000000000000..4229124ffb01 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/TemporalGraphStatisticsFactory.java @@ -0,0 +1,73 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics; + +import org.gradoop.temporal.model.impl.TemporalGraph; + +import java.util.Set; + +/** + * Abstract base class for factories for {@link TemporalGraphStatistics} + * @param the type of {@link TemporalGraphStatistics} + */ +public interface TemporalGraphStatisticsFactory { + + /** + * Create statistics from a temporal graph + * + * @param g graph to create statistics for + * @return graph statistics + * @throws Exception if anything flink-related goes wrong + */ + T fromGraph(TemporalGraph g) throws Exception; + + /** + * Create statistics from a temporal graph, specifying numerical and categorical + * properties to consider explicitly + * + * @param g graph to create statistics for + * @param numericalProperties list of numerical properties to consider + * @param categoricalProperties list of categorical properties to consider + * @return graph statistiscs + * @throws Exception if anything flink-related goes wrong + */ + T fromGraph(TemporalGraph g, Set numericalProperties, + Set categoricalProperties) throws Exception; + + /** + * Create statistics from a temporal graph based on a sample of given size + * + * @param g graph to create statistics for + * @param sampleSize size of sample to be used + * @return graph statistics + * @throws Exception if anything flink-related goes wrong + */ + T fromGraphWithSampling(TemporalGraph g, int sampleSize) throws Exception; + + /** + * Create statistics from a temporal graph based on a sample of given size. + * Numerical and categorical properties to be considered are specified explicitly. + * + * @param g graph to create statistics for + * @param numericalProperties list of numerical properties to consider + * @param categoricalProperties list of categorical properties to consider + * @param sampleSize size of sample to be used + * @return graph statistics + * @throws Exception if anything flink-related goes wrong + */ + T fromGraphWithSampling(TemporalGraph g, int sampleSize, Set numericalProperties, + Set categoricalProperties) throws Exception; +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatistics.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatistics.java new file mode 100644 index 000000000000..03056cb194f9 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatistics.java @@ -0,0 +1,1072 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning; + +import org.apache.commons.math3.distribution.NormalDistribution; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.Binning; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.TemporalElementStats; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.GTE; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +/** + * Wraps for a graph a set of {@link TemporalElementStats}, one for each combination + * (vertex / edge) x (label). + * Provides methods to estimate the probability that comparisons hold, based on + * the wrapped statistics. + */ +@SuppressWarnings("CanBeFinal") +public class BinningTemporalGraphStatistics extends TemporalGraphStatistics implements Serializable { + + /** + * A value to return for a probability close to 0 + */ + static final double VERY_LOW_PROB = 0.001; + + /** + * A value to return for a probability close to 1 + */ + static final double VERY_HIGH_PROB = 0.999; + + /** + * Statistics for every vertex label + */ + private final Map vertexStats; + + /** + * Statistics for every edge label + */ + private final Map edgeStats; + + /** + * Overall vertex count in the graph (exact) + */ + private Long vertexCount; + + /** + * Overall edge count in the graph (exact) + */ + private Long edgeCount; + + /** + * Maps edge labels to a very rough estimation of their number of distinct + * source vertices. + */ + private Map distinctSourceCount; + + /** + * Maps edge labels to a very rough estimation of their number of distinct + * target vertices. + */ + private Map distinctTargetCount; + + /** + * Set of properties to consider in the estimations. + * If null, all properties are considered. + */ + private Set relevantProperties; + + /** + * Creates new graph statistics + * + * @param vertexStats list of vertex statistics (one element for each label) + * @param edgeStats list of edge statistics (one element for each label) + * @param relevantProperties properties to consider + */ + protected BinningTemporalGraphStatistics(List vertexStats, + List edgeStats, + Set relevantProperties) { + this.vertexStats = new HashMap<>(); + this.edgeStats = new HashMap<>(); + this.vertexCount = 0L; + this.edgeCount = 0L; + for (TemporalElementStats edgeStat : edgeStats) { + this.edgeStats.put(edgeStat.getLabel(), edgeStat); + this.edgeCount += edgeStat.getElementCount(); + } + for (TemporalElementStats vertexStat : vertexStats) { + this.vertexStats.put(vertexStat.getLabel(), vertexStat); + this.vertexCount += vertexStat.getElementCount(); + } + this.relevantProperties = relevantProperties; + initDistinctVertices(); + } + + /** + * Initializes the statistics for distinct vertices + */ + private void initDistinctVertices() { + this.distinctSourceCount = new HashMap<>(); + this.distinctTargetCount = new HashMap<>(); + + // for every type of edge... + for (Map.Entry entries : edgeStats.entrySet()) { + TemporalElementStats stats = edgeStats.get(entries.getKey()); + List sample = stats.getSample(); + int sampleSize = sample.size(); + // ...extract source and target vertex IDs of the edges... + HashSet sourceIds = new HashSet<>(); + HashSet targetIds = new HashSet<>(); + for (TemporalElement edge : sample) { + sourceIds.add(((TemporalEdge) edge).getSourceId()); + targetIds.add(((TemporalEdge) edge).getTargetId()); + } + // ... and estimate distinct source and target vertices naively + long sourceEstimation = sourceIds.size() * + (stats.getElementCount() / sampleSize); + long targetEstimation = targetIds.size() * + (stats.getElementCount() / sampleSize); + distinctSourceCount.put(entries.getKey(), sourceEstimation); + distinctTargetCount.put(entries.getKey(), targetEstimation); + } + } + + /** + * Returns the vertex statistics list + * + * @return vertex statistics list + */ + public Map getVertexStats() { + return vertexStats; + } + + /** + * Returns the edge statistics list + * + * @return edge statistics list + */ + public Map getEdgeStats() { + return edgeStats; + } + + @Override + public long getVertexCount(String label) { + if (label.isEmpty()) { + return getVertexCount(); + } + if (vertexStats.containsKey(label)) { + return vertexStats.get(label).getElementCount(); + } + return 0; + } + + @Override + public long getVertexCount() { + return vertexCount; + } + + @Override + public long getEdgeCount(String label) { + if (label.isEmpty()) { + return edgeCount; + } + if (edgeStats.containsKey(label)) { + return edgeStats.get(label).getElementCount(); + } + return 0; + } + + @Override + public long getEdgeCount() { + return edgeCount; + } + + @Override + public long getDistinctSourceVertexCount(String edgeLabel) { + return distinctSourceCount.getOrDefault(edgeLabel, 0L); + } + + @Override + public long getDistinctSourceVertexCount() { + return distinctSourceCount.values().stream().reduce(0L, Long::sum); + } + + @Override + public long getDistinctTargetVertexCount() { + return distinctTargetCount.values().stream().reduce(0L, Long::sum); + } + + @Override + public long getDistinctTargetVertexCount(String edgeLabel) { + return distinctTargetCount.getOrDefault(edgeLabel, 0L); + } + + @Override + public double estimateTemporalProb(ElementType type1, Optional label1, + TimeSelector.TimeField field1, Comparator comp, Long value) { + // no further estimations for = and != + if (comp == EQ) { + return VERY_LOW_PROB; + } else if (comp == Comparator.NEQ) { + return VERY_HIGH_PROB; + } + // <, <=, >=, > + if (!(label1.isPresent())) { + return estimateTemporalProb(type1, field1, comp, value); + } else { + TemporalElementStats elementStats = (type1 == ElementType.VERTEX) ? + vertexStats.getOrDefault(label1.get(), null) : + edgeStats.getOrDefault(label1.get(), null); + // label not in keys + if (elementStats == null) { + return VERY_LOW_PROB; + } + Binning bins = getBins(elementStats, field1); + return estimateFromBins(bins, comp, value); + } + } + + @Override + public double estimateTemporalProb(ElementType type1, Optional label1, + TimeSelector.TimeField field1, Comparator comp, ElementType type2, + Optional label2, TimeSelector.TimeField field2) { + // no further estimations for = and != + if (comp == EQ) { + return VERY_LOW_PROB; + } else if (comp == Comparator.NEQ) { + return VERY_HIGH_PROB; + } + // stats for lhs (can be more than one, if no label is specified) + List statsLhs; + // same for rhs + List statsRhs; + + // determine relevant statistics for rhs and lhs + if (!(label1.isPresent())) { + statsLhs = type1 == ElementType.VERTEX ? + new ArrayList<>(vertexStats.values()) : + new ArrayList<>(edgeStats.values()); + } else { + statsLhs = type1 == ElementType.VERTEX ? + new ArrayList<>( + Collections.singletonList(vertexStats.getOrDefault(label1.get(), null))) : + new ArrayList<>( + Collections.singletonList(edgeStats.getOrDefault(label1.get(), null))); + // label not in the DB + if (statsLhs.get(0) == null) { + return 0.; + } + } + // same for rhs + if (!(label2.isPresent())) { + statsRhs = type2 == ElementType.VERTEX ? + new ArrayList<>(vertexStats.values()) : + new ArrayList<>(edgeStats.values()); + } else { + statsRhs = type2 == ElementType.VERTEX ? + new ArrayList<>( + Collections.singletonList(vertexStats.getOrDefault(label2.get(), null))) : + new ArrayList<>( + Collections.singletonList(edgeStats.getOrDefault(label2.get(), null))); + // label not in the DB + if (statsRhs.get(0) == null) { + return 0.; + } + } + return estimateTimeSelectorComparison(statsLhs, field1, comp, statsRhs, field2); + } + + /** + * Estimates the probability that a comparison between two time selectors holds + * Both selectors are described by the statistics that are relevant for them + * (one statistic if label was specified, more than one if not). + * + * @param statsLhs list of statistics for the lhs + * @param fieldLhs lhs time field (tx_from, tx_to, val_from, val_to) + * @param comparator comparator of the comparison + * @param statsRhs list of statistics for the rhs + * @param fieldRhs rhs time field + * @return estimation of the probability that the comparison holds + */ + private double estimateTimeSelectorComparison(List statsLhs, + TimeSelector.TimeField fieldLhs, + Comparator comparator, List statsRhs, + TimeSelector.TimeField fieldRhs) { + // count overall number of elements for both sides + long lhsOverallCount = statsLhs.stream() + .map(TemporalElementStats::getElementCount) + .reduce(Long::sum) + .orElse(0L); + long rhsOverallCount = statsRhs.stream() + .map(TemporalElementStats::getElementCount) + .reduce(Long::sum) + .orElse(0L); + double sum = 0.; + + for (TemporalElementStats lhs : statsLhs) { + double lhsWeight = (double) lhs.getElementCount() / lhsOverallCount; + for (TemporalElementStats rhs : statsRhs) { + double rhsWeight = (double) rhs.getElementCount() / rhsOverallCount; + sum += lhsWeight * rhsWeight * + estimateTimeSelectorComparison(lhs, fieldLhs, comparator, rhs, fieldRhs); + } + } + return sum; + } + + /** + * Estimates the probability that a comparison between two time selectors holds + * Both selectors are described by the statistics that are relevant for them + * (one statistic for both lhs and rhs). + * + * @param statsLhs statistics for the lhs + * @param fieldLhs lhs time field (tx_from, tx_to, val_from, val_to) + * @param comparator comparator of the comparison + * @param statsRhs statistics for the rhs + * @param fieldRhs rhs time field + * @return estimation of the probability that the comparison holds + */ + private double estimateTimeSelectorComparison(TemporalElementStats statsLhs, + TimeSelector.TimeField fieldLhs, + Comparator comparator, TemporalElementStats statsRhs, + TimeSelector.TimeField fieldRhs) { + + double sum = 0.; + + // first, compare without considering Long.MIN values, TemporalElement.DEFAULT_TIME_TO values + + double[] lhs = statsLhs.getTemporalPropertyStats(fieldLhs); + double[] rhs = statsRhs.getTemporalPropertyStats(fieldRhs); + double lhsMean = lhs[0]; + double lhsVariance = lhs[1]; + double lhsExtreme = lhs[2]; + double rhsMean = rhs[0]; + double rhsVariance = rhs[1]; + double rhsExtreme = rhs[2]; + // probability that both lhs and rhs not TemporalElement.DEFAULT_TIME_FROM or + // TemporalElement.DEFAULT_TIME_TO + double probBothNotExtreme = (1 - lhsExtreme) * (1 - rhsExtreme); + // distribution for difference between lhs and rhs values + NormalDistribution diffDist = new NormalDistribution(lhsMean - rhsMean, + Math.max(lhsVariance + rhsVariance, VERY_LOW_PROB)); + + // P(lhs < rhs) + double probNotExtremeLTE = diffDist.cumulativeProbability(0.); + // P(lhs = rhs) + double probNotExtremeEQ = diffDist.probability(0.); + // P(lhs comp rhs) + double probCompNotExtreme = 0.; + + if (comparator == LTE) { + probCompNotExtreme = probNotExtremeLTE; + } else if (comparator == LT) { + probCompNotExtreme = probNotExtremeLTE - probNotExtremeEQ; + } else if (comparator == EQ) { + probCompNotExtreme = probNotExtremeEQ; + } else if (comparator == NEQ) { + probCompNotExtreme = 1. - probNotExtremeEQ; + } else if (comparator == GTE) { + probCompNotExtreme = 1. - (probNotExtremeLTE - probNotExtremeEQ); + } else if (comparator == GT) { + probCompNotExtreme = 1. - probNotExtremeLTE; + } + + sum += probBothNotExtreme * probCompNotExtreme; + + // also consider cases in which one or both sides have extreme values + double probCompExtreme = 0.; + // lhs from + if (fieldLhs == TX_FROM || fieldLhs == VAL_FROM) { + // rhs from + if (fieldRhs == TX_FROM || fieldRhs == VAL_FROM) { + if (comparator == EQ) { + probCompExtreme = lhsExtreme * rhsExtreme; + } else if (comparator == NEQ) { + probCompExtreme = (1 - lhsExtreme) * rhsExtreme + lhsExtreme * (1 - rhsExtreme); + } else if (comparator == LTE) { + probCompExtreme = lhsExtreme; + } else if (comparator == LT) { + probCompExtreme = lhsExtreme * (1 - rhsExtreme); + } else if (comparator == GTE) { + probCompExtreme = rhsExtreme; + } else if (comparator == GT) { + probCompExtreme = (1 - lhsExtreme) * rhsExtreme; + } + } else { + // rhs to + if (comparator == NEQ || comparator == LT || comparator == LTE) { + probCompExtreme = lhsExtreme * rhsExtreme + (1 - lhsExtreme) * rhsExtreme + + lhsExtreme * (1 - rhsExtreme); + } //for all other comparators 0, if lhs and/or rhs extreme + } + } else { // lhs to + // rhs from + if (fieldRhs == TX_FROM || fieldRhs == VAL_FROM) { + if (comparator == NEQ || comparator == GT || comparator == GTE) { + probCompExtreme = lhsExtreme * rhsExtreme + (1 - lhsExtreme) * rhsExtreme + + lhsExtreme * (1 - rhsExtreme); + } // for all other comparators 0, if lhs and/or rhs extreme + } else { + // rhs to + if (comparator == EQ) { + probCompExtreme = lhsExtreme * rhsExtreme; + } else if (comparator == NEQ) { + probCompExtreme = (1 - lhsExtreme) * rhsExtreme + lhsExtreme * (1 - rhsExtreme); + } else if (comparator == LTE) { + probCompExtreme = rhsExtreme; + } else if (comparator == LT) { + probCompExtreme = (1 - lhsExtreme) * rhsExtreme; + } else if (comparator == GTE) { + probCompExtreme = lhsExtreme; + } else if (comparator == GT) { + probCompExtreme = lhsExtreme * (1 - rhsExtreme); + } + } + } + + sum += probCompExtreme; + + return sum; + } + + + @Override + public double estimateDurationProb(ElementType type, Optional label, Comparator comp, + boolean transaction, Long value) { + Map statsMap = (type == ElementType.VERTEX) ? vertexStats : edgeStats; + List relevantStats = label.isPresent() ? + new ArrayList<>(Collections.singletonList(statsMap.get(label.get()))) : + new ArrayList<>(statsMap.values()); + + double sum = 0.; + long numElements = 0; + for (TemporalElementStats stat : relevantStats) { + numElements += stat.getElementCount(); + } + + for (TemporalElementStats stat : relevantStats) { + + double[] durationStats = transaction ? + stat.getTxDurationStats() : stat.getValDurationStats(); + NormalDistribution durationDist = new NormalDistribution( + durationStats[0], Math.max(Math.sqrt(durationStats[1]), VERY_LOW_PROB)); + double estimation = 0.; + + if (comp == EQ) { + estimation = durationDist.density(value); + } else if (comp == NEQ) { + estimation = 1. - durationDist.density(value); + } else if (comp == LTE) { + estimation = durationDist.cumulativeProbability(value); + } else if (comp == LT) { + estimation = durationDist.cumulativeProbability(value) - + durationDist.density(value); + } else if (comp == GT) { + estimation = 1 - durationDist.cumulativeProbability(value); + } else if (comp == GTE) { + estimation = 1 - (durationDist.cumulativeProbability(value)) + + durationDist.density(value); + } + sum += estimation * ((double) stat.getElementCount() / numElements); + } + return sum; + } + + @Override + public double estimateDurationProb(ElementType type1, Optional label1, boolean transaction1, + Comparator comp, ElementType type2, Optional label2, + boolean transaction2) { + Map statsMapLhs = (type1 == ElementType.VERTEX) ? vertexStats : edgeStats; + List relevantStatsLhs = label1.isPresent() ? + new ArrayList<>(Collections.singletonList(statsMapLhs.get(label1.get()))) : + new ArrayList<>(statsMapLhs.values()); + + Map statsMapRhs = (type2 == ElementType.VERTEX) ? vertexStats : edgeStats; + List relevantStatsRhs = label2.isPresent() ? + new ArrayList<>(Collections.singletonList(statsMapRhs.get(label2.get()))) : + new ArrayList<>(statsMapRhs.values()); + + double sum = 0.; + long numElements = 0; + for (TemporalElementStats statL : relevantStatsLhs) { + for (TemporalElementStats statR : relevantStatsRhs) { + numElements += statL.getElementCount() * statR.getElementCount(); + } + } + + for (TemporalElementStats statLhs : relevantStatsLhs) { + long countLhs = statLhs.getElementCount(); + + for (TemporalElementStats statRhs : relevantStatsRhs) { + long countRhs = statRhs.getElementCount(); + + double[] durationStatsLhs = transaction1 ? + statLhs.getTxDurationStats() : statLhs.getValDurationStats(); + double[] durationStatsRhs = transaction2 ? + statRhs.getTxDurationStats() : statRhs.getValDurationStats(); + + // distribution of differences (LHS - RHS) + NormalDistribution diffDist = new NormalDistribution( + durationStatsLhs[0] - durationStatsRhs[0], + Math.max(Math.sqrt(durationStatsLhs[1] + durationStatsRhs[1]), VERY_LOW_PROB)); + + double estimation = 0.; + + if (comp == EQ) { + estimation = diffDist.density(0); + } else if (comp == NEQ) { + estimation = 1. - diffDist.density(0); + } else if (comp == LTE) { + estimation = diffDist.cumulativeProbability(0); + } else if (comp == LT) { + estimation = diffDist.cumulativeProbability(0) - + diffDist.density(0); + } else if (comp == GT) { + estimation = 1 - diffDist.cumulativeProbability(0); + } else if (comp == GTE) { + estimation = 1 - (diffDist.cumulativeProbability(0)) + + diffDist.density(0); + } + + sum += estimation * ((double) countLhs * (double) countRhs) / (double) numElements; + } + } + return sum; + } + + @Override + public double estimatePropertyProb(ElementType type, Optional label, String property, + Comparator comp, PropertyValue value) { + Map statsMap = type == ElementType.VERTEX ? + vertexStats : edgeStats; + + List relevantStats; + if (label.isPresent()) { + if (statsMap.containsKey(label.get())) { + relevantStats = new ArrayList<>(Collections.singletonList(statsMap.get(label.get()))); + } else { + return VERY_LOW_PROB; + } + } else { + relevantStats = new ArrayList<>(statsMap.values()); + } + + + if (value.isNumber()) { + return estimateNumericalPropertyProb(relevantStats, property, comp, value); + } else { + return estimateCategoricalPropertyProb(relevantStats, property, comp, value); + } + + } + + @Override + public double estimatePropertyProb(ElementType type1, Optional label1, String property1, + Comparator comp, + ElementType type2, Optional label2, String property2) { + Map statsMap1 = type1 == ElementType.VERTEX ? vertexStats : edgeStats; + List relevantStats1 = label1.isPresent() ? + new ArrayList<>(Collections.singletonList(statsMap1.get(label1.get()))) : + new ArrayList<>(statsMap1.values()); + Map statsMap2 = type2 == ElementType.VERTEX ? vertexStats : edgeStats; + List relevantStats2 = label2.isPresent() ? + new ArrayList<>(Collections.singletonList(statsMap2.get(label2.get()))) : + new ArrayList<>(statsMap1.values()); + + // check if numerical or categorical + boolean numerical1 = false; + boolean numerical2 = false; + for (TemporalElementStats s : relevantStats1) { + if (s.getNumericalPropertyStatsEstimation().containsKey(property1)) { + numerical1 = true; + } + } + for (TemporalElementStats s : relevantStats2) { + if (s.getNumericalPropertyStatsEstimation().containsKey(property2)) { + numerical2 = true; + } + } + + if (isPropertyRelevant(property1) != isPropertyRelevant(property2)) { + return 0.5; + } + + if (numerical1 != numerical2) { + // numerical properties can not be compared to categorical. + return 0.; + } else if (!numerical1) { + return estimateCategoricalPropertyProb(relevantStats1, property1, comp, + relevantStats2, property2); + } else { + return estimateNumericalPropertyProb(relevantStats1, property1, comp, + relevantStats2, property2); + } + } + + /** + * Estimates the probability that a comparison on numerical property data holds. + * RHS and LHS elements are described by a list of element statistics + * Note that the method assumes lhs and rhs to be independent, i.e. a call + * does not yield a reasonable value for comparing the same property of the + * exact same element. + * + * @param relevantStats1 statistics for lhs elements + * @param property1 lhs property to compare + * @param comp comparator + * @param relevantStats2 statistics for the rhs elements + * @param property2 rhs property to compare + * @return estimation of probability that the comparison holds + */ + private double estimateNumericalPropertyProb(List relevantStats1, String property1, + Comparator comp, List relevantStats2, + String property2) { + long count1 = relevantStats1.stream() + .map(TemporalElementStats::getElementCount) + .reduce(0L, Long::sum); + long count2 = relevantStats2.stream() + .map(TemporalElementStats::getElementCount) + .reduce(0L, Long::sum); + long totalCount = count1 * count2; + + double outerSum = 0.; + for (TemporalElementStats s1 : relevantStats1) { + double innerSum = 0.; + for (TemporalElementStats s2 : relevantStats2) { + double prob = estimateNumericalPropertyProb(s1, property1, comp, s2, property2); + double weight = ((double) s1.getElementCount() * s2.getElementCount()) / + totalCount; + innerSum += prob * weight; + } + outerSum += innerSum; + } + return outerSum; + } + + /** + * Estimates the probability that a comparison between numerical properties holds. + * LHS and RHS are described by one statistics element. They are assumed to be + * independent, otherwise the estimation may not be reasonable. + * + * @param stats1 lhs statistics + * @param property1 lhs property to compare + * @param comp comparator + * @param stats2 rhs statistics + * @param property2 rhs property to compare + * @return estimation of probability that the comparison holds + */ + private double estimateNumericalPropertyProb(TemporalElementStats stats1, String property1, + Comparator comp, + TemporalElementStats stats2, String property2) { + Map map1 = stats1.getNumericalPropertyStatsEstimation(); + Map map2 = stats2.getNumericalPropertyStatsEstimation(); + Double[] propStats1 = map1.getOrDefault(property1, null); + Double[] propStats2 = map2.getOrDefault(property2, null); + if (propStats1 == null || propStats2 == null) { + return 0.0001; + } + double occurrence = stats1.getNumericalOccurrenceEstimation() + .getOrDefault(property1, 0.) * + stats2.getNumericalOccurrenceEstimation().getOrDefault(property2, 0.); + // assuming both properties are normally distributed, + // their difference is also normally distributed + NormalDistribution differenceDist = new NormalDistribution( + propStats1[0] - propStats2[0], + Math.max(Math.sqrt(propStats1[1] + propStats2[1]), VERY_LOW_PROB)); + + if (comp == EQ) { + return occurrence * differenceDist.density(0.); + } else if (comp == NEQ) { + return occurrence * (1. - differenceDist.density(0.)); + } else if (comp == LTE) { + return occurrence * (differenceDist.cumulativeProbability(0.)); + } else if (comp == LT) { + return occurrence * (differenceDist.cumulativeProbability(0.) - + differenceDist.density(0.)); + } else if (comp == GTE) { + return occurrence * (1. - differenceDist.cumulativeProbability(0.) + + differenceDist.density(0.)); + } else { + //GT + return occurrence * (1. - differenceDist.cumulativeProbability(0.)); + } + } + + /** + * Estimates the probability that a comparison between categorical property values holds. + * LHS and RHS are described by lists of stats + * + * @param relevantStats1 lhs statistics + * @param property1 lhs property to compare + * @param comp comparator + * @param relevantStats2 rhs statistics + * @param property2 rhs property to compare + * @return estimation of the probability that the comparison holds + */ + private double estimateCategoricalPropertyProb(List relevantStats1, String property1, + Comparator comp, + List relevantStats2, + String property2) { + long count1 = relevantStats1.stream() + .map(TemporalElementStats::getElementCount) + .reduce(0L, Long::sum); + long count2 = relevantStats2.stream() + .map(TemporalElementStats::getElementCount) + .reduce(0L, Long::sum); + long totalCount = count1 * count2; + + + double outerSum = 0.; + for (TemporalElementStats s1 : relevantStats1) { + double innerSum = 0.; + for (TemporalElementStats s2 : relevantStats2) { + double prob = estimateCategoricalPropertyProb(s1, property1, comp, s2, property2); + double weight = ((double) s1.getElementCount() * s2.getElementCount()) / + totalCount; + innerSum += prob * weight; + } + outerSum += innerSum; + } + return outerSum; + } + + /** + * Estimates the probability that a comparison between categorical properties holds. + * LHS and RHS are both described by a statistics element. + * + * @param stats1 lhs statistics + * @param property1 lhs property to compare + * @param comp comparator + * @param stats2 rhs statistics + * @param property2 rhs property to compare + * @return estimation of the probability that the comparison holds + */ + private double estimateCategoricalPropertyProb(TemporalElementStats stats1, String property1, + Comparator comp, + TemporalElementStats stats2, String property2) { + Map> map1 = + stats1.getCategoricalSelectivityEstimation(); + Map> map2 = + stats2.getCategoricalSelectivityEstimation(); + Map propStats1 = map1.getOrDefault(property1, null); + Map propStats2 = map2.getOrDefault(property2, null); + // property not sampled or not considered + if (propStats1 == null || propStats2 == null) { + // property not considered => return 0.5 + if (!isPropertyRelevant(property1) && !isPropertyRelevant(property2)) { + return 0.5; + } else { + // property not sampled => very rare => return very small value + return 0.0001; + } + } + if (comp == EQ || comp == NEQ) { + double sum = 0.; + for (Map.Entry entry1 : propStats1.entrySet()) { + double val1Selectivity = entry1.getValue(); + for (Map.Entry entry2 : propStats2.entrySet()) { + if (entry1.getKey().equals(entry2.getKey())) { + double val2Selectivity = entry2.getValue(); + sum += val1Selectivity * val2Selectivity; + } + } + } + return comp == EQ ? sum : 1. - sum; + } else { + // shouldn't happen, categorical variables can only be compared with EQ or NEQ + return 0.; + } + } + + /** + * Estimates the probability that a comparison between a categorical property value + * and a constant holds + * + * @param relevantStats statistics for the lhs (the elements that can have the + * property in question) + * @param property the property + * @param comp comparator of the comparison + * @param value rhs of the comparison + * @return estimation of the probability that the comparison holds + */ + private double estimateCategoricalPropertyProb(List relevantStats, String property, + Comparator comp, PropertyValue value) { + if (comp != EQ && comp != NEQ) { + return 0.; + } + long overallCount = 0L; + boolean found = false; + for (TemporalElementStats stat : relevantStats) { + overallCount += stat.getElementCount(); + if (stat.getCategoricalSelectivityEstimation().containsKey(property)) { + found = true; + } + } + // property not sampled or not considered + if (!found) { + // not relevant/considered => simply return 0.5 + if (!isPropertyRelevant(property)) { + return 0.5; + } else { + // not sampled => very rare or not even there => return very small value + return 0.0001; + } + } + + double prob = 0.; + for (TemporalElementStats stat : relevantStats) { + if (!stat.getCategoricalSelectivityEstimation().containsKey(property)) { + // not sampled ? .... + double factor = 0.0001; + // ...or just excluded/not relevant? + if (!isPropertyRelevant(property)) { + factor = 0.5; + } + prob += factor * ((double) stat.getElementCount() / overallCount); + continue; + } + prob += stat.getCategoricalSelectivityEstimation() + .get(property) + .getOrDefault(value, 0.0001) * + ((double) stat.getElementCount() / overallCount); + } + if (comp == EQ) { + return prob; + } else { + //NEQ + return 1 - prob; + } + } + + /** + * Estimates the probability that a comparison between a numerical property value + * and a numerical constant holds + * + * @param relevantStats statistics for the lhs (the elements that can have the + * property in question) + * @param property the property + * @param comp comparator of the comparison + * @param value rhs of the comparison + * @return estimation of the probability that the comparison holds + */ + private double estimateNumericalPropertyProb(List relevantStats, String property, + Comparator comp, PropertyValue value) { + long overallCount = 0L; + for (TemporalElementStats stat : relevantStats) { + overallCount += stat.getElementCount(); + } + double sum = 0.; + for (TemporalElementStats stat : relevantStats) { + sum += estimateNumericalPropertyProb(stat, property, comp, value) * + (((double) stat.getElementCount() / overallCount)); + } + return sum; + } + + /** + * Estimates the probability that a comparison between a numerical property value + * and a numerical constant holds for one type of element + * + * @param stat statistics for the lhs + * @param property the property + * @param comp comparator of the comparison + * @param value rhs of the comparison + * @return estimation of the probability that the comparison holds + */ + private double estimateNumericalPropertyProb(TemporalElementStats stat, String property, + Comparator comp, PropertyValue value) { + // property not sampled or not considered + if (!stat.getNumericalPropertyStatsEstimation().containsKey(property)) { + // if property not excluded, return very small value + // if excluded, it is irrelevant, return 0.5 + return isPropertyRelevant(property) ? 0.0001 : 0.5; + } + Double[] propertyStats = stat.getNumericalPropertyStatsEstimation().get(property); + NormalDistribution dist = new NormalDistribution(propertyStats[0], + Math.max(Math.sqrt(propertyStats[1]), VERY_LOW_PROB)); + double doubleValue = ((Number) value.getObject()).doubleValue(); + double occurenceProb = stat.getNumericalOccurrenceEstimation().get(property); + if (comp == EQ) { + return VERY_LOW_PROB * occurenceProb; + } else if (comp == NEQ) { + return (1. - VERY_LOW_PROB) * occurenceProb; + } else if (comp == LTE) { + return dist.cumulativeProbability(doubleValue) * occurenceProb; + } else if (comp == LT) { + return occurenceProb * (dist.cumulativeProbability(doubleValue) - VERY_LOW_PROB); + } else if (comp == GTE) { + return occurenceProb * + (1. - dist.cumulativeProbability(doubleValue) + VERY_LOW_PROB); + } else { + //GT + return occurenceProb * (1. - dist.cumulativeProbability(doubleValue)); + } + } + + /** + * Estimates probability of a comparison for elements without label (i.e. probability is determined + * over all vertices/edges) + * + * @param type1 type of the comparison's lhs (vertex/edge) + * @param field1 field of the lhs (tx_from, tx_to, valid_from, valid_to) + * @param comp comparator + * @param value rhs (constant value) + * @return estimation of probability that the specified comparison holds + */ + private double estimateTemporalProb(ElementType type1, TimeSelector.TimeField field1, + Comparator comp, Long value) { + double sum = 0.; + Map stats = type1 == ElementType.VERTEX ? + vertexStats : edgeStats; + + Long overallCount = type1 == ElementType.VERTEX ? vertexCount : edgeCount; + for (TemporalElementStats elementStat : stats.values()) { + Binning bins = getBins(elementStat, field1); + sum += estimateFromBins(bins, comp, value) * + (elementStat.getElementCount() / (double) overallCount); + } + return sum; + } + + /** + * Estimates the probability that a comparison holds using bin statistics + * + * @param bins the bins that describe the lhs of the comparison + * @param comp comparator, not EQ or NEQ + * @param value rhs of the comparison + * @return estimation of probability that the comparison holds + */ + private double estimateFromBins(Binning bins, Comparator comp, Long value) { + int[] valueBins = findBins(bins, value); + int numBins = bins.getBins().length; + + if (comp == Comparator.LT) { + return ((double) valueBins[0]) / ((double) numBins); + } else if (comp == LTE) { + return ((double) valueBins[1]) / ((double) numBins); + } else if (comp == Comparator.GT) { + // 1 - LTE estimation + return 1 - ((double) valueBins[1]) / ((double) numBins); + } else { + // 1- LT estimation for GTE + return 1 - ((double) valueBins[0]) / ((double) numBins); + } + } + + /** + * Checks whether a property key should be considered. + * This is the case iff no property keys to consider are specified + * (then all are relevant) or the set of specified relevant key contains the property + * + * @param property property to check for relevance + * @return true iff property should be considered for estimations + */ + private boolean isPropertyRelevant(String property) { + return relevantProperties == null || relevantProperties.contains(property); + } + + /** + * Finds the bins in which a value falls + * + * @param bins bins to search for the value + * @param value value to search + * @return integer array containing the lowest suitable bin index and the highest. + * A value can fall into more than one bin in a row, as the bins are equal width. + * E.g., binning a sequence {@code 1,2,2,3} into 4 bins would yield 2 suitable bins + * for the value {@code 2} + */ + private int[] findBins(Binning bins, Long value) { + Long[] binReps = bins.getBins(); + int bin = Arrays.binarySearch(binReps, value); + if (bin < 0) { + bin = -bin; + } + bin = Math.min(bin, binReps.length - 1); + // bins are equal size, so the same bin could occur more than once + // the lowest bin in which value fits + int minBin = bin; + // the "highest" bin in which value fits + int maxBin = bin; + while (minBin >= 0 && matchesBin(binReps, value, minBin)) { + minBin--; + } + minBin++; + while (maxBin < binReps.length && matchesBin(binReps, value, maxBin)) { + maxBin++; + } + maxBin--; + return new int[]{minBin, maxBin}; + } + + /** + * Checks whether a suitable bin was found for a value. + * + * @param arr the array of bins + * @param value the value to search + * @param index index of the potentially suitable bin + * @return true iff index denotes a suitable bin for value + */ + private boolean matchesBin(Long[] arr, Long value, int index) { + if (arr.length == 1) { + return true; + } + if (index == arr.length - 1) { + return value >= arr[index]; + } else if (index == 0) { + return value < arr[index + 1]; + } else { + boolean lowerCond = value >= arr[index]; + boolean upperCond = value.equals(TemporalElement.DEFAULT_TIME_TO) ? value <= arr[index + 1] : + value < arr[index + 1]; + return lowerCond && upperCond; + } + } + + /** + * Auxiliary method to get the bin for a certain time field (tx_from, tx_to, valid_from, valid_to) + * + * @param elementStats element statistics from which to retrieve the bin + * @param field1 time field + * @return binning statistics for the time field + */ + private Binning getBins(TemporalElementStats elementStats, TimeSelector.TimeField field1) { + if (field1 == TimeSelector.TimeField.TX_FROM) { + return elementStats.getEstimatedTimeBins()[0]; + } else if (field1 == TX_TO) { + return elementStats + .getEstimatedTimeBins()[1]; + } else if (field1 == TimeSelector.TimeField.VAL_FROM) { + return elementStats.getEstimatedTimeBins()[2]; + } else { + return elementStats.getEstimatedTimeBins()[3]; + } + } + +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactory.java new file mode 100644 index 000000000000..e92c9f24f286 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactory.java @@ -0,0 +1,90 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning; + +import org.apache.commons.compress.utils.Lists; +import org.apache.flink.api.java.io.LocalCollectionOutputFormat; +import org.gradoop.common.model.impl.pojo.EPGMElement; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatisticsFactory; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.functions.ElementsToStats; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.TemporalElementStats; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Factory for {@link BinningTemporalGraphStatistics} + */ +public class BinningTemporalGraphStatisticsFactory implements + TemporalGraphStatisticsFactory { + + /** + * Default size for a sample + */ + static final int DEFAULT_SAMPLE_SIZE = 5000; + + @Override + public BinningTemporalGraphStatistics fromGraph(TemporalGraph g) throws Exception { + return fromGraphWithSampling(g, DEFAULT_SAMPLE_SIZE); + } + + @Override + public BinningTemporalGraphStatistics fromGraph(TemporalGraph g, Set numericalProperties, + Set categoricalProperties) throws Exception { + return fromGraphWithSampling(g, DEFAULT_SAMPLE_SIZE, numericalProperties, categoricalProperties); + } + + @Override + public BinningTemporalGraphStatistics fromGraphWithSampling(TemporalGraph g, int sampleSize) + throws Exception { + return fromGraphWithSampling(g, sampleSize, null, null); + } + + @Override + public BinningTemporalGraphStatistics fromGraphWithSampling(TemporalGraph g, int sampleSize, + Set numericalProperties, + Set categoricalProperties) + throws Exception { + + List vertexStats = Lists.newArrayList(); + g.getVertices() + .groupBy(EPGMElement::getLabel) + .reduceGroup(new ElementsToStats<>(numericalProperties, categoricalProperties)) + .output(new LocalCollectionOutputFormat<>(vertexStats)); + + List edgeStats = Lists.newArrayList(); + g.getEdges() + // do not replace this with the method reference!!! + .groupBy(edge -> edge.getLabel()) + .reduceGroup(new ElementsToStats<>(numericalProperties, categoricalProperties)) + .output(new LocalCollectionOutputFormat<>(edgeStats)); + + g.getConfig().getExecutionEnvironment().execute(); + + HashSet relevantProperties = null; + // both only null, if all properties should be considered + // (use empty lists to ignore all properties) + if (numericalProperties != null && categoricalProperties != null) { + relevantProperties = new HashSet<>(); + relevantProperties.addAll(numericalProperties); + relevantProperties.addAll(categoricalProperties); + } + + return new BinningTemporalGraphStatistics(vertexStats, edgeStats, relevantProperties); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/ElementsToStats.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/ElementsToStats.java new file mode 100644 index 000000000000..8d6b73d3b49f --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/ElementsToStats.java @@ -0,0 +1,71 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.functions; + +import org.apache.flink.api.common.functions.GroupReduceFunction; +import org.apache.flink.util.Collector; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.TemporalElementStats; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; + +import java.util.Set; + +/** + * Reduces a set of {@link TemporalElement} to a {@link TemporalElementStats} about this set. + * It is assumed that all elements have the same label. + * + * @param type of element to reduce + */ +public class ElementsToStats implements + GroupReduceFunction { + + /** + * List of numerical properties to consider + */ + private final Set numericalProperties; + /** + * List of categorical properties to consider + */ + private final Set categoricalProperties; + + /** + * Creates a new ElementsToStats function considering only specified properties + * + * @param numericalProperties numerical properties to consider + * @param categoricalProperties categorical propberties to consider + */ + public ElementsToStats(Set numericalProperties, Set categoricalProperties) { + this.numericalProperties = numericalProperties; + this.categoricalProperties = categoricalProperties; + } + + /** + * Creates a new ElementsToStats function considering all properties + */ + public ElementsToStats() { + this(null, null); + } + + @Override + public void reduce(Iterable values, Collector out) throws Exception { + TemporalElementStats stats = new TemporalElementStats(numericalProperties, categoricalProperties); + // Reduce the collection by offering all elements to the reservoir-sample-based statistics + for (TemporalElement element : values) { + stats.addElement(element); + stats.setLabel(element.getLabel()); + } + out.collect(stats); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/package-info.java new file mode 100644 index 000000000000..118b2611b95a --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/functions/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains functions needed for binning temporal graph statistics. + */ +package org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.functions; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/package-info.java new file mode 100644 index 000000000000..3200587d39a4 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains classes for temporal graph statistics using binning. + */ +package org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/Binning.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/Binning.java new file mode 100644 index 000000000000..e7f16ae64f2e --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/Binning.java @@ -0,0 +1,110 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo; + +import org.gradoop.temporal.model.impl.pojo.TemporalElement; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +/** + * Implements equal frequency binning of Long values. + */ +public class Binning implements Serializable { + + /** + * Default number of bins + */ + public static final int DEFAULT_NUM_OF_BINS = 100; + /** + * represents the bins. Every bin is defined by its lowest value + */ + private Long[] bins = new Long[]{}; + + /** + * Creates new bins from values. Furthermore, the number of bins to create is given. + * + * @param values values to create bins from + * @param numberOfBins number of bins to create + */ + public Binning(List values, int numberOfBins) { + createBins(values, numberOfBins); + } + + /** + * Creates new bins from values. Number of bins is default. + * + * @param values values to create bins from + */ + public Binning(List values) { + this(values, DEFAULT_NUM_OF_BINS); + } + + /** + * Creates the bins from values. The value list is sorted and divided into + * equal sized bins. The first bin gets lowest value {@code Long.MIN_VALUE}, + * every other bin's lowest value is computed as + * {@code max(previous bin) + (min(current bin) - max(previous bin))/2} + * + * @param values values to create bins from. Its size must be a multiple of the specified + * number of bins! + * @param numberOfBins number of bins to create + * @throws IllegalArgumentException if number ov values is not a multiple of the number of bins + */ + private void createBins(List values, int numberOfBins) throws IllegalArgumentException { + if (values.size() % numberOfBins != 0) { + throw new IllegalArgumentException("Number of values must be a multiple of the number of bins!"); + } + + values.sort(Long::compare); + + // there can not be more bins than values + if (values.size() < numberOfBins) { + numberOfBins = values.size(); + } + + // size of a bin is the number of elements contained + int binSize = values.size() / numberOfBins; + + bins = new Long[numberOfBins]; + bins[0] = TemporalElement.DEFAULT_TIME_FROM; + + for (int i = 1; i < numberOfBins; i++) { + long maxPreviousBin = values.get((i * binSize) - 1); + long minCurrentBin = values.get(i * binSize); + bins[i] = maxPreviousBin + (minCurrentBin - maxPreviousBin) / 2; + } + } + + /** + * Returns the bins + * + * @return bins + */ + public Long[] getBins() { + return bins.clone(); + } + + public void setBins(Long[] bins) { + this.bins = bins.clone(); + } + + @Override + public int hashCode() { + return Arrays.hashCode(bins); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/ReservoirSampler.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/ReservoirSampler.java new file mode 100644 index 000000000000..a27bf27e8292 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/ReservoirSampler.java @@ -0,0 +1,138 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * Implements Reservoir Sampling. + * + * @param the type of elements to sample (vertices, edges) + */ +public class ReservoirSampler implements Serializable { + + /** + * Default value for reservoir sample size + */ + public static final int DEFAULT_SAMPLE_SIZE = 5000; + /** + * The number of vertices to include in the reservoir sample + */ + private final int reservoirSampleSize; + /** + * Holds the reservoir sampled vertices + */ + private final ArrayList reservoirSample; + + /** + * Random for use in reservoir sampling + */ + private final Random random; + + /** + * Number of all elements already seen + */ + private long count; + + /** + * Creates a new reservoir sampler + * + * @param reservoirSampleSize maximum size of the sample + */ + public ReservoirSampler(int reservoirSampleSize) { + this.reservoirSampleSize = reservoirSampleSize; + reservoirSample = new ArrayList<>(); + random = new Random(); + count = 0; + } + + /** + * Creates a new reservoir sample with default sample size + */ + public ReservoirSampler() { + this(DEFAULT_SAMPLE_SIZE); + } + + /** + * Updates the sample with a given element, i.e. might add this element + * + * @param element element that might be included in the sample + * @return true iff element was actually included in the sample + */ + public boolean updateSample(T element) { + count++; + if (count <= reservoirSampleSize) { + // sample every element until reservoir sample is full + reservoirSample.add(element); + return true; + } else { + // sample with probability size/count if reservoir sample is full + double randomDouble = random.nextDouble(); + double ratio = (double) reservoirSampleSize / (double) count; + // include vertex? + if (randomDouble <= ratio) { + // replace a random element, probability of replacement is 1/size for each element in the reservoir + int randomIndex = random.nextInt(reservoirSampleSize); + reservoirSample.set(randomIndex, element); + return true; + } + } + return false; + } + + /** + * Updates the sample with a given element list, i.e. might add elements from this list + * + * @param elements elements that might be included in the sample + * @return true iff at least one element was actually included in the sample + */ + public boolean updateSample(List elements) { + boolean updated = false; + for (T element : elements) { + updated = updateSample(element) || updated; + } + return updated; + } + + /** + * Returns the reservoir sample + * + * @return reservoir sample + */ + public List getReservoirSample() { + return reservoirSample; + } + + /** + * Returns the size of the sample + * + * @return size of the sample + */ + public int getSampleSize() { + return reservoirSample.size(); + } + + @Override + public int hashCode() { + if (reservoirSample == null) { + return 0; + } + return reservoirSample.hashCode(); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/TemporalElementStats.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/TemporalElementStats.java new file mode 100644 index 000000000000..87238ea5b422 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/TemporalElementStats.java @@ -0,0 +1,656 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.temporal.model.impl.pojo.TemporalElement; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Basic statistical information about temporal elements with a certain label. + * Uses reservoir sampling for bigger amounts of data, + * so that statistics may only be estimated based on a sample(!) + */ +public class TemporalElementStats implements Serializable { + + /** + * Default Number of bins used for temporal estimations + */ + public static final int DEFAULT_NUM_BINS = 100; + /** + * Samples vertices + */ + private final ReservoirSampler sampler; + /** + * The label of the vertices/edges + */ + private String label; + /** + * number of elements in the sample + */ + private long elementCount; + /** + * Bins to estimate distributions of tx_from, tx_to, val_from, val_to values + */ + private Binning[] estimatedTimeBins; + /** + * Holds mean and variance of tx durations + */ + private double[] txDurationStats; + /** + * Holds mean and variance of val durations + */ + private double[] valDurationStats; + /** + * Holds mean, variance and prob. that val_from=TemporalElement.DEFAULT_TIME_FROM + */ + private double[] valFromStats; + /** + * Holds mean, variance and prob. that tx_from=TemporalElement.DEFAULT_TIME_FROM + */ + private double[] txFromStats; + /** + * Holds mean, variance and prob. that val_to=TemporalElement.DEFAULT_TIME_TO + */ + private double[] valToStats; + /** + * Holds mean, variance and prob. that tx_to=TemporalElement.DEFAULT_TIME_TO + */ + private double[] txToStats; + /** + * list of numerical properties + */ + private Set numericalProperties; + /** + * list of categorical properties + */ + private Set categoricalProperties; + /** + * estimations of the probability that a vertex has a certain property with a + * certain PropertyValue. + * This only refers to categorical, i.e. non-numeric properties. + * The estimations are only computed on the reservoir sample! + */ + private Map> categoricalSelectivityEstimation; + /** + * Holds for every numerical property an estimation of its mean and variance, based + * on the reservoir sample + */ + private Map numericalPropertyStatsEstimation; + /** + * Holds for every numerical property an estimation of its probability to occur + * in an element + */ + private Map numericalOccurrenceEstimation; + /** + * flag indicates that temporal statistics should be recomputed as the reservoir sample + * changed since the last computation. + */ + private boolean recomputeTemporalDataFlag; + /** + * flag indicates that property statistics should be recomputed as the reservoir sample + * changed since the last computation. + */ + private boolean recomputePropertyDataFlag; + + /** + * Creates a element statistics object and set the size of the reservoir sample to compute + * the statistics. The numerical and categorical properties are set by the user. + * Omitted properties are ignored, always assigned the probability 0.5 + * + * @param reservoirSampleSize size of reservoir sample + * @param numericalProperties list of numerical properties to consider + * @param categoricalProperties list of categorical properties to consider + */ + public TemporalElementStats(int reservoirSampleSize, Set numericalProperties, + Set categoricalProperties) { + this(reservoirSampleSize); + this.numericalProperties = numericalProperties; + this.categoricalProperties = categoricalProperties; + } + + /** + * Creates a element statistics object and set the size of the reservoir sample to compute + * the statistics. The numerical and categorical properties are determined + * automatically later (possibly not working very good), all properties are + * considered. + * + * @param reservoirSampleSize size of reservoir sample + */ + public TemporalElementStats(int reservoirSampleSize) { + label = ""; + elementCount = 0; + estimatedTimeBins = new Binning[]{}; + categoricalSelectivityEstimation = new HashMap<>(); + numericalPropertyStatsEstimation = new HashMap<>(); + numericalOccurrenceEstimation = new HashMap<>(); + recomputeTemporalDataFlag = false; + recomputePropertyDataFlag = false; + valFromStats = new double[]{}; + txFromStats = new double[]{}; + valToStats = new double[]{}; + txToStats = new double[]{}; + txDurationStats = new double[]{}; + valDurationStats = new double[]{}; + sampler = new ReservoirSampler<>(reservoirSampleSize); + } + + /** + * Creates a element statistics object that uses a reservoir sample of default size + * {@code SimpleElementStats.DEFAULT_SAMPLE_SIZE} to compute the statistics + * All properties will be considered, their type (numerical/categorical) detected + * automatically (may not work very good). + */ + public TemporalElementStats() { + this(ReservoirSampler.DEFAULT_SAMPLE_SIZE); + } + + /** + * Creates an element statistics object that uses a reservoir sample of default size. + * Numerical and categorical properties to consider are given explicitly + * + * @param numericalProperties numerical properties to consider + * @param categoricalProperties categorical properties to consider + */ + public TemporalElementStats(Set numericalProperties, Set categoricalProperties) { + this(ReservoirSampler.DEFAULT_SAMPLE_SIZE, numericalProperties, categoricalProperties); + } + + + /** + * Updates the statistics by adding a new element's data + * + * @param element the element to include in the stats + * @return true iff the element was actually included in the reservoir sample + */ + public boolean addElement(TemporalElement element) { + elementCount++; + + boolean changed = sampler.updateSample(element); + // set recompute flags, if the element was actually added + recomputeTemporalDataFlag = recomputeTemporalDataFlag || changed; + recomputePropertyDataFlag = recomputePropertyDataFlag || changed; + return changed; + + } + + /** + * Returns the binning estimations for tx_from, tx_to, val_from, val_to depending on + * the vertices that are currently in the reservoir sample + * + * @return binning estimations for temporal data + */ + public Binning[] getEstimatedTimeBins() { + if (recomputeTemporalDataFlag) { + computeTemporalEstimations(); + } + return estimatedTimeBins.clone(); + } + + /** + * Initializes or updates all temporal estimations (dependent on the current reservoir + * sample) + */ + private void computeTemporalEstimations() { + long now = new TimeLiteral("now").getMilliseconds(); + + List reservoirSample = sampler.getReservoirSample(); + int sampleSize = reservoirSample.size(); + if (sampleSize == 0) { + return; + } + + int numBins = Math.min(DEFAULT_NUM_BINS, sampleSize); + + // sample size must be a multiple of the number of bins + if (sampleSize % numBins != 0) { + reservoirSample = reservoirSample.subList(0, + sampleSize - sampleSize % numBins); + } + + // lists collecting all values for each time property, i.e. + // TemporalElement.DEFAULT_TIME_FROM/MAX_VALUE, too + ArrayList allTxFroms = new ArrayList(); + ArrayList allTxTos = new ArrayList(); + ArrayList allValFroms = new ArrayList(); + ArrayList allValTos = new ArrayList(); + + // lists collecting only those values for each time property unequal to + // TemporalElement.DEFAULT_TIME_FROM/MAX_VALUE, too + ArrayList txFroms = new ArrayList(); + ArrayList txTos = new ArrayList(); + ArrayList valFroms = new ArrayList(); + ArrayList valTos = new ArrayList(); + + List valDurations = new ArrayList(); + List txDurations = new ArrayList(); + + // count, how often to values are TemporalElement.DEFAULT_TIME_TO + int txToMaxCount = 0; + int valToMaxCount = 0; + // count, how often from values are TemporalElement.DEFAULT_TIME_FROM + int txFromMinCount = 0; + int valFromMinCount = 0; + + for (TemporalElement element : reservoirSample) { + // collect all relevant temporal properties from the reservoir + long txFrom = element.getTxFrom(); + long txTo = element.getTxTo(); + allTxFroms.add(txFrom); + allTxTos.add(txTo); + if (txFrom > TemporalElement.DEFAULT_TIME_FROM) { + txFroms.add(txFrom); + } else { + txFromMinCount++; + } + if (txTo == TemporalElement.DEFAULT_TIME_TO) { + txToMaxCount += 1; + txDurations.add(now - txFrom); + } else { + txTos.add(txTo); + txDurations.add(txTo - txFrom); + } + + long valFrom = element.getValidFrom(); + long valTo = element.getValidTo(); + allValFroms.add(valFrom); + allValTos.add(valTo); + if (valFrom > TemporalElement.DEFAULT_TIME_FROM) { + valFroms.add(valFrom); + } else { + valFromMinCount++; + } + if (valTo == TemporalElement.DEFAULT_TIME_TO) { + valToMaxCount += 1; + valDurations.add(now - valFrom); + } else { + valTos.add(valTo); + valDurations.add(valTo - valFrom); + } + + } + + // statistics for temporal properties (without binning) + double txFromMean = mean(txFroms); + double txFromVariance = variance(txFroms, txFromMean); + double txFromMinEstimation = (double) txFromMinCount / (double) sampleSize; + txFromStats = new double[]{txFromMean, txFromVariance, txFromMinEstimation}; + + double valFromMean = mean(valFroms); + double valFromVariance = variance(valFroms, valFromMean); + double valFromMinEstimation = (double) valFromMinCount / (double) sampleSize; + valFromStats = new double[]{valFromMean, valFromVariance, valFromMinEstimation}; + + double txToMean = mean(txTos); + double txToVariance = variance(txTos, txToMean); + double txToMaxEstimation = (double) txToMaxCount / (double) sampleSize; + txToStats = new double[]{txToMean, txToVariance, txToMaxEstimation}; + + double valToMean = mean(valTos); + double valToVariance = variance(valTos, valToMean); + double valToMaxEstimation = (double) valToMaxCount / (double) sampleSize; + valToStats = new double[]{valToMean, valToVariance, valToMaxEstimation}; + + // create binnings for the temporal properties + estimatedTimeBins = new Binning[]{ + new Binning(allTxFroms, numBins), + new Binning(allTxTos, numBins), + new Binning(allValFroms, numBins), + new Binning(allValTos, numBins) + }; + + // determine means and variances of the durations + double txDurationMean = mean(txDurations); + double txDurationVar = variance(txDurations, txDurationMean); + txDurationStats = new double[]{txDurationMean, txDurationVar}; + + double valDurationMean = mean(valDurations); + double valDurationVar = variance(valDurations, valDurationMean); + valDurationStats = new double[]{valDurationMean, valDurationVar}; + + recomputeTemporalDataFlag = false; + } + + /** + * Calculates the mean of a list of doubles + * + * @param ls list of doubles to calculate the mean of + * @return mean + */ + private double mean(List ls) { + double mean = 0.; + for (Long l : ls) { + mean += (double) l / ls.size(); + } + return mean; + } + + /** + * Calculates the variance of a list of doubles, given its mean + * + * @param ls list to calculate variance of + * @param mean mean of the list + * @return variance + */ + private double variance(List ls, double mean) { + double var = 0.; + for (Long l : ls) { + var += (l - mean) * (l - mean) * (1. / ls.size()); + } + return var; + } + + + /** + * Initializes or updates all property related estimations (dependent on the current reservoir + * sample) + */ + private void computePropertyEstimations() { + List reservoirSample = sampler.getReservoirSample(); + int sampleSize = reservoirSample.size(); + if (sampleSize == 0) { + return; + } + + // classify all property values, if not already done + if (categoricalProperties == null || numericalProperties == null) { + detectPropertyTypes(reservoirSample); + } + // these maps collect all property values in the sample + HashMap> categoricalData = new HashMap<>(); + HashMap> numericalData = new HashMap<>(); + + // add element data to the corresponding map + for (TemporalElement element : reservoirSample) { + if (element.getPropertyKeys() == null) { + continue; + } + for (String key : element.getPropertyKeys()) { + PropertyValue value = element.getPropertyValue(key); + HashMap> data; + // no outlier, i.e. NULL, NaN etc.? + if (numericalProperties.contains(key) && value.isNumber()) { + data = numericalData; + } else if (categoricalProperties.contains(key)) { + data = categoricalData; + } else { + continue; + } + + data.putIfAbsent(key, new ArrayList<>()); + data.get(key).add(value); + } + } + computeCategoricalEstimations(categoricalData, sampleSize); + computeNumericalEstimations(numericalData, sampleSize); + recomputePropertyDataFlag = false; + } + + /** + * Tries to automatically detect which properties are numerical and categorical. + * Sets {@code numericalProperties} and {@code categoricalProperties} accordingly. + * + * @param reservoirSample the list of elements to use for the detection + */ + private void detectPropertyTypes(List reservoirSample) { + numericalProperties = new HashSet<>(); + categoricalProperties = new HashSet<>(); + // maps count which property is considered numerical/categorical how often + HashMap numerical = new HashMap<>(); + HashMap categorical = new HashMap<>(); + for (TemporalElement element : reservoirSample) { + if (element.getPropertyKeys() == null) { + continue; + } + for (String key : element.getPropertyKeys()) { + PropertyValue value = element.getPropertyValue(key); + if (value.isNumber()) { + numerical.put(key, numerical.getOrDefault(key, 0) + 1); + } else { + categorical.put(key, categorical.getOrDefault(key, 0) + 1); + } + } + } + // check which property is of what type using a threshold + double thresh = 0.9; + HashSet allProperties = new HashSet<>(); + allProperties.addAll(numerical.keySet()); + allProperties.addAll(categorical.keySet()); + for (String property : allProperties) { + int countNumerical = numerical.getOrDefault(property, 0); + int countCategorical = categorical.getOrDefault(property, 0); + int countOverall = countCategorical + countNumerical; + // which type? + if ((double) countNumerical / (double) countOverall >= thresh) { + numericalProperties.add(property); + } else if ((double) countCategorical / (double) countOverall >= thresh) { + categoricalProperties.add(property); + } + // else, the property is too ambiguous and simply ignored + } + } + + /** + * Returns the label of the elements + * + * @return label of the elements + */ + public String getLabel() { + return label; + } + + /** + * sets the label + * + * @param label label + */ + public void setLabel(String label) { + this.label = label; + } + + /** + * Initializes or updates the selectivity estimation for categorical properties + * + * @param data map from categorical property names to a list of their respective + * values in the sample + * @param sampleSize size of the sample + */ + private void computeCategoricalEstimations(Map> data, int sampleSize) { + categoricalSelectivityEstimation = new HashMap<>(); + + for (Map.Entry> entry : data.entrySet()) { + Map selectivityMap = new HashMap<>(); + + for (PropertyValue value : entry.getValue()) { + selectivityMap.put(value, + selectivityMap.getOrDefault(value, 0.) + 1. / sampleSize); + } + + categoricalSelectivityEstimation.put(entry.getKey(), selectivityMap); + } + + } + + /** + * Initializes or updates the estimations for numerical properties + * All of them are considered to be normally distributed + * + * @param data map from numerical property names to a list of their respective + * values in the sample + * @param sampleSize size of the sample + */ + private void computeNumericalEstimations(Map> data, int sampleSize) { + numericalOccurrenceEstimation = new HashMap<>(); + numericalPropertyStatsEstimation = new HashMap<>(); + for (Map.Entry> entry : data.entrySet()) { + List values = data.get(entry.getKey()); + + // estimate how often the property occurs + numericalOccurrenceEstimation.put(entry.getKey(), + (double) values.size() / sampleSize); + + // cast all values to doubles + List doubleValues = values.stream() + .map(this::propertyValueToDouble) + .collect(Collectors.toList()); + + // compute mean and variance for the property + Double sum = doubleValues.stream().reduce(0., Double::sum); + Double mean = sum / values.size(); + Double variance = doubleValues.stream() + .reduce(0., (i, j) -> i + ((j - mean) * (j - mean) * (1. / values.size()))); + + numericalPropertyStatsEstimation.put(entry.getKey(), new Double[]{mean, variance}); + } + } + + /** + * Converts a numerical PropertyValue to its value as a double + * + * @param value PropertyValue to convert + * @return double representation of value + */ + private double propertyValueToDouble(PropertyValue value) { + if (value.isNumber()) { + return ((Number) value.getObject()).doubleValue(); + } + return 0.; + } + + /** + * Returns a map that maps every numerical property to an estimation of its mean and variance + * based on the current reservoir sample + * + * @return map of property names to double arrays. Every array is of the form {mean, variance}. + */ + public Map getNumericalPropertyStatsEstimation() { + if (recomputePropertyDataFlag) { + computePropertyEstimations(); + } + return numericalPropertyStatsEstimation; + } + + /** + * Returns a map that maps every numerical property to an estimation of the probability of + * its occurrence (based on the current reservoir sample) + * + * @return map of property name to probability of its occurence + */ + public Map getNumericalOccurrenceEstimation() { + if (recomputePropertyDataFlag) { + computePropertyEstimations(); + } + return numericalOccurrenceEstimation; + } + + /** + * Returns a map that maps categorical property names to + * estimations of the probability that an element has this property with a + * certain PropertyValue. + * The map is only computed on the sample, so that not every possible property value is + * included! + * + * @return map of property name to a map from property values to their estimated selectivity + */ + public Map> getCategoricalSelectivityEstimation() { + if (recomputePropertyDataFlag) { + computePropertyEstimations(); + } + return categoricalSelectivityEstimation; + } + + /** + * Returns the number of elements in the sample + * + * @return number of elements in the sample + */ + public Long getElementCount() { + return elementCount; + } + + /** + * Return the statistics for tx time durations. Recomputes all temporal estimations if + * necessary. + * + * @return statistics for tx time durations in the form {mean, variance} + */ + public double[] getTxDurationStats() { + if (recomputeTemporalDataFlag) { + computeTemporalEstimations(); + } + return txDurationStats.clone(); + } + + /** + * Return the statistics for valid time durations. Recomputes all temporal estimations if + * necessary. + * + * @return statistics for valid time durations in the form {mean, variance} + */ + public double[] getValDurationStats() { + if (recomputeTemporalDataFlag) { + computeTemporalEstimations(); + } + return valDurationStats.clone(); + } + + /** + * Returns the sample + * + * @return sample + */ + public List getSample() { + return sampler.getReservoirSample(); + } + + @Override + public int hashCode() { + return sampler.hashCode(); + } + + /** + * Returns the (not binning-based) statistics for temporal properties. + * They are arrays of the form {mean, variance, prob. that + * from=TemporalElement.DEFAULT_TIME_FROM / to=TemporalElement.DEFAULT_TIME_TO} + * + * @param property temporal property + * @return statistics array for the property + */ + public double[] getTemporalPropertyStats(TimeSelector.TimeField property) { + if (recomputeTemporalDataFlag) { + computeTemporalEstimations(); + } + if (property == TimeSelector.TimeField.TX_FROM) { + return txFromStats.clone(); + } else if (property == TimeSelector.TimeField.TX_TO) { + return txToStats.clone(); + } else if (property == TimeSelector.TimeField.VAL_FROM) { + return valFromStats.clone(); + } else { + return valToStats.clone(); + } + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/package-info.java new file mode 100644 index 000000000000..640486bd3e38 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojo/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains POJOS needed for binning temporal graph statistics. + */ +package org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatistics.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatistics.java new file mode 100644 index 000000000000..7e57697b55e8 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatistics.java @@ -0,0 +1,108 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.dummy; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; + +import java.util.Optional; + +/** + * A dummy graph statistics where every relevant value is set to 1. + */ +public class DummyTemporalGraphStatistics extends TemporalGraphStatistics { + + @Override + public long getVertexCount(String label) { + return 1; + } + + @Override + public long getVertexCount() { + return 1; + } + + @Override + public long getEdgeCount(String label) { + return 1; + } + + @Override + public long getEdgeCount() { + return 1; + } + + @Override + public long getDistinctSourceVertexCount(String edgeLabel) { + return 1; + } + + @Override + public long getDistinctSourceVertexCount() { + return 1; + } + + @Override + public long getDistinctTargetVertexCount() { + return 1; + } + + @Override + public long getDistinctTargetVertexCount(String edgeLabel) { + return 1; + } + + @Override + public double estimateTemporalProb(ElementType type1, Optional label1, + TimeSelector.TimeField field1, Comparator comp, Long value) { + return 1; + } + + @Override + public double estimateTemporalProb(ElementType type1, Optional label1, + TimeSelector.TimeField field1, Comparator comp, ElementType type2, + Optional label2, TimeSelector.TimeField field2) { + return 1; + } + + @Override + public double estimateDurationProb(ElementType type, Optional label, Comparator comp, + boolean transaction, Long value) { + return 1; + } + + @Override + public double estimateDurationProb(ElementType type1, Optional label1, boolean transaction1, + Comparator comp, ElementType type2, Optional label2, + boolean transaction2) { + return 1; + } + + @Override + public double estimatePropertyProb(ElementType type, Optional label, String property, + Comparator comp, PropertyValue value) { + return 1; + } + + @Override + public double estimatePropertyProb(ElementType type1, Optional label1, String property1, + Comparator comp, ElementType type2, Optional label2, + String property2) { + return 1; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatisticsFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatisticsFactory.java new file mode 100644 index 000000000000..12772b7b36a5 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/DummyTemporalGraphStatisticsFactory.java @@ -0,0 +1,50 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.dummy; + +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatisticsFactory; + +import java.util.Set; + +/** + * Factory for {@link DummyTemporalGraphStatistics} + */ +public class DummyTemporalGraphStatisticsFactory implements TemporalGraphStatisticsFactory { + + @Override + public TemporalGraphStatistics fromGraph(TemporalGraph g) { + return new DummyTemporalGraphStatistics(); + } + + @Override + public TemporalGraphStatistics fromGraphWithSampling(TemporalGraph g, int sampleSize) { + return new DummyTemporalGraphStatistics(); + } + + @Override + public TemporalGraphStatistics fromGraphWithSampling(TemporalGraph g, int sampleSize, + Set numericalProperties, Set categoricalProperties) { + return new DummyTemporalGraphStatistics(); + } + + @Override + public TemporalGraphStatistics fromGraph(TemporalGraph g, Set numericalProperties, + Set categoricalProperties) { + return new DummyTemporalGraphStatistics(); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/package-info.java new file mode 100644 index 000000000000..4b5749d7e058 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/dummy/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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 for "dummy" statistics that are used when no use of statistics is intended. + */ +package org.gradoop.temporal.model.impl.operators.matching.common.statistics.dummy; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/package-info.java new file mode 100644 index 000000000000..129a07b4fc7d --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains classes to represent temporal graph statistics. + */ +package org.gradoop.temporal.model.impl.operators.matching.common.statistics; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/package-info.java new file mode 100644 index 000000000000..9eff6c18f241 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains implementations of graph pattern matching algorithms for TPGM graphs. + */ +package org.gradoop.temporal.model.impl.operators.matching; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/TemporalPatternMatching.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/TemporalPatternMatching.java new file mode 100644 index 000000000000..25f5bf4baca6 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/TemporalPatternMatching.java @@ -0,0 +1,258 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single; + +import com.google.common.base.Preconditions; +import com.google.common.base.Strings; +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.Priority; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.api.operators.UnaryBaseGraphToBaseGraphCollectionOperator; +import org.gradoop.flink.model.impl.functions.epgm.PairElementWithPropertyValue; +import org.gradoop.flink.model.impl.operators.matching.common.debug.PrintIdWithCandidates; +import org.gradoop.flink.model.impl.operators.matching.common.debug.PrintTripleWithCandidates; +import org.gradoop.flink.model.impl.operators.matching.common.debug.Printer; +import org.gradoop.flink.model.impl.operators.matching.common.tuples.IdWithCandidates; +import org.gradoop.flink.model.impl.operators.matching.common.tuples.TripleWithCandidates; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphCollection; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; + +/** + * Base class for temporal pattern matching implementations. Analogous to {@link org.gradoop.flink.model.impl.operators.matching.single.PatternMatching} + * + * @param The graph head type. + * @param The graph type. + * @param The graph collection type. + */ +public abstract class TemporalPatternMatching< + G extends TemporalGraphHead, + LG extends TemporalGraph, + GC extends TemporalGraphCollection> + implements UnaryBaseGraphToBaseGraphCollectionOperator { + + /** + * The property key used to stored the variable mappings inside the GraphHead properties + */ + public static final transient String VARIABLE_MAPPING_KEY = "__variable_mapping"; + + /** + * GDL based query string + */ + private final String query; + /** + * Logger from the concrete implementation + */ + private final Logger log; + /** + * If true, the original vertex and edge data gets attached to the resulting + * vertices and edges. + */ + private final boolean attachData; + /** + * Query handler for queries including time data + */ + private TemporalQueryHandler queryHandler; + /** + * Vertex mapping used for debug + */ + private DataSet> vertexMapping; + /** + * Edge mapping used for debug + */ + private DataSet> edgeMapping; + /** + * indicates that the query is contradictory + */ + private boolean contradictoryQuery = false; + + /** + * Constructor + * + * @param query GDL query + * @param attachData true, if original data shall be attached to the result + * @param log Logger of the concrete implementation + */ + public TemporalPatternMatching(String query, boolean attachData, Logger log) { + this(query, attachData, new CNFPostProcessing(), log); + } + + /** + * Constructor + * + * @param query GDL query + * @param attachData true, if original data shall be attached to the result + * @param cnfProcessor query transformations + * @param log Logger of the concrete implementation + */ + public TemporalPatternMatching(String query, boolean attachData, CNFPostProcessing cnfProcessor, + Logger log) { + Preconditions.checkState(!Strings.isNullOrEmpty(query), + "Query must not be null or empty"); + this.query = query; + + try { + queryHandler = new TemporalQueryHandler(query, cnfProcessor); + } catch (QueryContradictoryException e) { + contradictoryQuery = true; + } + this.attachData = attachData; + this.log = log; + } + + @Override + public GC execute(LG graph) { + if (log.isDebugEnabled()) { + initDebugMappings(graph); + } + + if (contradictoryQuery) { + log.log(Level.toLevel(Priority.WARN_INT), "Query contradictory, empty result"); + return emptyCollection(graph); + } + + GC result; + + if (queryHandler.isSingleVertexGraph()) { + result = executeForVertex(graph); + } else { + result = executeForPattern(graph); + } + + return result; + } + + /** + * Computes the result for single vertex query graphs. + * + * @param graph data graph + * @return result collection + */ + protected abstract GC executeForVertex(LG graph); + + /** + * Computes the result for pattern query graph. + * + * @param graph data graph + * @return result collection + */ + protected abstract GC executeForPattern(LG graph); + + /** + * Return an empty result + * + * @param graph data graph, possibly needed to create a GC factory in the subclass + * @return empty result collection + */ + protected abstract GC emptyCollection(LG graph); + + /** + * Returns the query handler. + * + * @return query handler + */ + protected TemporalQueryHandler getQueryHandler() { + return queryHandler; + } + + /** + * Returns the GDL query processed by this operator instance. + * + * @return GDL query + */ + protected String getQuery() { + return query; + } + + /** + * Determines if the original vertex and edge data shall be attached + * to the vertices/edges in the resulting subgraphs. + * + * @return true, if original data must be attached + */ + protected boolean doAttachData() { + return attachData; + } + + /** + * Returns a mapping between vertex id and property value used for debug. + * + * @return {@code vertex id -> property value} mapping + */ + protected DataSet> getVertexMapping() { + return vertexMapping; + } + + /** + * Returns a mapping between edge id and property value used for debug. + * + * @return {@code edge id -> property value} mapping + */ + protected DataSet> getEdgeMapping() { + return edgeMapping; + } + + //--------------------------------------------------------------------- + // Debugging same as in gradoop-flink + //--------------------------------------------------------------------- + + /** + * Prints {@link TripleWithCandidates} to debug log. + * + * @param edges edge triples with candidates + * @return edges + */ + protected DataSet> printTriplesWithCandidates( + DataSet> edges) { + return edges + .map(new PrintTripleWithCandidates<>()) + .withBroadcastSet(vertexMapping, Printer.VERTEX_MAPPING) + .withBroadcastSet(edgeMapping, Printer.EDGE_MAPPING); + } + + /** + * Prints {@link IdWithCandidates} to debug log. + * + * @param vertices vertex ids with candidates + * @return vertices + */ + protected DataSet> printIdWithCandidates( + DataSet> vertices) { + return vertices + .map(new PrintIdWithCandidates<>()) + .withBroadcastSet(vertexMapping, Printer.VERTEX_MAPPING) + .withBroadcastSet(edgeMapping, Printer.EDGE_MAPPING); + } + + /** + * Initializes the debug mappings between vertices/edges and their debug id. + * + * @param graph data graph + */ + private void initDebugMappings(LG graph) { + vertexMapping = graph.getVertices() + .map(new PairElementWithPropertyValue<>("id")); + edgeMapping = graph.getEdges() + .map(new PairElementWithPropertyValue<>("id")); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/CypherTemporalPatternMatching.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/CypherTemporalPatternMatching.java new file mode 100644 index 000000000000..b48fbda29418 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/CypherTemporalPatternMatching.java @@ -0,0 +1,240 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher; + +import com.google.common.collect.Sets; +import org.apache.flink.api.java.DataSet; +import org.apache.log4j.Logger; +import org.gradoop.common.model.api.entities.Element; +import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; +import org.gradoop.flink.model.impl.operators.matching.common.PostProcessor; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.debug.PrintEmbedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.add.AddEmbeddingsElements; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.project.ProjectEmbeddingsElements; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.QueryPlan; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphCollection; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.single.TemporalPatternMatching; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.functions.ElementsFromEmbeddingTPGM; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.planner.greedy.GreedyPlanner; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.ArrayList; +import java.util.Objects; +import java.util.Set; + +import static com.google.common.collect.Sets.difference; +import static com.google.common.collect.Sets.intersection; +import static org.gradoop.flink.model.impl.operators.matching.common.debug.Printer.log; + +/** + * Implementation of a query engine based on the Cypher graph query language. + */ +public class CypherTemporalPatternMatching + extends TemporalPatternMatching { + + /** + * Logger + */ + private static final Logger LOG = Logger.getLogger(CypherTemporalPatternMatching.class); + /** + * Construction pattern for result transformation. + */ + private final String constructionPattern; + /** + * Morphism strategy for vertex mappings + */ + private final MatchStrategy vertexStrategy; + /** + * Morphism strategy for edge mappings + */ + private final MatchStrategy edgeStrategy; + /** + * Statistics about the data graph + */ + private final TemporalGraphStatistics graphStatistics; + + /** + * Instantiates a new operator. + * + * @param query Cypher query string + * @param attachData true, if original data shall be attached to the result + * @param vertexStrategy morphism strategy for vertex mappings + * @param edgeStrategy morphism strategy for edge mappings + * @param graphStatistics statistics about the data graph + * @param postprocessor postprocessing pipeline for the query CNF + */ + public CypherTemporalPatternMatching(String query, boolean attachData, + MatchStrategy vertexStrategy, MatchStrategy edgeStrategy, + TemporalGraphStatistics graphStatistics, + CNFPostProcessing postprocessor) { + this(query, null, attachData, vertexStrategy, edgeStrategy, graphStatistics, postprocessor); + } + + /** + * Instantiates a new operator. + * + * @param query Cypher query string + * @param constructionPattern Construction pattern + * @param attachData true, if original data shall be attached to the result + * @param vertexStrategy morphism strategy for vertex mappings + * @param edgeStrategy morphism strategy for edge mappings + * @param graphStatistics statistics about the data graph + * @param postprocessor postprocessing pipeline for the query CNF + */ + public CypherTemporalPatternMatching(String query, String constructionPattern, boolean attachData, + MatchStrategy vertexStrategy, MatchStrategy edgeStrategy, + TemporalGraphStatistics graphStatistics, + CNFPostProcessing postprocessor) { + super(query, attachData, postprocessor, LOG); + this.constructionPattern = constructionPattern; + this.vertexStrategy = vertexStrategy; + this.edgeStrategy = edgeStrategy; + this.graphStatistics = graphStatistics; + } + + @Override + protected TemporalGraphCollection executeForVertex(TemporalGraph graph) { + return executeForPattern(graph); + } + + @Override + protected TemporalGraphCollection executeForPattern(TemporalGraph graph) { + // Query planning + TemporalQueryHandler queryHandler = getQueryHandler(); + QueryPlan plan = + new GreedyPlanner<>(graph, queryHandler, graphStatistics, vertexStrategy, edgeStrategy).plan() + .getQueryPlan(); + + // Query execution + DataSet embeddings = plan.execute(); + + EmbeddingMetaData embeddingMetaData = plan.getRoot().getEmbeddingMetaData(); + + embeddings = + log(embeddings, new PrintEmbedding(embeddingMetaData), + getVertexMapping(), getEdgeMapping()); + + // Pattern construction (if necessary) + DataSet finalElements = this.constructionPattern != null ? + constructFinalElements(graph, embeddings, embeddingMetaData) : + embeddings.flatMap( + new ElementsFromEmbeddingTPGM( + graph.getFactory().getGraphHeadFactory(), + graph.getFactory().getVertexFactory(), + graph.getFactory().getEdgeFactory(), + embeddingMetaData, + queryHandler.getSourceTargetVariables())); + + // Post processing + TemporalGraphCollection graphCollection = doAttachData() ? + PostProcessor.extractGraphCollectionWithData(finalElements, graph, true) : + PostProcessor.extractGraphCollection(finalElements, graph.getCollectionFactory(), true); + + return graphCollection; + } + + @Override + protected TemporalGraphCollection emptyCollection(TemporalGraph graph) { + return graph.getCollectionFactory().createEmptyCollection(); + } + + /** + * Method to construct final embedded elements + * + * @param graph Used logical graph + * @param embeddings embeddings + * @param embeddingMetaData Meta information + * @return New set of EmbeddingElements + */ + private DataSet constructFinalElements(TemporalGraph graph, DataSet embeddings, + EmbeddingMetaData embeddingMetaData) { + + TemporalQueryHandler constructionPatternHandler = null; + try { + // no postprocessing needed, construction pattern is not a query + constructionPatternHandler = new TemporalQueryHandler( + this.constructionPattern, new CNFPostProcessing(new ArrayList<>())); + // will never happen, as the construction pattern does not contain conditions + } catch (QueryContradictoryException e) { + e.printStackTrace(); + } + Objects.requireNonNull(constructionPatternHandler).updateGeneratedVariableNames(n -> "_" + n); + + Set queryVars = Sets.newHashSet(embeddingMetaData.getVariables()); + Set constructionVars = constructionPatternHandler.getAllVariables(); + Set existingVars = intersection(queryVars, constructionVars).immutableCopy(); + Set newVars = difference(constructionVars, queryVars).immutableCopy(); + + EmbeddingMetaData newMetaData = computeNewMetaData( + embeddingMetaData, constructionPatternHandler, existingVars, newVars); + + // project existing embedding elements to new embeddings + ProjectEmbeddingsElements projectedEmbeddings = + new ProjectEmbeddingsElements(embeddings, existingVars, embeddingMetaData, newMetaData); + // add new embedding elements + AddEmbeddingsElements addEmbeddingsElements = + new AddEmbeddingsElements(projectedEmbeddings.evaluate(), newVars.size()); + + return addEmbeddingsElements.evaluate().flatMap( + new ElementsFromEmbeddingTPGM<>( + graph.getFactory().getGraphHeadFactory(), + graph.getFactory().getVertexFactory(), + graph.getFactory().getEdgeFactory(), + newMetaData, + constructionPatternHandler.getSourceTargetVariables(), + constructionPatternHandler.getLabelsForVariables(newVars))); + } + + /** + * Compute new meta information + * + * @param metaData old meta information + * @param returnPatternHandler pattern handler + * @param existingVariables old variables + * @param newVariables new variables + * @return new EmbeddingMetaData + */ + private EmbeddingMetaData computeNewMetaData(EmbeddingMetaData metaData, + TemporalQueryHandler returnPatternHandler, + Set existingVariables, Set newVariables) { + // update meta data + EmbeddingMetaData newMetaData = new EmbeddingMetaData(); + + // case 1: Filter existing embeddings based on return pattern + for (String var : existingVariables) { + newMetaData.setEntryColumn(var, metaData.getEntryType(var), newMetaData.getEntryCount()); + } + + // case 2: Add new vertices and edges + for (String var : newVariables) { + EmbeddingMetaData.EntryType type = returnPatternHandler.isEdge(var) ? + EmbeddingMetaData.EntryType.EDGE : + EmbeddingMetaData.EntryType.VERTEX; + + newMetaData.setEntryColumn(var, type, newMetaData.getEntryCount()); + } + return newMetaData; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbeddingTPGM.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbeddingTPGM.java new file mode 100644 index 000000000000..f70413be2927 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/ElementsFromEmbeddingTPGM.java @@ -0,0 +1,301 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.functions; + +import com.google.common.collect.Maps; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.flink.api.common.functions.FlatMapFunction; +import org.apache.flink.util.Collector; +import org.gradoop.common.model.api.entities.EdgeFactory; +import org.gradoop.common.model.api.entities.Element; +import org.gradoop.common.model.api.entities.GraphHeadFactory; +import org.gradoop.common.model.api.entities.VertexFactory; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.PatternMatching; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.utils.ExpandDirection; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * Extracts elements from an {@link Embedding}. + * Is almost identical to + * {@link org.gradoop.flink.model.impl.operators.matching.single.cypher.functions.ElementsFromEmbedding} + * extends it for TPGM embeddings. + * Could be further extended to specify temporal properties like global val/tx in the graph head + * + * @param The graph head type. + * @param The vertex type. + * @param The edge type. + */ +public class ElementsFromEmbeddingTPGM< + G extends TemporalGraphHead, + V extends TemporalVertex, + E extends TemporalEdge> implements FlatMapFunction { + /** + * Constructs temporal graph heads + */ + private final GraphHeadFactory graphHeadFactory; + /** + * Constructs temporal vertices + */ + private final VertexFactory vertexFactory; + /** + * Constructs temporal edges + */ + private final EdgeFactory edgeFactory; + /** + * Describes the embedding content + */ + private final EmbeddingMetaData metaData; + /** + * Source vertex variables by edge id + */ + private final Map> sourceTargetVariables; + /** + * Stores the mapping between query variable and element id. The mapping is added as a property + * to the graph head representing an embedding. + */ + private final Map variableMapping; + /** + * Stores the identifiers that have already been processed. + */ + private final Set processedIds; + /** + * Stores the mapping between return pattern variables and its labels + */ + private final Map labelMapping; + + /** + * Constructor. + * + * @param graphHeadFactory temporal graph head factory + * @param vertexFactory temporal vertex factory + * @param edgeFactory temporal edge factory + * @param embeddingMetaData meta data for the TPGM embedding + * @param sourceTargetVariables source and target vertex variables by edge variable + */ + public ElementsFromEmbeddingTPGM(GraphHeadFactory graphHeadFactory, + VertexFactory vertexFactory, EdgeFactory edgeFactory, + EmbeddingMetaData embeddingMetaData, + Map> sourceTargetVariables) { + this(graphHeadFactory, vertexFactory, edgeFactory, embeddingMetaData, + sourceTargetVariables, Maps.newHashMapWithExpectedSize(0)); + } + + /** + * Constructor. + * + * @param graphHeadFactory temporal graph head factory + * @param vertexFactory temporal vertex factory + * @param edgeFactory temporal edge factory + * @param embeddingMetaData meta data for the TPGM embedding + * @param sourceTargetVariables source and target vertex variables by edge variable + * @param labelMapping mapping between newElementVariables and its labels + */ + public ElementsFromEmbeddingTPGM(GraphHeadFactory graphHeadFactory, + VertexFactory vertexFactory, + EdgeFactory edgeFactory, + EmbeddingMetaData embeddingMetaData, + Map> sourceTargetVariables, + Map labelMapping) { + this.graphHeadFactory = graphHeadFactory; + this.vertexFactory = vertexFactory; + this.edgeFactory = edgeFactory; + this.metaData = embeddingMetaData; + this.sourceTargetVariables = sourceTargetVariables; + this.labelMapping = labelMapping; + this.variableMapping = new HashMap<>(embeddingMetaData.getEntryCount()); + this.processedIds = new HashSet<>(embeddingMetaData.getEntryCount()); + } + + @Override + public void flatMap(Embedding embedding, Collector out) throws Exception { + // clear for each embedding + processedIds.clear(); + + // create graph head for this embedding + TemporalGraphHead graphHead = graphHeadFactory.createGraphHead(); + + // vertices + for (String vertexVariable : metaData.getVertexVariables()) { + GradoopId id = embedding.getId(metaData.getEntryColumn(vertexVariable)); + + if (labelMapping.containsKey(vertexVariable)) { + String label = labelMapping.get(vertexVariable); + initVertexWithData(out, graphHead, id, label); + } else { + initVertex(out, graphHead, id); + } + variableMapping.put(PropertyValue.create(vertexVariable), PropertyValue.create(id)); + } + + // edges + GradoopId edgeId; + GradoopId sourceId; + GradoopId targetId; + // Long[] timeData; + for (String edgeVariable : metaData.getEdgeVariables()) { + edgeId = embedding.getId(metaData.getEntryColumn(edgeVariable)); + sourceId = embedding.getId( + metaData.getEntryColumn(sourceTargetVariables.get(edgeVariable).getLeft())); + targetId = embedding.getId( + metaData.getEntryColumn(sourceTargetVariables.get(edgeVariable).getRight())); + + if (labelMapping.containsKey(edgeVariable)) { + String label = labelMapping.get(edgeVariable); + initEdgeWithData(out, graphHead, edgeId, sourceId, targetId, label); + } else { + initEdge(out, graphHead, edgeId, sourceId, targetId); + } + variableMapping.put(PropertyValue.create(edgeVariable), PropertyValue.create(edgeId)); + } + + // paths (copied from EPGM) + + for (String pathVariable : metaData.getPathVariables()) { + ExpandDirection direction = metaData.getDirection(pathVariable); + List path = embedding.getIdList(metaData.getEntryColumn(pathVariable)); + List mappingValue = new ArrayList<>(path.size()); + for (int i = 0; i < path.size(); i += 2) { + edgeId = path.get(i); + mappingValue.add(PropertyValue.create(edgeId)); + + if (direction == ExpandDirection.OUT) { + sourceId = i > 0 ? + path.get(i - 1) : + embedding.getId( + metaData.getEntryColumn(sourceTargetVariables.get(pathVariable).getLeft())); + + + targetId = i < path.size() - 1 ? + path.get(i + 1) : + embedding.getId( + metaData.getEntryColumn(sourceTargetVariables.get(pathVariable).getRight())); + + if (i + 2 < path.size()) { + mappingValue.add(PropertyValue.create(targetId)); + } + } else { + sourceId = i < path.size() - 1 ? + path.get(i + 1) : + embedding.getId( + metaData.getEntryColumn(sourceTargetVariables.get(pathVariable).getLeft())); + + targetId = i > 0 ? + path.get(i - 1) : + embedding.getId(metaData.getEntryColumn( + sourceTargetVariables.get(pathVariable).getRight())); + + if (i > 0) { + mappingValue.add(PropertyValue.create(sourceId)); + } + } + + initVertex(out, graphHead, sourceId); + initVertex(out, graphHead, targetId); + initEdge(out, graphHead, edgeId, sourceId, targetId); + } + variableMapping.put(PropertyValue.create(pathVariable), PropertyValue.create(mappingValue)); + } + + + graphHead.setProperty(PatternMatching.VARIABLE_MAPPING_KEY, variableMapping); + out.collect(graphHead); + + + } + + /** + * Initializes an vertex using the specified parameters + * + * @param out flat map collector + * @param graphHead temporal graph head to assign vertex to + * @param vertexId vertex identifier + */ + private void initVertex(Collector out, TemporalGraphHead graphHead, + GradoopId vertexId) { + initVertexWithData(out, graphHead, vertexId, null); + } + + /** + * Initializes an vertex using the specified parameters and adds its label + * if the given vertex was created for the return pattern. + * + * @param out flat map collector + * @param graphHead temporal graph head to assign vertex to + * @param vertexId vertex identifier + * @param label label associated with vertex + */ + private void initVertexWithData(Collector out, TemporalGraphHead graphHead, + GradoopId vertexId, + String label) { + if (!processedIds.contains(vertexId)) { + TemporalVertex v = vertexFactory.initVertex(vertexId); + v.addGraphId(graphHead.getId()); + v.setLabel(label); + out.collect(v); + processedIds.add(vertexId); + } + } + + /** + * Initializes an edge using the specified parameters. + * + * @param out flat map collector + * @param graphHead temporal graph head to assign edge to + * @param edgeId edge identifier + * @param sourceId source vertex identifier + * @param targetId target vertex identifier + */ + private void initEdge(Collector out, TemporalGraphHead graphHead, + GradoopId edgeId, GradoopId sourceId, GradoopId targetId) { + initEdgeWithData(out, graphHead, edgeId, sourceId, targetId, null); + } + + /** + * Initializes an edge using the specified parameters and adds its label + * if the given edge was created for return pattern + * + * @param out flat map collector + * @param graphHead temporal graph head to assign edge to + * @param edgeId edge identifier + * @param sourceId source vertex identifier + * @param targetId target vertex identifier + * @param label label associated with edge + */ + private void initEdgeWithData(Collector out, TemporalGraphHead graphHead, + GradoopId edgeId, GradoopId sourceId, GradoopId targetId, + String label) { + if (!processedIds.contains(edgeId)) { + TemporalEdge e = edgeFactory.initEdge(edgeId, sourceId, targetId); + e.addGraphId(graphHead.getId()); + e.setLabel(label); + out.collect(e); + processedIds.add(edgeId); + } + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/package-info.java new file mode 100644 index 000000000000..169cf6bbdb28 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/functions/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains UDFs used by all pattern matching operators. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.functions; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdges.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdges.java new file mode 100644 index 000000000000..8a66986ee699 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdges.java @@ -0,0 +1,101 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter; + +import org.apache.flink.api.java.DataSet; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.PhysicalOperator; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter.functions.FilterAndProjectTemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; + +import java.util.List; + +/** + * Filters a set of {@link TemporalEdge} objects based on a specified predicate. Additionally, the + * operator projects all property and temporal values to the output {@link Embedding} that are specified in the + * given {@code projectionPropertyKeys}. + *

+ * {@code Edge -> Embedding( + * [IdEntry(SourceId),IdEntry(EdgeId),IdEntry(TargetId)], + * [PropertyEntry(v1),PropertyEntry(v2)] + * )} + *

+ * Example: + *
+ * Given an Edge {@code (0, 1, 2, "friendOf", {since:2017, weight:23})}, a predicate {@code "weight = 23"} and + * list of projection property keys [since,isValid] the operator creates an {@link Embedding}: + *
+ * {@code ([IdEntry(1),IdEntry(0),IdEntry(2)],[PropertyEntry(2017),PropertyEntry(NULL)])} + * + */ +public class FilterAndProjectTemporalEdges implements PhysicalOperator { + /** + * Input graph elements + */ + private final DataSet input; + /** + * Predicates in conjunctive normal form + */ + private final CNF predicates; + /** + * Property keys used for projection + */ + private final List projectionPropertyKeys; + /** + * Signals that the edge is a loop + */ + private boolean isLoop; + + /** + * Operator name used for Flink operator description + */ + private String name; + + /** + * New edge filter operator + * + * @param input Candidate edges + * @param predicates Predicates used to filter edges + * @param projectionPropertyKeys Property keys used for projection + * @param isLoop is the edge a loop + */ + public FilterAndProjectTemporalEdges(DataSet input, CNF predicates, + List projectionPropertyKeys, boolean isLoop) { + this.input = input; + this.predicates = predicates; + this.projectionPropertyKeys = projectionPropertyKeys; + this.isLoop = isLoop; + this.setName("FilterAndProjectEdges"); + } + + @Override + public DataSet evaluate() { + return input + .flatMap(new FilterAndProjectTemporalEdge(predicates, projectionPropertyKeys, isLoop)) + .name(getName()); + } + + @Override + public void setName(String newName) { + this.name = newName; + } + + @Override + public String getName() { + return this.name; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVertices.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVertices.java new file mode 100644 index 000000000000..50ad729aba85 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVertices.java @@ -0,0 +1,95 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter; + +import org.apache.flink.api.java.DataSet; +import org.gradoop.common.model.api.entities.Vertex; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.PhysicalOperator; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter.functions.FilterAndProjectTemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.List; + +/** + * Filters a set of {@link Vertex} objects based on a specified predicate. Additionally, the + * operator projects all property and temporal values to the output {@link Embedding} that are specified in the + * given {@code projectionPropertyKeys}. + *

+ * {@code Vertex -> Embedding( [IdEntry(VertexId)], [PropertyEntry(v1),PropertyEntry(v2)])} + *

+ * Example: + *
+ * Given a Vertex {@code (0, "Person", {name:"Alice", age:23})}, a predicate {@code "age = 23"} and + * projection property keys [name, location] the operator creates an + * {@link Embedding}: + *
+ * {@code ([IdEntry(0)],[PropertyEntry(Alice),PropertyEntry(NULL)])} + * + */ +public class FilterAndProjectTemporalVertices implements PhysicalOperator { + /** + * Input vertices + */ + private final DataSet input; + /** + * Predicates in conjunctive normal form + */ + private final CNF predicates; + /** + * Property keys used for projection + */ + private final List projectionPropertyKeys; + + /** + * Operator name used for Flink operator description + */ + private String name; + + /** + * New vertex filter operator + * + * @param input Candidate vertices + * @param predicates Predicates used to filter vertices + * @param projectionPropertyKeys Property keys used for projection + */ + public FilterAndProjectTemporalVertices(DataSet input, + CNF predicates, + List projectionPropertyKeys) { + this.input = input; + this.predicates = predicates; + this.projectionPropertyKeys = projectionPropertyKeys; + this.setName("FilterAndProjectVertices"); + } + + @Override + public DataSet evaluate() { + return input + .flatMap(new FilterAndProjectTemporalVertex(predicates, projectionPropertyKeys)) + .name(getName()); + } + + @Override + public void setName(String newName) { + this.name = newName; + } + + @Override + public String getName() { + return this.name; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalEdge.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalEdge.java new file mode 100644 index 000000000000..5888b05104f3 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalEdge.java @@ -0,0 +1,72 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter.functions; + +import org.apache.flink.api.common.functions.RichFlatMapFunction; +import org.apache.flink.util.Collector; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.pojos.EmbeddingTPGMFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; + +import java.util.List; + +/** + * Applies a given predicate on a {@link TemporalEdge} and projects specified property + * values to the output embedding. + */ +public class FilterAndProjectTemporalEdge extends RichFlatMapFunction { + + /** + * Predicates used for filtering + */ + private final CNF predicates; + /** + * Property Keys used for the projection + */ + private final List projectionPropertyKeys; + /** + * Signals that the edge is a loop + */ + private final boolean isLoop; + + + /** + * New edge filter function + * + * @param predicates predicates used for filtering + * @param projectionPropertyKeys property keys that will be used for projection + * @param isLoop is the edge a loop + */ + public FilterAndProjectTemporalEdge(CNF predicates, List projectionPropertyKeys, + boolean isLoop) { + this.predicates = predicates; + this.projectionPropertyKeys = projectionPropertyKeys; + this.isLoop = isLoop; + } + + @Override + public void flatMap(TemporalEdge edge, Collector out) throws Exception { + if (predicates.evaluate(edge)) { + if (isLoop) { + if (!edge.getSourceId().equals(edge.getTargetId())) { + return; + } + } + out.collect(EmbeddingTPGMFactory.fromEdge(edge, projectionPropertyKeys, isLoop)); + } + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalVertex.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalVertex.java new file mode 100644 index 000000000000..36140026f2b8 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/FilterAndProjectTemporalVertex.java @@ -0,0 +1,59 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter.functions; + +import org.apache.flink.api.common.functions.RichFlatMapFunction; +import org.apache.flink.util.Collector; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.pojos.EmbeddingTPGMFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.List; + +/** + * Applies a given predicate on a {@link org.gradoop.temporal.model.impl.pojo.TemporalVertex} + * and projects specified property values to the output embedding. + */ +public class FilterAndProjectTemporalVertex extends RichFlatMapFunction { + + /** + * Predicates used for filtering + */ + private final CNF predicates; + /** + * Property keys used for value projection + */ + private final List projectionPropertyKeys; + + /** + * New vertex filter function + * + * @param predicates predicates used for filtering + * @param projectionPropertyKeys property keys that will be used for projection + */ + public FilterAndProjectTemporalVertex(CNF predicates, List projectionPropertyKeys) { + this.predicates = predicates; + this.projectionPropertyKeys = projectionPropertyKeys; + } + + @Override + public void flatMap(TemporalVertex vertex, Collector out) throws Exception { + if (predicates.evaluate(vertex)) { + out.collect(EmbeddingTPGMFactory.fromVertex(vertex, projectionPropertyKeys)); + } + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java new file mode 100644 index 000000000000..0e21ea052b99 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/functions/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains UDFs used by the Filter query operators. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter.functions; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/package-info.java new file mode 100644 index 000000000000..d0cd24dac6cc --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains classed related to the Filter query operator. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/package-info.java new file mode 100644 index 000000000000..68a609207b5e --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains the physical query operators. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/package-info.java new file mode 100644 index 000000000000..3df32cd61969 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains everything related to cypher query planning for temporal graphs. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimation.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimation.java new file mode 100644 index 000000000000..c4c08c646785 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimation.java @@ -0,0 +1,585 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.LiteralComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.PropertySelectorComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.DurationComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MaxTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.MinTimePointComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TemporalComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeConstantComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeLiteralComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeSelectorComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.util.ComparisonUtil; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.gdl.model.comparables.time.Duration; +import org.gradoop.gdl.model.comparables.time.TimeConstant; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.GTE; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +/** + * Class to estimate the selectivity of a CNF + */ +public class CNFEstimation { + + /** + * Graph statistics on which the estimations are based + */ + private final TemporalGraphStatistics stats; + + /** + * maps variable names to their type (vertex or edge) + */ + private Map typeMap; + + /** + * maps variable names to labels (if known) + */ + private Map labelMap; + + /** + * saves estimations so that they can be looked up, when they are checked more than once + */ + private Map cache; + + /** + * Creates a new instance + * + * @param stats graph statistics on which estimations are based + * @param typeMap map from variable name to type (vertex/edge) + * @param labelMap map from variable name to label + */ + public CNFEstimation(TemporalGraphStatistics stats, + Map typeMap, + Map labelMap) { + this.stats = stats; + this.typeMap = typeMap; + this.labelMap = labelMap; + this.cache = new HashMap<>(); + } + + /** + * Creates a new instance + * + * @param stats graph statistics on which estimations are based + * @param handler QueryHandler to create typeMap and labelMap from + */ + public CNFEstimation(TemporalGraphStatistics stats, TemporalQueryHandler handler) { + this.stats = stats; + initializeWithHandler(handler); + } + + /** + * Initializes typeMap, labelMap and cache from a {@link TemporalQueryHandler} + * + * @param queryHandler QueryHandler to use for initialization + */ + private void initializeWithHandler(TemporalQueryHandler queryHandler) { + typeMap = new HashMap<>(); + for (String edgeVar : queryHandler.getEdgeVariables()) { + typeMap.put(edgeVar, TemporalGraphStatistics.ElementType.EDGE); + } + for (String vertexVar : queryHandler.getVertexVariables()) { + typeMap.put(vertexVar, TemporalGraphStatistics.ElementType.VERTEX); + } + + labelMap = new HashMap<>(); + queryHandler.getLabelsForVariables(queryHandler.getAllVariables()) + .forEach((key, value) -> { + if (value.length() > 0) { + labelMap.put(key, value); + } + }); + // pre-compute all estimations + cache = new HashMap<>(); + for (CNFElement clause : queryHandler.getPredicates()) { + for (ComparisonExpression comp : clause.getPredicates()) { + cache.put(comp, estimateComparison(comp)); + } + } + } + + /** + * Estimates the probability that a CNF is true, based on the graph statistics. + * Naive assumption: all contained comparisons are pair-wise independent. + * + * @param cnf cnf + * @return estimation of the probability that the CNF evaluates to true + */ + public double estimateCNF(CNF cnf) { + return cnf.getPredicates().stream() + .map(this::estimateCNFElement) + .collect(Collectors.toList()) + .stream() + .reduce((i, j) -> i * j) + .orElse(1.); + } + + /** + * Estimates the probability that a {@link CNFElement}, i.e. a disjunction of + * comparisons, is true (based on the graph statistics). + * + * @param element CNFElement + * @return estimation of probability that the CNFElement evaluates to true + */ + private double estimateCNFElement(CNFElement element) { + if (element.getPredicates().size() == 1) { + return estimateComparison(element.getPredicates().get(0)); + } else { + // recursively estimate P(a or b or c or...) as P(a) + P(b or c or...) - P(a)*P(b or c or...) + List comparisons = element.getPredicates(); + double firstEst = estimateComparison(comparisons.get(0)); + CNFElement rest = new CNFElement(comparisons.subList(1, comparisons.size())); + double restEst = estimateCNF(new CNF(Collections.singletonList(rest))); + return firstEst + restEst - (firstEst * restEst); + } + } + + /** + * Estimates the probability that a comparison evaluates to true, based on + * the graph statistics. + * + * @param comparisonExpression comparison + * @return estimation of the probability that the comparison evaluates to true + */ + private double estimateComparison(ComparisonExpression comparisonExpression) { + if (cache.containsKey(comparisonExpression)) { + return cache.get(comparisonExpression); + } + double result = 1.; + // probability of labels is not estimated here, belongs to the structural estimations + if (isLabelComp(comparisonExpression)) { + return 1.; + } else { + // more than one element in the comparison? + if (comparisonExpression.getVariables().size() > 1) { + result = estimateComparisonOnDifferent(comparisonExpression); + } else { + // exactly one element in the comparison + result = estimateCompOnSameTPGM(comparisonExpression); + } + } + cache.put(comparisonExpression, result); + return result; + } + + /** + * Checks if a comparison describes the label of an element + * + * @param comparison comparison to check + * @return true iff the comparison describes the label of an element + */ + private boolean isLabelComp(ComparisonExpression comparison) { + if (comparison.getComparator() != EQ) { + return false; + } + if (comparison.getLhs() instanceof PropertySelectorComparable) { + return ((PropertySelectorComparable) comparison.getLhs()) + .getPropertyKey().equals("__label__"); + } else if (comparison.getRhs() instanceof PropertySelectorComparable) { + return ((PropertySelectorComparable) comparison.getRhs()) + .getPropertyKey().equals("__label__"); + } + return false; + } + + /** + * Estimates the probability that a comparison involving only one element holds. + * + * @param comparisonExpression comparison + * @return estimation of probability that the comparison holds + */ + private double estimateCompOnSameTPGM(ComparisonExpression comparisonExpression) { + QueryComparable lhs = comparisonExpression.getLhs(); + QueryComparable rhs = comparisonExpression.getRhs(); + + if (ComparisonUtil.isTemporal(comparisonExpression)) { + if (lhs instanceof TimeSelectorComparable && rhs instanceof TimeSelectorComparable) { + // TODO implement? + return 1.; + } else if (lhs instanceof TimeSelectorComparable && rhs instanceof TimeLiteralComparable || + lhs instanceof TimeLiteralComparable && rhs instanceof TimeSelectorComparable) { + return simpleTemporalEstimation(comparisonExpression); + } else if (lhs instanceof MinTimePointComparable || lhs instanceof MaxTimePointComparable || + rhs instanceof MinTimePointComparable || rhs instanceof MaxTimePointComparable) { + return minMaxTemporalEstimation(comparisonExpression); + } else if ((lhs instanceof DurationComparable && rhs instanceof TimeConstantComparable) || + (lhs instanceof TimeConstantComparable && rhs instanceof DurationComparable)) { + return simpleDurationComparisonEstimation(comparisonExpression); + } else { + return 1.; + } + } else { + if ((lhs instanceof PropertySelectorComparable && rhs instanceof LiteralComparable) || + (lhs instanceof LiteralComparable && rhs instanceof PropertySelectorComparable)) { + return simplePropertyEstimation(comparisonExpression); + } else if (lhs instanceof PropertySelectorComparable && + rhs instanceof PropertySelectorComparable) { + return complexPropertyEstimation(comparisonExpression); + } else { + return 1.; + } + } + } + + /** + * Estimates the probability that a comparison between a tx or val duration and + * a time constant evaluates to true. + * All other possible comparisons involving a duration are estimated 1.0 + * + * @param comparisonExpression comparison + * @return estimation of the probability that the comparison evaluates to true + */ + private double simpleDurationComparisonEstimation(ComparisonExpression comparisonExpression) { + QueryComparable lhs = comparisonExpression.getLhs(); + QueryComparable rhs = comparisonExpression.getRhs(); + Comparator comp = comparisonExpression.getComparator(); + // ensure that the duration is always on the left side + if (rhs instanceof DurationComparable) { + QueryComparable t = lhs; + lhs = rhs; + rhs = t; + comp = switchComparator(comp); + } + if (!(rhs instanceof TimeConstantComparable)) { + return 1.; + } + // only valid and tx durations can be estimated + Duration duration = (Duration) ((DurationComparable) lhs).getWrappedComparable(); + // complex durations not supported yet, only transaction and valid interval durations + if (!checkSimpleDuration(duration)) { + return 1.; + } + + String variable = new ArrayList<>(comparisonExpression.getVariables()).get(0); + TemporalGraphStatistics.ElementType type = typeMap.get(variable); + Optional label = labelMap.containsKey(variable) ? + Optional.of(labelMap.get(variable)) : Optional.empty(); + TimeSelector from = (TimeSelector) duration.getFrom(); + // tx or valid interval? + boolean transaction = from.getTimeProp() == TimeSelector.TimeField.TX_FROM; + long rhsValue = ((TimeConstant) ((TimeConstantComparable) rhs) + .getWrappedComparable()).getMillis(); + + return stats.estimateDurationProb(type, label, comp, transaction, rhsValue); + } + + /** + * Checks if a duration is of the simple form [a.tx_from, a.tx_to] or + * [a.val_from, a.val_to] + * + * @param duration duration to check + * @return true iff the duration has this simple form + */ + private boolean checkSimpleDuration(Duration duration) { + // two time selectors? + if (!(duration.getFrom() instanceof TimeSelector) || !(duration.getTo() instanceof TimeSelector)) { + return false; + } + TimeSelector from = (TimeSelector) duration.getFrom(); + TimeSelector to = (TimeSelector) duration.getTo(); + // val_from, val_to or tx_from, tx_to? + if (! + ((from.getTimeProp() == TimeSelector.TimeField.VAL_FROM && + to.getTimeProp() == TimeSelector.TimeField.VAL_TO) || + (from.getTimeProp() == TimeSelector.TimeField.TX_FROM && + to.getTimeProp() == TimeSelector.TimeField.TX_TO))) { + return false; + } + // same variable for both selectors? + return from.getVariable().equals(to.getVariable()); + } + + /** + * Estimates the probability that a comparison involving MIN or MAX holds. + * + * @param comparisonExpression comparison + * @return estimation of probability that the comparison holds + */ + private double minMaxTemporalEstimation(ComparisonExpression comparisonExpression) { + // TODO implement if needed + return 1.0; + } + + + /** + * Computes the estimation of the probability that a comparison between a time selector + * and a time literal holds + * + * @param comparisonExpression comparison + * @return estimation of the probability that the comparison holds + */ + private double simpleTemporalEstimation(ComparisonExpression comparisonExpression) { + TemporalComparable lhs = (TemporalComparable) comparisonExpression.getLhs(); + TemporalComparable rhs = (TemporalComparable) comparisonExpression.getRhs(); + Comparator comp = comparisonExpression.getComparator(); + // adjust the comparison so that the selector is always on the lhs + if (rhs instanceof TimeSelectorComparable) { + TemporalComparable t = lhs; + lhs = rhs; + rhs = t; + comp = switchComparator(comp); + } + String variable = ((TimeSelectorComparable) lhs).getVariable(); + TemporalGraphStatistics.ElementType type = typeMap.get(variable); + Optional label = labelMap.containsKey(variable) ? + Optional.of(labelMap.get(variable)) : Optional.empty(); + TimeSelector.TimeField field = ((TimeSelectorComparable) lhs).getTimeField(); + Long value = ((TimeLiteralComparable) rhs).getTimeLiteral().getMilliseconds(); + + return stats.estimateTemporalProb(type, label, field, comp, value); + } + + /** + * Computes the estimation of the probability that a comparison between + * two property selectors holds + * + * @param comparisonExpression comparison + * @return estimation of the probability that the comparison holds + */ + private double complexPropertyEstimation(ComparisonExpression comparisonExpression) { + QueryComparable lhs = comparisonExpression.getLhs(); + QueryComparable rhs = comparisonExpression.getRhs(); + Comparator comp = comparisonExpression.getComparator(); + + String variable1 = ((PropertySelectorComparable) lhs).getVariable(); + TemporalGraphStatistics.ElementType type1 = typeMap.get(variable1); + Optional label1 = labelMap.containsKey(variable1) ? + Optional.of(labelMap.get(variable1)) : Optional.empty(); + String property1 = ((PropertySelectorComparable) lhs).getPropertyKey(); + + String variable2 = ((PropertySelectorComparable) rhs).getVariable(); + TemporalGraphStatistics.ElementType type2 = typeMap.get(variable2); + Optional label2 = labelMap.containsKey(variable2) ? + Optional.of(labelMap.get(variable2)) : Optional.empty(); + String property2 = ((PropertySelectorComparable) rhs).getPropertyKey(); + + return stats.estimatePropertyProb(type1, label1, property1, comp, + type2, label2, property2); + } + + /** + * Computes the estimation of the probability that a comparison between a property + * selector and a constant holds + * + * @param comparisonExpression comparison + * @return estimation of the probability that the comparison holds + */ + private double simplePropertyEstimation(ComparisonExpression comparisonExpression) { + QueryComparable lhs = comparisonExpression.getLhs(); + QueryComparable rhs = comparisonExpression.getRhs(); + Comparator comp = comparisonExpression.getComparator(); + // "normalize" the comparison so that the selector is on the left side + if (rhs instanceof PropertySelectorComparable) { + QueryComparable t = lhs; + lhs = rhs; + rhs = t; + comp = switchComparator(comp); + } + String variable = ((PropertySelectorComparable) lhs).getVariable(); + TemporalGraphStatistics.ElementType type = typeMap.get(variable); + Optional label = labelMap.containsKey(variable) ? + Optional.of(labelMap.get(variable)) : Optional.empty(); + String property = ((PropertySelectorComparable) lhs).getPropertyKey(); + PropertyValue value = PropertyValue.create(((LiteralComparable) rhs).getValue()); + return stats.estimatePropertyProb(type, label, property, comp, value); + } + + /** + * Used to switch lhs and rhs of a comparison. Switches the comparator. + * This is not the inversion function! + * E.g., for <, the return value is > (while the inverse of < is >=) + * + * @param comp comparator to switch + * @return switched comparator + */ + private Comparator switchComparator(Comparator comp) { + if (comp == EQ || comp == NEQ) { + return comp; + } else if (comp == LT) { + return GT; + } else if (comp == LTE) { + return GTE; + } else if (comp == GT) { + return LT; + } else { + return LTE; + } + } + + /** + * Estimates the probability that a comparison involving more than one element holds. + * + * @param comparisonExpression comparison + * @return estimation of probability that the comparison holds. + */ + private double estimateComparisonOnDifferent(ComparisonExpression comparisonExpression) { + QueryComparable lhs = comparisonExpression.getLhs(); + QueryComparable rhs = comparisonExpression.getRhs(); + + if (ComparisonUtil.isTemporal(comparisonExpression)) { + if (lhs instanceof TimeSelectorComparable && rhs instanceof TimeSelectorComparable) { + return timeSelectorComparisonEstimation(comparisonExpression); + } else if (lhs instanceof MinTimePointComparable || lhs instanceof MaxTimePointComparable || + rhs instanceof MinTimePointComparable || rhs instanceof MaxTimePointComparable) { + return minMaxTemporalEstimation(comparisonExpression); + } else if (lhs instanceof DurationComparable && rhs instanceof DurationComparable) { + return durationComparisonEstimation(comparisonExpression); + } else { + return 1.; + } + } else { + if (lhs instanceof PropertySelectorComparable && + rhs instanceof PropertySelectorComparable) { + return complexPropertyEstimation(comparisonExpression); + } else { + return 1.; + } + } + } + + /** + * Computes the estimation of the probability that a comparison between two + * durations holds + * + * @param comparisonExpression comparison + * @return estimation of the probability that the comparison holds + */ + private double durationComparisonEstimation(ComparisonExpression comparisonExpression) { + Duration lhs = (Duration) comparisonExpression.getLhs().getWrappedComparable(); + Duration rhs = (Duration) comparisonExpression.getRhs().getWrappedComparable(); + if (!(checkSimpleDuration(lhs) && checkSimpleDuration(rhs))) { + return 1.; + } + + TimeSelector from1 = (TimeSelector) lhs.getFrom(); + String variable1 = from1.getVariable(); + TemporalGraphStatistics.ElementType type1 = typeMap.get(variable1); + Optional label1 = labelMap.containsKey(variable1) ? + Optional.of(labelMap.get(variable1)) : Optional.empty(); + // transaction or valid interval + boolean transaction1 = from1.getTimeProp() == TimeSelector.TimeField.TX_FROM; + + TimeSelector from2 = (TimeSelector) rhs.getFrom(); + String variable2 = from2.getVariable(); + TemporalGraphStatistics.ElementType type2 = typeMap.get(variable2); + Optional label2 = labelMap.containsKey(variable2) ? + Optional.of(labelMap.get(variable2)) : Optional.empty(); + boolean transaction2 = from2.getTimeProp() == TimeSelector.TimeField.TX_FROM; + + Comparator comp = comparisonExpression.getComparator(); + + return stats.estimateDurationProb(type1, label1, transaction1, comp, type2, + label2, transaction2); + } + + /** + * Computes the estimation of the probability that a comparison between two time + * selectors (of different elements) holds + * + * @param comparisonExpression comparison + * @return estimation of the probability that the comparison holds + */ + private double timeSelectorComparisonEstimation(ComparisonExpression comparisonExpression) { + TimeSelectorComparable lhs = (TimeSelectorComparable) comparisonExpression.getLhs(); + TimeSelectorComparable rhs = (TimeSelectorComparable) comparisonExpression.getRhs(); + Comparator comp = comparisonExpression.getComparator(); + + String lhsVariable = lhs.getVariable(); + TemporalGraphStatistics.ElementType type1 = typeMap.getOrDefault(lhsVariable, null); + if (type1 == null) { + return 0.001; + } + Optional label1 = labelMap.containsKey(lhsVariable) ? + Optional.of(labelMap.get(lhsVariable)) : Optional.empty(); + TimeSelector.TimeField field1 = lhs.getTimeField(); + + String rhsVariable = rhs.getVariable(); + TemporalGraphStatistics.ElementType type2 = typeMap.getOrDefault(rhsVariable, null); + if (type2 == null) { + return 0.001; + } + Optional label2 = labelMap.containsKey(rhsVariable) ? + Optional.of(labelMap.get(rhsVariable)) : Optional.empty(); + TimeSelector.TimeField field2 = rhs.getTimeField(); + + return stats.estimateTemporalProb(type1, label1, field1, comp, type2, label2, field2); + } + + /** + * Reorders the clauses of the CNF: the most selective clauses are moved to the beginning + * of the CNF (exception: label constraint is always the first constraint). + * Within a clause, the least selective comparisons are moved to the beginning of the clause. + * The motivation is to minimize the number of comparisons to check when processing the CNF + * + * @param cnf the CNF to reorder + * @return reordered CNF + */ + public CNF reorderCNF(CNF cnf) { + ArrayList clauses = new ArrayList<>(cnf.getPredicates()); + // resort the clauses: labels and then selective clauses first + clauses.sort((clause1, clause2) -> { + if (clause1.getPredicates().size() == 1 && isLabelComp(clause1.getPredicates().get(0))) { + return 100; + } else if (clause2.getPredicates().size() == 1 && + isLabelComp(clause2.getPredicates().get(0))) { + return -100; + } else { + return (int) (100. * (estimateCNFElement(clause1) - estimateCNFElement(clause2))); + } + }); + + // resort comparisons within clauses: labels and then non-selective comparisons first + clauses = clauses.stream().map(clause -> { + ArrayList comps = new ArrayList<>( + clause.getPredicates()); + comps.sort((c1, c2) -> { + if (isLabelComp(c1)) { + return 100; + } else if (isLabelComp(c2)) { + return -100; + } else { + return (int) (100. * (estimateComparison(c2) - estimateComparison(c1))); + } + }); + return new CNFElement(comps); + }).collect(Collectors.toCollection(ArrayList::new)); + + return new CNF(clauses); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimator.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimator.java new file mode 100644 index 000000000000..b527680f952d --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimator.java @@ -0,0 +1,118 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.FilterNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.unary.FilterEmbeddingsNode; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalEdgesNode; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalVerticesNode; + +/** + * Keeps track of the leaf nodes in a query plan and computes a final selectivity factor resulting + * from the applied predicates. + */ +public class FilterTemporalEstimator extends TemporalEstimator { + /** + * Used to estimate filter selectivity + */ + private final CNFEstimation cnfEstimation; + /** + * The non-filtered cardinality of the leaf node. + */ + private long cardinality; + /** + * The resulting selectivity factor of all leaf predicates + */ + private double selectivity; + + /** + * Creates a new estimator. + * + * @param queryHandler query handler + * @param graphStatistics graph statistics + * @param cnfEstimation estimation of CNF predicates + */ + FilterTemporalEstimator(TemporalQueryHandler queryHandler, TemporalGraphStatistics graphStatistics, + CNFEstimation cnfEstimation) { + super(queryHandler, graphStatistics); + this.selectivity = 1f; + this.cnfEstimation = cnfEstimation; + } + + /** + * Updates the selectivity factor according to the given node. + * + * @param node leaf node + */ + void visit(FilterNode node) { + if (node instanceof FilterAndProjectTemporalVerticesNode) { + FilterAndProjectTemporalVerticesNode vertexNode = + (FilterAndProjectTemporalVerticesNode) node; + setCardinality(vertexNode.getEmbeddingMetaData().getVertexVariables().get(0), true); + updateSelectivity(vertexNode.getFilterPredicate()); + } else if (node instanceof FilterAndProjectTemporalEdgesNode) { + FilterAndProjectTemporalEdgesNode edgeNode = (FilterAndProjectTemporalEdgesNode) node; + setCardinality(edgeNode.getEmbeddingMetaData().getEdgeVariables().get(0), false); + updateSelectivity(edgeNode.getFilterPredicate()); + } else if (node instanceof FilterEmbeddingsNode) { + updateSelectivity(((FilterEmbeddingsNode) node).getFilterPredicate()); + } + } + + /** + * Returns the non-filtered cardinality of the leaf node output. + * + * @return estimated cardinality + */ + long getCardinality() { + return cardinality; + } + + /** + * Returns the combined selectivity of all leaf nodes. + * + * @return combined selectivity factor + */ + double getSelectivity() { + return selectivity; + } + + /** + * Updates the cardinality of the leaf node output. + * + * @param variable query variable + * @param isVertex true, iff the variable maps to a vertex + */ + private void setCardinality(String variable, boolean isVertex) { + cardinality = getCardinality(getLabel(variable, isVertex), isVertex); + } + + /** + * Updates the selectivity based on the given predicates. + * + * @param predicates query predicates + */ + private void updateSelectivity(CNF predicates) { + selectivity *= cnfEstimation.estimateCNF(predicates); + } + + public CNFEstimation getCnfEstimation() { + return cnfEstimation; + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimator.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimator.java new file mode 100644 index 000000000000..f6717369c2d0 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimator.java @@ -0,0 +1,205 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import com.google.common.collect.Lists; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.BinaryNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.JoinNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.LeafNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.gdl.model.Edge; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * Keeps track of the joined leaf nodes in a query plan and computes a total estimated cardinality + * for the plan. + */ +public class JoinTemporalEstimator extends TemporalEstimator { + /** + * Maps vertex and edge variables to their estimated cardinality + */ + private final Map cardinalities; + /** + * Maps vertex variables to their distinct counts per embedding + */ + private final Map> distinctValues; + + /** + * Creates a new estimator. + * + * @param queryHandler query handler + * @param graphStatistics graph statistics + */ + JoinTemporalEstimator(TemporalQueryHandler queryHandler, TemporalGraphStatistics graphStatistics) { + super(queryHandler, graphStatistics); + this.cardinalities = new HashMap<>(); + this.distinctValues = new HashMap<>(); + } + + /** + * Updates the cardinalities according to the given join node. + * + * @param node join node + */ + void visit(JoinNode node) { + if (node instanceof BinaryNode) { + BinaryNode binaryNode = (BinaryNode) node; + if (binaryNode.getLeftChild() instanceof LeafNode) { + process(binaryNode.getLeftChild().getEmbeddingMetaData()); + } + if (binaryNode.getRightChild() instanceof LeafNode) { + process(binaryNode.getRightChild().getEmbeddingMetaData()); + } + } + } + + /** + * Computes the final cardinality according to the visited nodes. + * + * @return estimated cardinality + */ + long getCardinality() { + long numerator = cardinalities.values().stream().reduce((i, j) -> i * j).orElse(0L); + + long denominator = distinctValues.values().stream() + .map(list -> list.stream().sorted().collect(Collectors.toList())) + .map(list -> list.subList(1, list.size())) + .flatMap(Collection::stream) + .reduce((i, j) -> i * j) + .orElse(1L); + + return Math.round(1.0 * numerator / denominator); + } + + /** + * Updates the state using the information stored in the given meta data. + * + * @param metaData meta data from leaf node + */ + private void process(EmbeddingMetaData metaData) { + int entryCount = metaData.getEntryCount(); + List variables = metaData.getVariables(); + if (entryCount == 1) { + processVertex(variables.get(0)); + } else { + String edgeVariable = variables.get(1); + String sourceVariable = getQueryHandler().getVertexById( + getQueryHandler().getEdgeByVariable(edgeVariable).getSourceVertexId()).getVariable(); + String targetVariable = getQueryHandler().getVertexById( + getQueryHandler().getEdgeByVariable(edgeVariable).getTargetVertexId()).getVariable(); + processEdge(sourceVariable, variables.get(1), targetVariable); + } + } + + /** + * Updates the state according to vertex statistics. + * + * @param vertexVariable vertex variable + */ + private void processVertex(String vertexVariable) { + String label = getLabel(vertexVariable, true); + long cardinality = getCardinality(label, true); + updateCardinality(vertexVariable, cardinality); + updateDistinctValues(vertexVariable, cardinality); + } + + /** + * Updates the state according to the edge statistics. + * + * @param sourceVariable source vertex variable + * @param edgeVariable edge variable + * @param targetVariable target vertex variable + */ + private void processEdge(String sourceVariable, String edgeVariable, String targetVariable) { + String edgeLabel = getLabel(edgeVariable, false); + + long distinctSourceCount = getGraphStatistics().getDistinctSourceVertexCount(edgeLabel); + if (distinctSourceCount == 0L) { + distinctSourceCount = getGraphStatistics().getDistinctSourceVertexCount(); + } + long distinctTargetCount = getGraphStatistics().getDistinctTargetVertexCount(edgeLabel); + if (distinctTargetCount == 0L) { + distinctTargetCount = getGraphStatistics().getDistinctTargetVertexCount(); + } + + Edge queryEdge = getQueryHandler().getEdgeByVariable(edgeVariable); + if (queryEdge.getUpperBound() > 1) { + // variable case: n-hop edge + updateCardinality(edgeVariable, getPathCardinality(getCardinality(edgeLabel, false), + queryEdge.getLowerBound(), queryEdge.getUpperBound(), + distinctSourceCount, distinctTargetCount)); + } else { + // static case: 1-hop edge + updateCardinality(edgeVariable, getCardinality(edgeLabel, false)); + } + updateDistinctValues(sourceVariable, distinctSourceCount); + updateDistinctValues(targetVariable, distinctTargetCount); + } + + /** + * Estimated the total number of paths whose length is between the specified bounds. + * + * @param edgeCardinality cardinality of the traversed edge + * @param lowerBound minimum path length + * @param upperBound maximum path length + * @param distinctSourceCount number of distinct source vertices + * @param distinctTargetCount number of distinct target vertices + * @return estimated number of paths with a length in the given range + */ + private long getPathCardinality(long edgeCardinality, int lowerBound, int upperBound, + long distinctSourceCount, long distinctTargetCount) { + + double totalCardinality = 0L; + long probability = distinctSourceCount * distinctTargetCount; + + for (int i = lowerBound; i <= upperBound; i++) { + totalCardinality += Math.pow(edgeCardinality, i) / Math.pow(probability, i - 1); + } + + return Math.round(totalCardinality); + } + + /** + * Updates the cardinality of the variable. + * + * @param variable query variable + * @param cardinality cardinality + */ + private void updateCardinality(String variable, long cardinality) { + cardinalities.put(variable, cardinalities.getOrDefault(variable, 1L) * cardinality); + } + + /** + * Updates the distinct value list of a vertex with the given count. + * + * @param variable vertex variable + * @param count distinct count + */ + private void updateDistinctValues(String variable, long count) { + if (distinctValues.containsKey(variable)) { + distinctValues.get(variable).add(count); + } else { + distinctValues.put(variable, Lists.newArrayList(count)); + } + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalEstimator.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalEstimator.java new file mode 100644 index 000000000000..17722db3bbd8 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalEstimator.java @@ -0,0 +1,77 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; + +/** + * Base class for estimators that provides some utility methods. + */ +public abstract class TemporalEstimator { + /** + * Query handler to get information about query elements + */ + private final TemporalQueryHandler queryHandler; + /** + * Statistics about the search graph + */ + private final TemporalGraphStatistics graphStatistics; + + /** + * Creates a new estimator. + * + * @param queryHandler query handler + * @param graphStatistics graph statistics + */ + TemporalEstimator(TemporalQueryHandler queryHandler, TemporalGraphStatistics graphStatistics) { + this.queryHandler = queryHandler; + this.graphStatistics = graphStatistics; + } + + public TemporalQueryHandler getQueryHandler() { + return queryHandler; + } + + public TemporalGraphStatistics getGraphStatistics() { + return graphStatistics; + } + + /** + * Returns the label of the given variable. + * + * @param variable query variable + * @param isVertex true, iff the variable maps to a vertex + * @return label + */ + String getLabel(String variable, boolean isVertex) { + return isVertex ? queryHandler.getVertexByVariable(variable).getLabel() : + queryHandler.getEdgeByVariable(variable).getLabel(); + } + + /** + * Returns the cardinality of the specified label according to the provided statistics. + * + * @param label label + * @param isVertex true, iff label maps to a vertex + * @return number of elements with the given label + */ + long getCardinality(String label, boolean isVertex) { + return isVertex ? + graphStatistics.getVertexCount(label) : + graphStatistics.getEdgeCount(label); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanEstimator.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanEstimator.java new file mode 100644 index 000000000000..4ac45646cfbc --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanEstimator.java @@ -0,0 +1,110 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.BinaryNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.FilterNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.JoinNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.PlanNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.QueryPlan; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.UnaryNode; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; + +/** + * Estimates a given query plan by traversing its nodes and updating the state of specific + * estimator implementations (e.g. for join, filter, project). + */ +public class TemporalQueryPlanEstimator { + + /** + * The query plan to estimate + */ + private final QueryPlan queryPlan; + /** + * Estimates the cardinality of the joins in the given query plan. + */ + private final JoinTemporalEstimator joinEstimator; + /** + * Estimates the cardinality and selectivity of the leaf nodes. + */ + private final FilterTemporalEstimator filterEstimator; + + /** + * Creates a new plan estimator. + * + * @param queryPlan query plan + * @param queryHandler query handler + * @param graphStatistics graph statistics + * @param cnfEstimation estimation of CNF predicates + */ + public TemporalQueryPlanEstimator(QueryPlan queryPlan, TemporalQueryHandler queryHandler, + TemporalGraphStatistics graphStatistics, CNFEstimation cnfEstimation) { + this.queryPlan = queryPlan; + this.joinEstimator = new JoinTemporalEstimator(queryHandler, graphStatistics); + this.filterEstimator = new FilterTemporalEstimator(queryHandler, graphStatistics, cnfEstimation); + } + + /** + * Returns the estimated query plan. + * + * @return query plan + */ + public QueryPlan getQueryPlan() { + return queryPlan; + } + + /** + * Traverses the query plan and computes the estimated cardinality according to the nodes. + * + * @return estimated cardinality of the specified plan + */ + public long getCardinality() { + traversePlan(queryPlan.getRoot()); + + long cardinality = joinEstimator.getCardinality(); + if (cardinality == 0) { + // plan contains only a leaf node + cardinality = filterEstimator.getCardinality(); + } + double selectivity = filterEstimator.getSelectivity(); + + return Math.round(cardinality * selectivity); + } + + /** + * Visits the node if necessary and traverses the plan further if possible. + * + * @param node plan node + */ + private void traversePlan(PlanNode node) { + if (node instanceof JoinNode) { + this.joinEstimator.visit((JoinNode) node); + } + if (node instanceof FilterNode) { + this.filterEstimator.visit((FilterNode) node); + } + + if (node instanceof BinaryNode) { + traversePlan(((BinaryNode) node).getLeftChild()); + traversePlan(((BinaryNode) node).getRightChild()); + } + if (node instanceof UnaryNode) { + traversePlan(((UnaryNode) node).getChildNode()); + } + } + +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java new file mode 100644 index 000000000000..aef9b7ac63b9 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains all classes related to query graph estimation. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java new file mode 100644 index 000000000000..97901268f6cd --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/GreedyPlanner.java @@ -0,0 +1,619 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.planner.greedy; + +import com.google.common.collect.Sets; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.flink.api.java.DataSet; +import org.gradoop.common.util.GradoopConstants; +import org.gradoop.flink.model.api.epgm.BaseGraph; +import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.comparables.PropertySelectorComparable; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTable; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTableEntry; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.PlanNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.QueryPlan; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.CartesianProductNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.ExpandEmbeddingsNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.JoinEmbeddingsNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.ValueJoinNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.unary.FilterEmbeddingsNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.unary.ProjectEmbeddingsNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.utils.ExpandDirection; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables.TimeSelectorComparable; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation.CNFEstimation; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation.TemporalQueryPlanEstimator; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.plantable.TemporalPlanTableEntry; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalEdgesNode; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalVerticesNode; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphHead; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; +import org.gradoop.gdl.utils.Comparator; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import static org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTableEntry.Type.EDGE; +import static org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTableEntry.Type.GRAPH; +import static org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTableEntry.Type.PATH; +import static org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTableEntry.Type.VERTEX; + +/** + * Greedy query planning for temporal queries + * @param a temporal graph head type + * @param a logical graph type for temporal elements + * @param a graph collection type for temporal elements + */ +public class GreedyPlanner< + G extends TemporalGraphHead, + LG extends BaseGraph, + GC extends BaseGraphCollection> { + + /** + * The search graph to be queried + */ + private final LG graph; + /** + * The query handler represents the query. + */ + private final TemporalQueryHandler queryHandler; + /** + * Statistics about the search graph. + */ + private final TemporalGraphStatistics graphStatistics; + /** + * The morphism type for vertex mappings. + */ + private final MatchStrategy vertexStrategy; + /** + * The morphism type for edge mappings. + */ + private final MatchStrategy edgeStrategy; + /** + * Estimates the selectivity of predicates + */ + private final CNFEstimation cnfEstimation; + /** + * The conjunctive normal form for the predicates + */ + private final CNF cnf; + + /** + * Creates a new greedy planner. + * + * @param graph search graph + * @param queryHandler query handler + * @param graphStatistics search graph statistics + * @param vertexStrategy morphism type for vertex mappings + * @param edgeStrategy morphism type for edge mappings + */ + public GreedyPlanner(LG graph, TemporalQueryHandler queryHandler, + TemporalGraphStatistics graphStatistics, MatchStrategy vertexStrategy, + MatchStrategy edgeStrategy) { + this.graph = graph; + this.queryHandler = queryHandler; + this.graphStatistics = graphStatistics; + this.vertexStrategy = vertexStrategy; + this.edgeStrategy = edgeStrategy; + this.cnfEstimation = new CNFEstimation(graphStatistics, queryHandler); + this.cnf = cnfEstimation.reorderCNF(queryHandler.getPredicates()); + } + + /** + * Computes the {@link TemporalPlanTableEntry} that wraps the {@link QueryPlan} with the minimum costs + * according to the greedy optimization algorithm. + * + * @return entry with minimum execution costs + */ + public TemporalPlanTableEntry plan() { + PlanTable planTable = initPlanTable(); + + while (planTable.size() > 1) { + PlanTable newPlans = evaluateJoins(planTable); + + if (newPlans.size() == 0) { + // No new plans where generated by joining but there are still multiple disconnected + // query graph components. In this case we need to do a cartesian product. + newPlans = evaluateCartesianProducts(planTable); + } + newPlans = evaluateFilter(newPlans); + newPlans = evaluateProjection(newPlans); + + // get plan with minimum costs and remove all plans covered by this plan + TemporalPlanTableEntry bestEntry = (TemporalPlanTableEntry) newPlans.min(); + planTable.removeCoveredBy(bestEntry); + planTable.add(bestEntry); + } + + return (TemporalPlanTableEntry) planTable.get(0); + } + + //------------------------------------------------------------------------------------------------ + // Initialization + //------------------------------------------------------------------------------------------------ + + /** + * Creates the initial plan table entries according to the specified vertices and edges. + * + * @return initial plan table + */ + private PlanTable initPlanTable() { + PlanTable planTable = new PlanTable(); + createVertexPlans(planTable); + createEdgePlans(planTable); + return planTable; + } + + //------------------------------------------------------------------------------------------------ + // Leaf nodes (i.e. vertices and (variable length) edges) + //------------------------------------------------------------------------------------------------ + + /** + * Creates an initial {@link TemporalPlanTableEntry} for each vertex in the query graph and adds it to the + * specified {@link PlanTable}. The entry wraps a query plan that filters vertices based on their + * predicates and projects properties that are required for further query planning. + * + * @param planTable plan table + */ + private void createVertexPlans(PlanTable planTable) { + for (Vertex vertex : queryHandler.getVertices()) { + String vertexVariable = vertex.getVariable(); + CNF allPredicates = this.cnf; + + CNF vertexPredicates = allPredicates.removeSubCNF(vertexVariable); + Set projectionKeys = allPredicates.getPropertyKeys(vertexVariable); + + DataSet vertices = + vertex.getLabel().equals(GradoopConstants.DEFAULT_VERTEX_LABEL) ? + graph.getVertices() : graph.getVerticesByLabel(vertex.getLabel()); + + FilterAndProjectTemporalVerticesNode node = + new FilterAndProjectTemporalVerticesNode(vertices, + vertex.getVariable(), vertexPredicates, projectionKeys); + + planTable.add(new TemporalPlanTableEntry(VERTEX, Sets.newHashSet(vertexVariable), allPredicates, + new TemporalQueryPlanEstimator(new QueryPlan(node), queryHandler, graphStatistics, cnfEstimation))); + } + } + + /** + * Creates an initial {@link TemporalPlanTableEntry} for each edge in the query graph and adds it to the + * specified {@link PlanTable}. The entry wraps a {@link QueryPlan} that filters edges based on + * their predicates and projects properties that are required for further query planning. + * + * @param planTable plan table + */ + private void createEdgePlans(PlanTable planTable) { + for (Edge edge : queryHandler.getEdges()) { + String edgeVariable = edge.getVariable(); + String sourceVariable = queryHandler.getVertexById(edge.getSourceVertexId()).getVariable(); + String targetVariable = queryHandler.getVertexById(edge.getTargetVertexId()).getVariable(); + + CNF allPredicates = this.cnf; + + CNF edgePredicates = allPredicates.removeSubCNF(edgeVariable); + + Set projectionKeys = allPredicates.getPropertyKeys(edgeVariable); + + boolean isPath = edge.getUpperBound() != 1; + + DataSet edges = + edge.getLabel().equals(GradoopConstants.DEFAULT_EDGE_LABEL) ? + graph.getEdges() : graph.getEdgesByLabel(edge.getLabel()); + + FilterAndProjectTemporalEdgesNode node = new FilterAndProjectTemporalEdgesNode(edges, + sourceVariable, edgeVariable, targetVariable, edgePredicates, projectionKeys, isPath); + + PlanTableEntry.Type type = edge.hasVariableLength() ? PATH : EDGE; + + planTable.add(new TemporalPlanTableEntry(type, Sets.newHashSet(edgeVariable), allPredicates, + new TemporalQueryPlanEstimator(new QueryPlan(node), queryHandler, graphStatistics, cnfEstimation))); + } + } + + //------------------------------------------------------------------------------------------------ + // Join and Expand + //------------------------------------------------------------------------------------------------ + + /** + * Evaluates which entries in the specified plan table can be joined. The joined entries + * are added to a new table which is returned. + * + * @param currentTable query plan table + * @return new table containing solely joined plans from the input table + */ + private PlanTable evaluateJoins(PlanTable currentTable) { + PlanTable newTable = new PlanTable(); + + for (int i = 0; i < currentTable.size(); i++) { + PlanTableEntry leftEntry = currentTable.get(i); + if (mayExtend(leftEntry)) { + for (int j = 0; j < currentTable.size(); j++) { + PlanTableEntry rightEntry = currentTable.get(j); + if (i != j) { + List joinVariables = getOverlap(leftEntry, rightEntry); + if (joinVariables.size() > 0) { + if (rightEntry.getType() == PATH && joinVariables.size() == 2) { + // evaluate join with variable length path on source and target vertex + newTable.add(joinEntries(leftEntry, rightEntry, joinVariables.subList(0, 1))); + newTable.add(joinEntries(leftEntry, rightEntry, joinVariables.subList(1, 2))); + } else { + // regular join or join with variable length path on source or target vertex + newTable.add(joinEntries(leftEntry, rightEntry, joinVariables)); + } + } + } + } + } + } + return newTable; + } + + /** + * Checks if the given entry may be extended. This is only the case for entries that represents + * either a vertex or a partial match graph. + * + * @param entry plan table entry + * @return true, iff the specified entry may be extended + */ + private boolean mayExtend(PlanTableEntry entry) { + return entry.getType() == VERTEX || entry.getType() == GRAPH; + } + + /** + * Computes the overlapping query variables of the specified entries. + * + * @param firstEntry first entry + * @param secondEntry second entry + * @return variables that are available in both input entries + */ + private List getOverlap(PlanTableEntry firstEntry, PlanTableEntry secondEntry) { + Set overlap = firstEntry.getAllVariables(); + overlap.retainAll(secondEntry.getAllVariables()); + return new ArrayList<>(overlap); + } + + /** + * Joins the query plans represented by the specified plan table entries. + *

+ * The method considers if the right entry is a variable length path and in that case + * creates an {@link ExpandEmbeddingsNode}. In any other case, a regular + * {@link JoinEmbeddingsNode} is used to join the query plans. + * + * @param leftEntry left entry + * @param rightEntry right entry + * @param joinVariables join variables + * @return an entry that represents the join of both input entries + */ + private PlanTableEntry joinEntries(PlanTableEntry leftEntry, PlanTableEntry rightEntry, + List joinVariables) { + + PlanNode node; + if (rightEntry.getType() == PATH) { + assert joinVariables.size() == 1; + node = createExpandNode(leftEntry, rightEntry, joinVariables.get(0)); + } else { + node = new JoinEmbeddingsNode(leftEntry.getQueryPlan().getRoot(), + rightEntry.getQueryPlan().getRoot(), joinVariables, vertexStrategy, edgeStrategy); + } + + // update processed variables + HashSet processedVariables = Sets.newHashSet(leftEntry.getProcessedVariables()); + processedVariables.addAll(rightEntry.getProcessedVariables()); + // create resulting predicates + // TODO: this might be moved to the join/expand node in issue #510 + CNF predicates = mergePredicates(leftEntry, rightEntry); + + return new TemporalPlanTableEntry(GRAPH, processedVariables, predicates, + new TemporalQueryPlanEstimator(new QueryPlan(node), queryHandler, graphStatistics, cnfEstimation)); + } + + /** + * Creates an {@link ExpandEmbeddingsNode} from the specified arguments. + * + * @param leftEntry left entry + * @param rightEntry right entry + * @param startVariable vertex variable to expand from + * @return new expand node + */ + private ExpandEmbeddingsNode createExpandNode(PlanTableEntry leftEntry, PlanTableEntry rightEntry, + String startVariable) { + + String pathVariable = rightEntry.getQueryPlan().getRoot() + .getEmbeddingMetaData().getEdgeVariables().get(0); + + Edge queryEdge = queryHandler.getEdgeByVariable(pathVariable); + Vertex sourceVertex = queryHandler.getVertexById(queryEdge.getSourceVertexId()); + Vertex targetVertex = queryHandler.getVertexById(queryEdge.getTargetVertexId()); + + int lowerBound = queryEdge.getLowerBound(); + int upperBound = queryEdge.getUpperBound(); + ExpandDirection direction = sourceVertex.getVariable().equals(startVariable) ? + ExpandDirection.OUT : ExpandDirection.IN; + String endVariable = direction == ExpandDirection.OUT ? + targetVertex.getVariable() : sourceVertex.getVariable(); + + return new ExpandEmbeddingsNode(leftEntry.getQueryPlan().getRoot(), + rightEntry.getQueryPlan().getRoot(), + startVariable, pathVariable, endVariable, lowerBound, upperBound, direction, + vertexStrategy, edgeStrategy); + } + + //------------------------------------------------------------------------------------------------ + // Filter embedding evaluation + //------------------------------------------------------------------------------------------------ + + /** + * The method checks if a filter can be applied on any of the entries in the specified table. If + * this is the case, a {@link FilterEmbeddingsNode} is added to the query plan represented by the + * affected entries. + * + * @param currentTable query plan table + * @return input table with possibly updated entries + */ + private PlanTable evaluateFilter(PlanTable currentTable) { + PlanTable newTable = new PlanTable(); + + for (PlanTableEntry entry : currentTable) { + Set variables = Sets.newHashSet(entry.getProcessedVariables()); + CNF predicates = entry.getPredicates(); + CNF subCNF = predicates.removeSubCNF(variables); + if (subCNF.size() > 0) { + FilterEmbeddingsNode node = new FilterEmbeddingsNode( + entry.getQueryPlan().getRoot(), subCNF); + newTable.add(new TemporalPlanTableEntry(GRAPH, Sets.newHashSet(entry.getProcessedVariables()), + predicates, + new TemporalQueryPlanEstimator(new QueryPlan(node), queryHandler, graphStatistics, cnfEstimation))); + } else { + newTable.add(entry); + } + } + + return newTable; + } + + //------------------------------------------------------------------------------------------------ + // Filter embedding evaluation + //------------------------------------------------------------------------------------------------ + + /** + * The method checks if a filter can be applied on any of the entries in the specified table. If + * this is the case, a {@link ProjectEmbeddingsNode} is added to the query plan represented by the + * affected entries. + * + * @param currentTable query plan table + * @return input table with possibly updated entries + */ + private PlanTable evaluateProjection(PlanTable currentTable) { + PlanTable newTable = new PlanTable(); + + for (PlanTableEntry entry : currentTable) { + Set> propertyPairs = entry.getPropertyPairs(); + Set> projectionPairs = entry.getProjectionPairs(); + + Set> updatedPropertyPairs = propertyPairs.stream() + .filter(projectionPairs::contains) + .collect(Collectors.toSet()); + + if (updatedPropertyPairs.size() < propertyPairs.size()) { + ProjectEmbeddingsNode node = new ProjectEmbeddingsNode(entry.getQueryPlan().getRoot(), + new ArrayList<>(updatedPropertyPairs)); + newTable.add(new TemporalPlanTableEntry(GRAPH, + Sets.newHashSet(entry.getProcessedVariables()), entry.getPredicates(), + new TemporalQueryPlanEstimator(new QueryPlan(node), queryHandler, graphStatistics, cnfEstimation))); + } else { + newTable.add(entry); + } + } + return newTable; + } + + //------------------------------------------------------------------------------------------------ + // Join and Expand + //------------------------------------------------------------------------------------------------ + + /** + * Evaluates which entries in the specified plan table can be joined. The joined entries + * are added to a new table which is returned. + * + * @param currentTable query plan table + * @return new table containing solely joined plans from the input table + */ + private PlanTable evaluateCartesianProducts(PlanTable currentTable) { + PlanTable newTable = new PlanTable(); + for (int i = 0; i < currentTable.size(); i++) { + PlanTableEntry leftEntry = currentTable.get(i); + for (int j = i + 1; j < currentTable.size(); j++) { + PlanTableEntry rightEntry = currentTable.get(j); + CNF joinPredicate = getJoinPredicate(leftEntry, rightEntry); + if (joinPredicate.size() > 0) { + newTable.add(createValueJoinEntry(leftEntry, rightEntry, joinPredicate)); + } else { + // regular join or join with variable length path on source or target vertex + newTable.add(createCartesianProductEntry(leftEntry, rightEntry)); + } + } + } + return newTable; + } + + /** + * Computes the overlapping query variables of the specified entries. + * + * @param leftEntry first entry + * @param rightEntry second entry + * @return variables that are available in both input entries + */ + private CNF getJoinPredicate(PlanTableEntry leftEntry, PlanTableEntry rightEntry) { + Set allVariables = leftEntry.getAllVariables(); + allVariables.addAll(rightEntry.getAllVariables()); + + CNF leftPredicates = new CNF(leftEntry.getPredicates()); + CNF rightPredicates = new CNF(rightEntry.getPredicates()); + leftPredicates.removeSubCNF(rightEntry.getProcessedVariables()); + rightPredicates.removeSubCNF(leftEntry.getProcessedVariables()); + CNF predicates = leftPredicates.and(rightPredicates).getSubCNF(allVariables); + + return new CNF( + predicates.getPredicates() + .stream() + .filter(p -> + p.size() == 1 && p.getPredicates().get(0).getComparator().equals(Comparator.EQ) + ).collect(Collectors.toList()) + ); + } + + /** + * Creates an {@link CartesianProductNode} from the specified arguments. + * + * @param leftEntry left entry + * @param rightEntry right entry + * @return new expand node + */ + private TemporalPlanTableEntry createCartesianProductEntry(PlanTableEntry leftEntry, + PlanTableEntry rightEntry) { + CartesianProductNode node = new CartesianProductNode( + leftEntry.getQueryPlan().getRoot(), + rightEntry.getQueryPlan().getRoot(), + vertexStrategy, edgeStrategy + ); + + Set processedVariables = leftEntry.getProcessedVariables(); + processedVariables.addAll(rightEntry.getProcessedVariables()); + + CNF predicates = mergePredicates(leftEntry, rightEntry); + + return new TemporalPlanTableEntry( + GRAPH, + processedVariables, + predicates, + new TemporalQueryPlanEstimator(new QueryPlan(node), queryHandler, graphStatistics, cnfEstimation) + ); + } + + /** + * Creates an {@link ValueJoinNode} from the specified arguments. + * + * @param leftEntry left entry + * @param rightEntry right entry + * @param joinPredicate join predicate + * @return new value join node + */ + private PlanTableEntry createValueJoinEntry(PlanTableEntry leftEntry, + PlanTableEntry rightEntry, + CNF joinPredicate) { + + List> leftProperties = new ArrayList<>(); + List> rightProperties = new ArrayList<>(); + + for (CNFElement e : joinPredicate.getPredicates()) { + ComparisonExpression comparison = e.getPredicates().get(0); + + Pair joinExpression = extractJoinExpression(comparison.getLhs()); + if (leftEntry.getAllVariables().contains(joinExpression.getKey())) { + /*if (!isTemporal(joinExpression)) { + leftProperties.add(joinExpression); + }*/ + leftProperties.add(joinExpression); + } else { + /*if (!isTemporal(joinExpression)) { + rightProperties.add(joinExpression); + }*/ + rightProperties.add(joinExpression); + } + + joinExpression = extractJoinExpression(comparison.getRhs()); + if (leftEntry.getAllVariables().contains(joinExpression.getKey())) { + /*if (!isTemporal(joinExpression)) { + leftProperties.add(joinExpression); + }*/ + leftProperties.add(joinExpression); + } else { + /*if (!isTemporal(joinExpression)) { + rightProperties.add(joinExpression); + }*/ + rightProperties.add(joinExpression); + } + } + + ValueJoinNode node = new ValueJoinNode( + leftEntry.getQueryPlan().getRoot(), + rightEntry.getQueryPlan().getRoot(), + leftProperties, rightProperties, + vertexStrategy, edgeStrategy + ); + + Set processedVariables = leftEntry.getProcessedVariables(); + processedVariables.addAll(rightEntry.getProcessedVariables()); + + CNF predicates = mergePredicates(leftEntry, rightEntry); + + return new TemporalPlanTableEntry( + GRAPH, + processedVariables, + predicates, + new TemporalQueryPlanEstimator(new QueryPlan(node), queryHandler, graphStatistics, cnfEstimation) + ); + } + + /** + * Turns a QueryComparable into a {@code Pair} + * + * @param comparable query comparable + * @return join property + */ + private Pair extractJoinExpression(QueryComparable comparable) { + if (comparable instanceof PropertySelectorComparable) { + PropertySelectorComparable propertySelector = (PropertySelectorComparable) comparable; + return Pair.of(propertySelector.getVariable(), propertySelector.getPropertyKey()); + } + if (comparable instanceof TimeSelectorComparable) { + TimeSelectorComparable timeSelector = (TimeSelectorComparable) comparable; + return Pair.of(timeSelector.getVariable(), timeSelector.getTimeField().name()); + } else { + //TODO #580 Include ElementSelector -> ID needs to be projected as property + throw new RuntimeException("Comparable " + comparable + "cant be used for ValueJoin"); + } + } + + /** + * Creates a new predicate that includes only elements that exist in both input predicates + * + * @param leftEntry left side plant table entry + * @param rightEntry right side plan table entry + * @return Merged predicates + */ + private CNF mergePredicates(PlanTableEntry leftEntry, PlanTableEntry rightEntry) { + CNF leftPredicates = new CNF(leftEntry.getPredicates()); + CNF rightPredicates = new CNF(rightEntry.getPredicates()); + leftPredicates.removeSubCNF(rightEntry.getProcessedVariables()); + rightPredicates.removeSubCNF(leftEntry.getProcessedVariables()); + return leftPredicates.and(rightPredicates); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java new file mode 100644 index 000000000000..e59ade51aa40 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/planner/greedy/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains a greedy query planning approach. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.planner.greedy; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/TemporalPlanTableEntry.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/TemporalPlanTableEntry.java new file mode 100644 index 000000000000..2c6bf1173491 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/TemporalPlanTableEntry.java @@ -0,0 +1,91 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.plantable; + +import org.apache.commons.lang3.tuple.Pair; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTableEntry; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.QueryPlan; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation.TemporalQueryPlanEstimator; + +import java.util.HashSet; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Represents a query plan and additional meta data. Plan table entries are managed in a + * {@link org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.plantable.PlanTable}. + */ +public class TemporalPlanTableEntry extends PlanTableEntry { + /** + * The estimator containing the query plan. + */ + private final TemporalQueryPlanEstimator estimator; + /** + * Estimated cardinality of the query result as computed by the estimator. + */ + private long estimatedCardinality = -1; + + /** + * Creates a new plan table entry. + * + * @param type the partial match type this entry represents + * @param processedVars processed query variables + * @param predicates predicates not covered by this plan + * @param estimator cardinality estimator + */ + public TemporalPlanTableEntry(Type type, Set processedVars, CNF predicates, + TemporalQueryPlanEstimator estimator) { + super(type, processedVars, predicates, null); + this.estimator = estimator; + } + + @Override + public Set getAllVariables() { + return new HashSet<>(estimator.getQueryPlan().getRoot().getEmbeddingMetaData() + .getVariables()); + } + + @Override + public Set getAttributedVariables() { + return new HashSet<>(estimator.getQueryPlan().getRoot().getEmbeddingMetaData() + .getVariablesWithProperties()); + } + + /** + * Returns all (variable,key) pairs needed for further query processing. + * + * @return (variable, key) pairs needed for further processing + */ + public Set> getProjectionPairs() { + return getPredicates().getVariables().stream() + .flatMap(var -> getPredicates().getPropertyKeys(var).stream().map(key -> Pair.of(var, key))) + .collect(Collectors.toSet()); + } + + @Override + public long getEstimatedCardinality() { + if (estimatedCardinality == -1) { + estimatedCardinality = estimator.getCardinality(); + } + return estimatedCardinality; + } + + @Override + public QueryPlan getQueryPlan() { + return estimator.getQueryPlan(); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java new file mode 100644 index 000000000000..10a0662b9324 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/plantable/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains a query plan table representation. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.plantable; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesNode.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesNode.java new file mode 100644 index 000000000000..ea9bb66cdb83 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesNode.java @@ -0,0 +1,161 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf; + +import org.apache.flink.api.java.DataSet; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.FilterNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.LeafNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.ProjectionNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter.FilterAndProjectTemporalEdges; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +/** + * Leaf node that wraps a {@link FilterAndProjectTemporalEdges} operator. + */ +public class FilterAndProjectTemporalEdgesNode extends LeafNode + implements FilterNode, ProjectionNode { + /** + * Input data set + */ + private final DataSet edges; + /** + * Query variable of the source vertex + */ + private final String sourceVariable; + /** + * Query variable of the edge + */ + private final String edgeVariable; + /** + * Query variable of the target vertex + */ + private final String targetVariable; + /** + * Filter predicate that is applied on the input data set + */ + private final CNF filterPredicate; + /** + * Property keys used for projection + */ + private final List projectionKeys; + /** + * Indicates if the edges is actually a path + */ + private final boolean isPath; + + /** + * Creates a new node. + * + * @param edges input edges + * @param sourceVariable query variable of the source vertex + * @param edgeVariable query variable of the edge + * @param targetVariable query variable of the target vertex + * @param filterPredicate filter predicate to be applied on edges + * @param projectionKeys property keys whose associated values are projected to the output + * @param isPath indicates if the edges is actually a path + */ + public FilterAndProjectTemporalEdgesNode(DataSet edges, + String sourceVariable, String edgeVariable, String targetVariable, + CNF filterPredicate, Set projectionKeys, + boolean isPath) { + this.edges = edges; + this.sourceVariable = sourceVariable; + this.edgeVariable = edgeVariable; + this.targetVariable = targetVariable; + this.filterPredicate = filterPredicate; + this.projectionKeys = new ArrayList<>(projectionKeys); + this.isPath = isPath; + } + + @Override + public DataSet execute() { + FilterAndProjectTemporalEdges op = new FilterAndProjectTemporalEdges( + edges, + filterPredicate, + projectionKeys, + isLoop() + ); + op.setName(toString()); + return op.evaluate(); + } + + /** + * Returns a copy of the filter predicate attached to this node. + * + * @return filter predicate + */ + public CNF getFilterPredicate() { + return new CNF(filterPredicate); + } + + /** + * Returns a copy of the projection keys attached to this node. + * + * @return projection keys + */ + public List getProjectionKeys() { + return new ArrayList<>(projectionKeys); + } + + /** + * Returns the name of the edge variable + * + * @return name of the edge variable + */ + public String getEdgeVariable() { + return edgeVariable; + } + + /** + * checks whether edge is a self-loop + * + * @return true iff edge is a self-loop + */ + public boolean isLoop() { + return sourceVariable.equals(targetVariable) && !isPath; + } + + @Override + protected EmbeddingMetaData computeEmbeddingMetaData() { + EmbeddingMetaData embeddingMetaData = new EmbeddingMetaData(); + embeddingMetaData.setEntryColumn(sourceVariable, EmbeddingMetaData.EntryType.VERTEX, 0); + embeddingMetaData.setEntryColumn(edgeVariable, EmbeddingMetaData.EntryType.EDGE, 1); + if (!isLoop()) { + embeddingMetaData.setEntryColumn(targetVariable, EmbeddingMetaData.EntryType.VERTEX, 2); + } + + embeddingMetaData = setPropertyColumns(embeddingMetaData, edgeVariable, projectionKeys); + return embeddingMetaData; + } + + @Override + public String toString() { + return String.format("FilterAndProjectTemporalEdgesNode{" + + "sourceVariable='%s', " + + "edgeVariable='%s', " + + "targetVariable='%s', " + + "filterPredicate=%s, " + + "projectionKeys=%s}", + sourceVariable, edgeVariable, targetVariable, filterPredicate, projectionKeys); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesNode.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesNode.java new file mode 100644 index 000000000000..f37626266be2 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesNode.java @@ -0,0 +1,114 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf; + +import org.apache.flink.api.java.DataSet; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.FilterNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.LeafNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.ProjectionNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter.FilterAndProjectTemporalVertices; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +/** + * Leaf node that wraps a {@link FilterAndProjectTemporalVertices} operator. + */ +public class FilterAndProjectTemporalVerticesNode extends LeafNode + implements FilterNode, ProjectionNode { + + /** + * Input data set + */ + private final DataSet vertices; + /** + * Query variable of the vertex + */ + private final String vertexVariable; + /** + * Filter predicate that is applied on the input data set + */ + private final CNF filterPredicate; + /** + * Property keys used for projection + */ + private final List projectionKeys; + + /** + * Creates a new node. + * + * @param vertices input vertices + * @param vertexVariable query variable of the vertex + * @param filterPredicate filter predicate to be applied on edges + * @param projectionKeys property keys whose associated values are projected to the output + */ + public FilterAndProjectTemporalVerticesNode(DataSet vertices, String vertexVariable, + CNF filterPredicate, Set projectionKeys) { + this.vertices = vertices; + this.vertexVariable = vertexVariable; + this.filterPredicate = filterPredicate; + this.projectionKeys = new ArrayList<>(projectionKeys); + } + + @Override + public DataSet execute() { + FilterAndProjectTemporalVertices op = + new FilterAndProjectTemporalVertices(vertices, filterPredicate, projectionKeys); + op.setName(toString()); + return op.evaluate(); + } + + /** + * Returns a copy of the filter predicate attached to this node. + * + * @return filter predicate + */ + public CNF getFilterPredicate() { + return new CNF(filterPredicate); + } + + /** + * Returns a copy of the projection keys attached to this node. + * + * @return projection keys + */ + public List getProjectionKeys() { + return new ArrayList<>(projectionKeys); + } + + @Override + protected EmbeddingMetaData computeEmbeddingMetaData() { + EmbeddingMetaData embeddingMetaData = new EmbeddingMetaData(); + embeddingMetaData.setEntryColumn(vertexVariable, EmbeddingMetaData.EntryType.VERTEX, 0); + embeddingMetaData = setPropertyColumns(embeddingMetaData, vertexVariable, projectionKeys); + + return embeddingMetaData; + } + + @Override + public String toString() { + return String.format("FilterAndProjectVerticesNode{" + + "vertexVariable=%s, " + + "filterPredicate=%s, " + + "projectionKeys=%s}", + vertexVariable, filterPredicate, projectionKeys); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java new file mode 100644 index 000000000000..01b32cb982c6 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains leaf plan node implementations. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java new file mode 100644 index 000000000000..b61d9acc91fa --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains all classes related to query plan representation. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactory.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactory.java new file mode 100644 index 000000000000..a9df57483541 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactory.java @@ -0,0 +1,129 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.pojos; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalGraphElement; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +import java.util.List; + +/** + * Utility class to convert an element ({@link TemporalVertex} and {@link TemporalEdge} into an + * {@link Embedding}. + * Analogous to + * {@link org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingFactory} + * but creating TPGMEmbeddings from TPGM elements + */ +public class EmbeddingTPGMFactory { + + /** + * Converts a {@link TemporalVertex} into an {@link Embedding}. + *

+ * The resulting embedding has one entry containing the vertex id and one entry for each property + * value associated with the specified property keys (ordered by list order). Note that missing + * property values are represented by a {@link PropertyValue#NULL_VALUE}. + * Furthermore, the time data of each element ({tx_from, tx_to, valid_from, valid_to}) is stored + * in the embedding, just like normal properties + * + * @param vertex vertex to create embedding from + * @param propertyKeys properties that will be stored in the embedding + * @return Embedding + */ + public static Embedding fromVertex(TemporalVertex vertex, List propertyKeys) { + Embedding embedding = new Embedding(); + embedding.add(vertex.getId(), project(vertex, propertyKeys)); + return embedding; + } + + /** + * Converts an {@link TemporalEdge} into an {@link Embedding}. + *

+ * The resulting embedding has three entries containing the source vertex id, the edge id and the + * target vertex id. Furthermore, the embedding has one entry for each property value associated + * with the specified property keys (ordered by list order). Note that missing property values are + * represented by a {@link PropertyValue#NULL_VALUE}. + * Additionally, the time data of the edge ({tx_from, tx_to, valid_from, valid_to}) are stored + * in the embedding, just like properties + * + * @param edge edge to create embedding from + * @param propertyKeys properties that will be stored in the embedding + * @param isLoop indicates if the edges is a loop + * @return Embedding + */ + public static Embedding fromEdge(TemporalEdge edge, List propertyKeys, boolean isLoop) { + Embedding embedding = new Embedding(); + if (isLoop) { + embedding.addAll(edge.getSourceId(), edge.getId()); + } else { + embedding.addAll(edge.getSourceId(), edge.getId(), edge.getTargetId()); + } + embedding.addPropertyValues(project(edge, propertyKeys)); + return embedding; + } + + /** + * Projects the elements properties into a list of property values. Only those properties + * specified by their key will be kept. Properties that are specified but not present at the + * element will be adopted as {@link PropertyValue#NULL_VALUE}. + * Temporal properties are stored just like "normal" ones + * + * @param element element of which the properties will be projected + * @param propertyKeys properties that will be projected from the specified element + * @return projected property values + */ + private static PropertyValue[] project(TemporalGraphElement element, List propertyKeys) { + PropertyValue[] propertyValues = new PropertyValue[propertyKeys.size()]; + int i = 0; + for (String propertyKey : propertyKeys) { + if (propertyKey.equals("__label__")) { + propertyValues[i++] = PropertyValue.create(element.getLabel()); + } else if (isProperty(propertyKey)) { + propertyValues[i++] = element.hasProperty(propertyKey) ? + element.getPropertyValue(propertyKey) : PropertyValue.NULL_VALUE; + } else { + if (propertyKey.equals(TimeSelector.TimeField.VAL_FROM.toString())) { + propertyValues[i++] = PropertyValue.create(element.getValidFrom()); + } else if (propertyKey.equals(TimeSelector.TimeField.VAL_TO.toString())) { + propertyValues[i++] = PropertyValue.create(element.getValidTo()); + } else if (propertyKey.equals(TimeSelector.TimeField.TX_FROM.toString())) { + propertyValues[i++] = PropertyValue.create(element.getTxFrom()); + } else if (propertyKey.equals(TimeSelector.TimeField.TX_TO.toString())) { + propertyValues[i++] = PropertyValue.create(element.getTxTo()); + } else { + propertyValues[i++] = PropertyValue.NULL_VALUE; + } + } + } + return propertyValues; + } + + /** + * Checks if a string refers to an actual property or a time stamp + * + * @param key string to check + * @return true iff key refers to an actual property + */ + private static boolean isProperty(String key) { + return !key.equals(TimeSelector.TimeField.VAL_FROM.toString()) && + !key.equals(TimeSelector.TimeField.VAL_TO.toString()) && + !key.equals(TimeSelector.TimeField.TX_FROM.toString()) && + !key.equals(TimeSelector.TimeField.TX_TO.toString()); + } +} diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/package-info.java new file mode 100644 index 000000000000..ecbae1e3b56e --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains POJOs used by the matching operator. + */ +package org.gradoop.temporal.model.impl.operators.matching.single.cypher.pojos; diff --git a/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/package-info.java b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/package-info.java new file mode 100644 index 000000000000..e90ccc68dfe3 --- /dev/null +++ b/gradoop-temporal/src/main/java/org/gradoop/temporal/model/impl/operators/matching/single/package-info.java @@ -0,0 +1,19 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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. + */ +/** + * Contains implementations of temporal graph pattern matching on an input graph collection. + */ +package org.gradoop.temporal.model.impl.operators.matching.single; diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/BaseTemporalPatternMatchingTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/BaseTemporalPatternMatchingTest.java new file mode 100644 index 000000000000..7898e5386c8e --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/BaseTemporalPatternMatchingTest.java @@ -0,0 +1,145 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching; + +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.ExecutionEnvironment; +import org.gradoop.flink.model.impl.epgm.GraphCollection; +import org.gradoop.flink.util.FlinkAsciiGraphLoader; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphCollection; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.BinningTemporalGraphStatisticsFactory; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.CypherTemporalPatternMatching; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.util.TemporalGradoopConfig; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +/** + * Base class for all temporal pattern matching tests that read Temporal-GDL as input db. + */ +@RunWith(Parameterized.class) +public abstract class BaseTemporalPatternMatchingTest extends TemporalGradoopTestBase { + + /** + * Name of the test. + */ + protected final String testName; + + /** + * The query as Temporal-GDL string. + */ + protected final String queryGraph; + + /** + * Expected graph variables (names). + */ + protected final String[] expectedGraphVariables; + + /** + * Expected graph collection as comma-separated Temporal-GDLs. + */ + protected final String expectedCollection; + + private static TemporalGraphStatistics temporalGraphStatistics; + + @BeforeClass + public static void setUp() throws Exception { + ExecutionEnvironment environment = ExecutionEnvironment.getExecutionEnvironment(); + TemporalGradoopConfig config = TemporalGradoopConfig.createConfig(environment); + FlinkAsciiGraphLoader loader = new FlinkAsciiGraphLoader(config); + loader.initDatabaseFromFile(TEMPORAL_GDL_CITIBIKE_PATH); + TemporalGraph temporalGraph = TemporalGraph.fromGraph(loader.getLogicalGraph()); + temporalGraph = config.getTemporalGraphFactory() + .fromDataSets( + temporalGraph.getVertices().map(vertexTransform), + temporalGraph.getEdges().map(edgeTransform)); + temporalGraphStatistics = new BinningTemporalGraphStatisticsFactory() + .fromGraph(temporalGraph); + } + + /** + * Initializes a test with a data graph. + * + * @param testName name of the test + * @param queryGraph the query graph as Temporal-GDL string + * @param expectedGraphVariables expected graph variables (names) as comma-separated string + * @param expectedCollection expected graph collection as comma-separated GDLs + */ + public BaseTemporalPatternMatchingTest(String testName, String queryGraph, String expectedGraphVariables, + String expectedCollection) { + this.testName = testName; + this.queryGraph = queryGraph; + this.expectedGraphVariables = expectedGraphVariables.split(","); + this.expectedCollection = expectedCollection; + } + + /** + * Given a graph collection, this method transforms it to a temporal graph collection. + * {@code start} and {@code end} values are extracted from the edges (= "trips") + * and used to set {@code valid_from}/{@code tx_from} and {@code valid_to}/{@code tx_to} values. + * + * @param graphCollection the collection to transform + * @return the temporal representation + */ + protected TemporalGraphCollection transformExpectedToTemporal(GraphCollection graphCollection) { + //transform edges + TemporalGraphCollection tgc = toTemporalGraphCollection(graphCollection); + DataSet newEdges = tgc.getEdges().map(edgeTransform); + DataSet newVertices = tgc.getVertices().map(vertexTransform); + tgc = tgc.getFactory().fromDataSets(tgc.getGraphHeads(), newVertices, newEdges); + return tgc; + } + + /** + * Yields a pattern matching implementation. + * + * @param queryGraph query graph as GDL string + * @param stats graph statistics + * @return a pattern matching implementation + */ + public abstract CypherTemporalPatternMatching getImplementation(String queryGraph, TemporalGraphStatistics stats) throws Exception; + + @Test + public void testPatternMatching() throws Exception { + FlinkAsciiGraphLoader loader = new FlinkAsciiGraphLoader(getConfig()); + + loader.initDatabaseFromFile(TEMPORAL_GDL_CITIBIKE_PATH); + + TemporalGraph db = transformToTemporalGraph(loader.getLogicalGraph()); + + loader.appendToDatabaseFromString(expectedCollection); + + TemporalGraphCollection result = getImplementation(queryGraph, temporalGraphStatistics) + .execute(db); + + TemporalGraphCollection expectedByID = toTemporalGraphCollection( + loader.getGraphCollectionByVariables(expectedGraphVariables)); + + TemporalGraphCollection expectedByData = transformExpectedToTemporal( + loader.getGraphCollectionByVariables(expectedGraphVariables)); + + // element id equality + collectAndAssertTrue(result.equalsByGraphElementIds(expectedByID)); + // graph element equality + collectAndAssertTrue(result.equalsByGraphElementData(expectedByData)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/TemporalTestData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/TemporalTestData.java new file mode 100644 index 000000000000..5a3ff2fed21d --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/TemporalTestData.java @@ -0,0 +1,31 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching; + +import java.util.Collection; + +/** + * An interface providing a getter for parameterized tests. + */ +public interface TemporalTestData { + /** + * Input for parameterized testing. + * + * @return Iterable of string arrays (length 5) containing input for constructor + * {@link BaseTemporalPatternMatchingTest#BaseTemporalPatternMatchingTest(String, String, String, String)}. + */ + Collection getData(); +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandlerTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandlerTest.java new file mode 100644 index 000000000000..41de0acb6d71 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/TemporalQueryHandlerTest.java @@ -0,0 +1,240 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query; + +import org.gradoop.flink.model.impl.operators.matching.common.query.QueryHandler; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.QueryPredicate; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.ComparableTPGMFactory; +import org.junit.Test; +import org.gradoop.gdl.GDLHandler; +import org.gradoop.gdl.model.Edge; +import org.gradoop.gdl.model.Vertex; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.PropertySelector; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.Predicate; +import org.gradoop.gdl.model.predicates.booleans.And; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; + +import java.util.ArrayList; + +import static org.gradoop.temporal.model.impl.operators.matching.common.query.Util.equalCNFs; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; + +/** + * Tests the {@link TemporalQueryHandler}. + */ +public class TemporalQueryHandlerTest { + + /** + * Copied from QueryHandlerTest (changed to TemporalQueryHandler). Ensure that this still works + */ + static final String TEST_QUERY = "" + + "(v1:A {ecc : 2})" + + "(v2:B {ecc : 1})" + + "(v3:B {ecc : 2})" + + "(v1)-[e1:a]->(v2)" + + "(v2)-[e2:b]->(v3)" + + "(v2)-[e3:a]->(v1)" + + "(v3)-[e4:c]->(v3)"; + private static final GDLHandler GDL_HANDLER = new GDLHandler.Builder().buildFromString(TEST_QUERY); + static TemporalQueryHandler QUERY_HANDLER; + + static { + try { + QUERY_HANDLER = new TemporalQueryHandler(TEST_QUERY); + } catch (QueryContradictoryException e) { + e.printStackTrace(); + } + } + + @Test + public void testSimplePredicates() throws Exception { + String testquery = "MATCH (a)-[e1:test]->(b) WHERE a.tx_from.before(b.tx_to)"; + TemporalQueryHandler handler = new TemporalQueryHandler(testquery, new CNFPostProcessing(new ArrayList<>())); + Predicate and = new And( + new Comparison(new TimeSelector("a", "tx_from"), + LT, + new TimeSelector("b", "tx_to")), + new Comparison(new PropertySelector("e1", "__label__"), + Comparator.EQ, + new Literal("test")) + ); + and = new And(and, getOverlapsPredicate()); + assertPredicateEquals(and, handler.getPredicates()); + } + + @Test + public void testGlobalPredicates() throws QueryContradictoryException { + // no global predicates + String testquery = "MATCH (a)-[e1:test]->(b) WHERE a.tx_to.before(b.val_to)"; + TimeSelector e1TxFrom = new TimeSelector("e1", TX_FROM); + TimeSelector aTxFrom = new TimeSelector("a", TX_FROM); + TimeSelector bTxFrom = new TimeSelector("b", TX_FROM); + TimeSelector aTxTo = new TimeSelector("a", TX_TO); + TimeSelector bTxTo = new TimeSelector("b", TX_TO); + TimeSelector e1TxTo = new TimeSelector("e1", TX_TO); + TimeSelector aValFrom = new TimeSelector("a", VAL_FROM); + TimeSelector bValFrom = new TimeSelector("b", VAL_FROM); + TimeSelector e1ValFrom = new TimeSelector("e1", VAL_FROM); + TimeSelector aValTo = new TimeSelector("a", VAL_TO); + TimeSelector bValTo = new TimeSelector("b", VAL_TO); + TimeSelector e1ValTo = new TimeSelector("e1", VAL_TO); + TemporalQueryHandler handler = new TemporalQueryHandler( + testquery, new CNFPostProcessing(new ArrayList<>())); + Predicate expectedPredicate = new And( + new Comparison(aTxTo, LT, bValTo), + new Comparison( + new PropertySelector("e1", "__label__"), Comparator.EQ, new Literal("test")) + ); + expectedPredicate = new And(expectedPredicate, getOverlapsPredicate()); + assertPredicateEquals(expectedPredicate, handler.getPredicates()); + + // global and non-global predicates + testquery = "MATCH (a)-[e1:test]->(b) WHERE tx_to.before(b.val_to) AND a.val_to.after(b.val_to)"; + handler = new TemporalQueryHandler(testquery, new CNFPostProcessing(new ArrayList<>())); + MinTimePoint globalTxTo = new MinTimePoint(e1TxTo, aTxTo, bTxTo); + MaxTimePoint globalTxFrom = new MaxTimePoint(e1TxFrom, aTxFrom, bTxFrom); + MaxTimePoint globalValFrom = new MaxTimePoint(e1ValFrom, aValFrom, bValFrom); + + expectedPredicate = new And( + new And( + new And( + new Comparison(globalTxTo, LT, bValTo), + new Comparison(globalTxFrom, LTE, globalTxTo)), + new Comparison(aValTo, GT, bValTo) + ), + new Comparison(new PropertySelector("e1", "__label__"), + Comparator.EQ, + new Literal("test")) + ); + + expectedPredicate = new And(expectedPredicate, getOverlapsPredicate()); + assertPredicateEquals(expectedPredicate, handler.getPredicates()); + + // only global + testquery = "MATCH (a)-[e1]->(b) WHERE tx_to.before(b.val_to) AND a.val_to.after(val_to)"; + handler = new TemporalQueryHandler(testquery, new CNFPostProcessing(new ArrayList<>())); + MinTimePoint globalValTo = new MinTimePoint(e1ValTo, aValTo, bValTo); + + expectedPredicate = new And( + new And( + new Comparison(globalTxTo, LT, bValTo), + new Comparison(globalTxFrom, LTE, globalTxTo)), + new And( + new Comparison(aValTo, GT, globalValTo), + new Comparison(globalValFrom, LTE, globalValTo)) + ); + expectedPredicate = new And(expectedPredicate, getOverlapsPredicate()); + assertPredicateEquals(expectedPredicate, handler.getPredicates()); + } + + private void assertPredicateEquals(Predicate expectedGDL, CNF result) { + CNF expected = QueryPredicate.createFrom(expectedGDL, new ComparableTPGMFactory()).asCNF(); + equalCNFs(expected, result); + } + + + // returns the overlaps predicate for the edge (a)-[e]->(b) + private Predicate getOverlapsPredicate() { + TimeSelector eFrom = new TimeSelector("e1", VAL_FROM); + TimeSelector eTo = new TimeSelector("e1", TimeSelector.TimeField.VAL_TO); + + TimeSelector sFrom = new TimeSelector("a", VAL_FROM); + TimeSelector sTo = new TimeSelector("a", TimeSelector.TimeField.VAL_TO); + + TimeSelector tFrom = new TimeSelector("b", VAL_FROM); + TimeSelector tTo = new TimeSelector("b", TimeSelector.TimeField.VAL_TO); + + return new Comparison( + new MaxTimePoint(eFrom, sFrom, tFrom), LTE, new MinTimePoint(eTo, sTo, tTo) + ); + } + + + // also copied from EPGM tests + + @Test + public void testGetVertexCount() { + assertEquals(3, QUERY_HANDLER.getVertexCount()); + } + + @Test + public void testGetEdgeCount() { + assertEquals(4, QUERY_HANDLER.getEdgeCount()); + } + + + @Test + public void testIsSingleVertexGraph() { + assertFalse(QUERY_HANDLER.isSingleVertexGraph()); + assertTrue(new QueryHandler("(v0)").isSingleVertexGraph()); + } + + @Test + public void testIsVertex() { + assertTrue(QUERY_HANDLER.isVertex("v1")); + assertFalse(QUERY_HANDLER.isVertex("e1")); + } + + @Test + public void testIsEdge() { + assertTrue(QUERY_HANDLER.isEdge("e1")); + assertFalse(QUERY_HANDLER.isEdge("v1")); + } + + @Test + public void testGetVertexById() { + Vertex expected = GDL_HANDLER.getVertexCache().get("v1"); + assertEquals(expected, QUERY_HANDLER.getVertexById(expected.getId())); + } + + @Test + public void testGetEdgeById() { + Edge expected = GDL_HANDLER.getEdgeCache().get("e1"); + assertEquals(expected, QUERY_HANDLER.getEdgeById(expected.getId())); + } + + @Test + public void testGetVertexByVariable() { + Vertex expected = GDL_HANDLER.getVertexCache().get("v1"); + assertEquals(expected, QUERY_HANDLER.getVertexByVariable("v1")); + assertNotEquals(expected, QUERY_HANDLER.getVertexByVariable("v2")); + } + + @Test + public void testGetEdgeByVariable() { + Edge expected = GDL_HANDLER.getEdgeCache().get("e1"); + assertEquals(expected, QUERY_HANDLER.getEdgeByVariable("e1")); + assertNotEquals(expected, QUERY_HANDLER.getEdgeByVariable("e2")); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/Util.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/Util.java new file mode 100644 index 000000000000..3cec3aa26558 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/Util.java @@ -0,0 +1,48 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; + +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +public class Util { + + public static void equalCNFs(CNF a, CNF b) { + assertEquals(a.size(), b.size()); + for (CNFElement c1 : a.getPredicates()) { + List c1Comps = c1.getPredicates(); + c1Comps.sort(java.util.Comparator.comparingInt(ComparisonExpression::hashCode)); + boolean found = false; + for (CNFElement c2 : b.getPredicates()) { + List c2Comps = c2.getPredicates(); + c2Comps.sort(java.util.Comparator.comparingInt(ComparisonExpression::hashCode)); + if (c2Comps.equals(c1Comps)) { + found = true; + break; + } + } + if (!found) { + fail(); + } + } + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraintsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraintsTest.java new file mode 100644 index 000000000000..4f3904a61115 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/AddTrivialConstraintsTest.java @@ -0,0 +1,110 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.GTE; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class AddTrivialConstraintsTest { + + final TimeSelector aTxFrom = new TimeSelector("a", TimeSelector.TimeField.TX_FROM); + final TimeSelector aTxTo = new TimeSelector("a", TimeSelector.TimeField.TX_TO); + final TimeSelector bValFrom = new TimeSelector("b", TimeSelector.TimeField.VAL_FROM); + final TimeSelector bValTo = new TimeSelector("b", TimeSelector.TimeField.VAL_TO); + final TimeSelector bTxFrom = new TimeSelector("b", TimeSelector.TimeField.TX_FROM); + final TimeSelector bTxTo = new TimeSelector("b", TimeSelector.TimeField.TX_TO); + + final TimeLiteral lit1 = new TimeLiteral("1970-01-01T23:23:23"); + final TimeLiteral lit2 = new TimeLiteral("2019-01-31"); + final TimeLiteral lit3 = new TimeLiteral("2020-06-01T00:01:01"); + + + final AddTrivialConstraints constraintAdder = new AddTrivialConstraints(); + + @Test + public void addTrivialTest1() throws QueryContradictoryException { + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, NEQ, bTxTo)), + Collections.singletonList(new Comparison(aTxTo, LTE, bValFrom)), + Collections.singletonList(new Comparison(aTxTo, LTE, lit3)), + Collections.singletonList(new Comparison(lit1, LTE, bValFrom)), + Collections.singletonList(new Comparison(lit2, LTE, bValFrom)) + ); + CNF expected = new CNF(cnf).and(Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LTE, aTxTo)), + Collections.singletonList(new Comparison(bTxFrom, LTE, bTxTo)), + Collections.singletonList(new Comparison(bValFrom, LTE, bValTo)), + Collections.singletonList(new Comparison(lit1, LT, lit2)), + Collections.singletonList(new Comparison(lit1, LT, lit3)), + Collections.singletonList(new Comparison(lit2, LT, lit3)) + )); + + assertEquals(expected, constraintAdder.transformCNF(cnf)); + } + + @Test + public void addTrivialTest2() throws QueryContradictoryException { + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(bTxFrom, EQ, bTxTo)) + ); + CNF expected = new CNF(cnf).and(Util.cnfFromLists( + Collections.singletonList(new Comparison(bTxFrom, LTE, bTxTo)) + )); + assertEquals(expected, constraintAdder.transformCNF(cnf)); + } + + @Test + public void addTrivialTest3() throws QueryContradictoryException { + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(bTxFrom, LTE, bTxTo)), + Collections.singletonList(new Comparison(bTxFrom, LTE, lit3)) + ); + + assertEquals(cnf, constraintAdder.transformCNF(cnf)); + } + + @Test + public void addTrivialTest4() throws QueryContradictoryException { + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, NEQ, bTxTo)), + Collections.singletonList(new Comparison(aTxFrom, EQ, lit1)), + // should be ignored... + Arrays.asList(new Comparison(aTxFrom, GT, bValFrom), + new Comparison(bTxTo, GTE, bValFrom), + new Comparison(bTxTo, LT, lit3)) + ); + CNF expected = new CNF(cnf).and(Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LTE, aTxTo)), + Collections.singletonList(new Comparison(bTxFrom, LTE, bTxTo)) + )); + assertEquals(expected, constraintAdder.transformCNF(cnf)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInferenceTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInferenceTest.java new file mode 100644 index 000000000000..eed2177d24ce --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/BoundsInferenceTest.java @@ -0,0 +1,242 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.Collections; + +import static org.gradoop.temporal.model.impl.operators.matching.common.query.Util.equalCNFs; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class BoundsInferenceTest { + + TimeSelector aValFrom = new TimeSelector("a", TimeSelector.TimeField.VAL_FROM); + TimeSelector aTxFrom = new TimeSelector("a", TX_FROM); + TimeSelector bTxFrom = new TimeSelector("b", TimeSelector.TimeField.TX_FROM); + TimeSelector aTxTo = new TimeSelector("a", TimeSelector.TimeField.TX_TO); + TimeSelector cValTo = new TimeSelector("c", VAL_TO); + TimeSelector cTxTo = new TimeSelector("c", TX_TO); + + TimeLiteral literal1970 = new TimeLiteral("1970-01-01"); + TimeLiteral literal2020 = new TimeLiteral("2020-05-25"); + + @Test + public void preprocessingTest1() throws QueryContradictoryException { + // 1970-01-01 < c.val_to <= b.tx_from < a.val_from < 2020-05-25 + // => lower(c.val_to) = 1L, upper(c.val_to) = ms(2020-05-25)-2 + // => lower(b.tx_from) = 1L, upper(b.tx_from) = ms(2020-05-25)-2 + // => lower(a.val_from) = 2L, upper(a.val_from) = ms(2020-05-25)-1 + + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(bTxFrom, LT, aValFrom)), + Collections.singletonList(new Comparison(cValTo, LTE, bTxFrom)), + Collections.singletonList(new Comparison(literal1970, LT, cValTo)), + Collections.singletonList(new Comparison(aValFrom, LT, literal2020)) + ); + BoundsInference prep = new BoundsInference(); + CNF processedCNF = prep.transformCNF(cnf); + + long l2020 = literal2020.getMilliseconds(); + + CNF expectedCNF = Util.cnfFromLists( + Collections.singletonList(new Comparison(bTxFrom, LT, aValFrom)), + Collections.singletonList(new Comparison(cValTo, LTE, bTxFrom)), + Collections.singletonList(new Comparison( + new TimeLiteral(1), LTE, cValTo)), + Collections.singletonList(new Comparison( + cValTo, LTE, new TimeLiteral(l2020 - 1))), + Collections.singletonList(new Comparison( + new TimeLiteral(1), LTE, bTxFrom)), + Collections.singletonList(new Comparison( + bTxFrom, LTE, new TimeLiteral(l2020 - 1))), + Collections.singletonList(new Comparison( + new TimeLiteral(1), LTE, aValFrom)), + Collections.singletonList(new Comparison( + aValFrom, LTE, new TimeLiteral(l2020 - 1))) + ); + + equalCNFs(expectedCNF, processedCNF); + } + + @Test + public void preprocessingTest2() throws QueryContradictoryException { + // a.tx_from = b.tx_from = 1970-01-01 + // => lower(a.tx_from) = upper(a.tx_from) = lower(b.tx_from) + // = lower(b.tx_to) = 0L + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxTo, EQ, bTxFrom)), + Collections.singletonList(new Comparison(bTxFrom, EQ, literal1970)) + ); + BoundsInference prep = new BoundsInference(); + + CNF processedCNF = prep.transformCNF(cnf); + + CNF expectedCNF = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxTo, EQ, bTxFrom)), + Collections.singletonList(new Comparison(aTxTo, EQ, literal1970)), + Collections.singletonList(new Comparison(bTxFrom, EQ, literal1970)) + ); + + equalCNFs(processedCNF, expectedCNF); + } + + @Test + public void preprocessingTest3() throws QueryContradictoryException { + // a.tx_from < b.tx_from, 1970-01-01 <= b.tx_from, b.tx_from <= 2020-05-25 + // => lower(b.tx_from) = 1970-01-01, upper(b.tx-from)=2020-05-25 = upper(a.tx-from) + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LT, bTxFrom)), + Collections.singletonList(new Comparison(literal1970, LTE, bTxFrom)), + Collections.singletonList(new Comparison(bTxFrom, LTE, literal2020)) + ); + + BoundsInference prep = new BoundsInference(); + CNF processedCNF = prep.transformCNF(cnf); + + long l2020 = literal2020.getMilliseconds(); + + CNF expectedCNF = Util.cnfFromLists( + Collections.singletonList(new Comparison( + aTxFrom, LT, bTxFrom)), + Collections.singletonList(new Comparison( + aTxFrom, LTE, new TimeLiteral(l2020 - 1))), + Collections.singletonList(new Comparison( + literal1970, LTE, bTxFrom)), + Collections.singletonList(new Comparison( + bTxFrom, LTE, new TimeLiteral(l2020))) + ); + + equalCNFs(expectedCNF, processedCNF); + } + + @Test(expected = QueryContradictoryException.class) + public void preprocessingTest4() throws QueryContradictoryException { + // obvious contradiction (should not occur in reality, as + // a CheckForCircles is done before this processing step) + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LT, literal1970)), + Collections.singletonList(new Comparison(literal2020, LTE, aTxFrom)) + ); + BoundsInference prep = new BoundsInference(); + prep.transformCNF(cnf); + } + + @Test(expected = QueryContradictoryException.class) + public void preprocessingTest5() throws QueryContradictoryException { + // obvious contradiction (should not occur in reality, as + // a CheckForCircles is done before this processing step) + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LT, literal1970)), + Collections.singletonList(new Comparison(literal1970, EQ, aTxFrom)) + ); + BoundsInference prep = new BoundsInference(); + prep.transformCNF(cnf); + } + + @Test(expected = QueryContradictoryException.class) + public void preprocessingTest6() throws QueryContradictoryException { + // obvious contradiction (should not occur in reality, as + // a CheckForCircles is done before this processing step) + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(literal1970, EQ, aTxFrom)), + Collections.singletonList(new Comparison(aValFrom, EQ, aTxFrom)), + Collections.singletonList(new Comparison(aValFrom, NEQ, literal1970)) + ); + BoundsInference prep = new BoundsInference(); + prep.transformCNF(cnf); + } + + // trivial bounds + @Test + public void preprocessingTest7() throws QueryContradictoryException { + // 1970-01-01 < c.val_to <= b.tx_from < a.val_from < 2020-05-25 + // => lower(c.val_to) = 1L, upper(c.val_to) = ms(2020-05-25)-2 + // => lower(b.tx_from) = 1L, upper(b.tx_from) = ms(2020-05-25)-2 + // => lower(a.val_from) = 2L, upper(a.val_from) = ms(2020-05-25)-1 + + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LTE, bTxFrom)), + Collections.singletonList(new Comparison(bTxFrom, LTE, aTxTo)), + Collections.singletonList(new Comparison(aTxTo, LTE, literal2020)) + ); + BoundsInference prep = new BoundsInference(); + CNF processedCNF = prep.transformCNF(cnf); + + long l2020 = literal2020.getMilliseconds(); + + CNF expectedCNF = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LTE, bTxFrom)), + Collections.singletonList(new Comparison(bTxFrom, LTE, aTxTo)), + Collections.singletonList(new Comparison(aTxTo, LTE, literal2020)), + Collections.singletonList(new Comparison(bTxFrom, LTE, literal2020)) + ); + + equalCNFs(expectedCNF, processedCNF); + } + + // redundancies + @Test + public void preprocessingTest8() throws QueryContradictoryException { + // 1970-01-01 < c.val_to <= b.tx_from < a.val_from < 2020-05-25 + // => lower(c.val_to) = 1L, upper(c.val_to) = ms(2020-05-25)-2 + // => lower(b.tx_from) = 1L, upper(b.tx_from) = ms(2020-05-25)-2 + // => lower(a.val_from) = 2L, upper(a.val_from) = ms(2020-05-25)-1 + + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LTE, bTxFrom)), + Collections.singletonList(new Comparison(aTxFrom, LTE, aTxTo)), + Collections.singletonList(new Comparison(literal1970, LT, literal2020)) + ); + BoundsInference prep = new BoundsInference(); + CNF processedCNF = prep.transformCNF(cnf); + + + CNF expectedCNF = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, LTE, bTxFrom)) + ); + + equalCNFs(expectedCNF, processedCNF); + } + + // NEQ contradictions + @Test(expected = QueryContradictoryException.class) + public void preprocessingTest9() throws QueryContradictoryException { + // 1970-01-01 < c.val_to <= b.tx_from < a.val_from < 2020-05-25 + // => lower(c.val_to) = 1L, upper(c.val_to) = ms(2020-05-25)-2 + // => lower(b.tx_from) = 1L, upper(b.tx_from) = ms(2020-05-25)-2 + // => lower(a.val_from) = 2L, upper(a.val_from) = ms(2020-05-25)-1 + + CNF cnf = Util.cnfFromLists( + Collections.singletonList(new Comparison(aTxFrom, EQ, bTxFrom)), + Collections.singletonList(new Comparison(bTxFrom, NEQ, literal2020)), + Collections.singletonList(new Comparison(aTxFrom, EQ, literal2020)) + ); + BoundsInference prep = new BoundsInference(); + CNF processedCNF = prep.transformCNF(cnf); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfoldingTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfoldingTest.java new file mode 100644 index 000000000000..4cca98fcae49 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/MinMaxUnfoldingTest.java @@ -0,0 +1,211 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.gdl.utils.Comparator; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.GTE; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class MinMaxUnfoldingTest { + + TimeSelector ts1 = new TimeSelector("a", TX_FROM); + TimeSelector ts2 = new TimeSelector("a", TX_TO); + TimeSelector ts3 = new TimeSelector("a", VAL_FROM); + TimeLiteral l1 = new TimeLiteral("1970-01-01"); + TimeLiteral l2 = new TimeLiteral("2020-05-24"); + + MinTimePoint min1 = new MinTimePoint(ts1, ts2, ts3); + MinTimePoint min2 = new MinTimePoint(ts3, l1); + + MaxTimePoint max1 = new MaxTimePoint(l2, ts1, ts2); + MaxTimePoint max2 = new MaxTimePoint(ts2, l1); + + MinMaxUnfolding unfolder = new MinMaxUnfolding(); + + @Test + public void minMaxUnfoldingTest() { + Comparison c1 = new Comparison(min1, Comparator.LT, l1); + CNF cnf1 = Util.cnfFromLists( + Collections.singletonList(c1) + ); + CNF expected1 = Util.cnfFromLists( + Arrays.asList( + new Comparison(min1.getArgs().get(0), Comparator.LT, l1), + new Comparison(min1.getArgs().get(1), Comparator.LT, l1), + new Comparison(min1.getArgs().get(2), Comparator.LT, l1) + ) + ); + assertEquals(expected1, unfolder.transformCNF(cnf1)); + + + Comparison c2 = new Comparison(max1, LTE, l1); + CNF cnf2 = Util.cnfFromLists( + Collections.singletonList(c2) + ); + CNF expected2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(max1.getArgs().get(0), LTE, l1)), + Collections.singletonList(new Comparison(max1.getArgs().get(1), LTE, l1)), + Collections.singletonList(new Comparison(max1.getArgs().get(2), LTE, l1)) + + ); + assertEquals(expected2, unfolder.transformCNF(cnf2)); + + + Comparison c3 = new Comparison(max1, Comparator.EQ, l1); + CNF cnf3 = Util.cnfFromLists( + Collections.singletonList(c3) + ); + CNF expected3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(max1, EQ, l1))); + assertEquals(expected3, unfolder.transformCNF(cnf3)); + + + Comparison c4 = new Comparison(l1, LTE, min1); + CNF cnf4 = Util.cnfFromLists( + Collections.singletonList(c4) + ); + CNF expected4 = Util.cnfFromLists( + Collections.singletonList(new Comparison(l1, LTE, min1.getArgs().get(0))), + Collections.singletonList(new Comparison(l1, LTE, min1.getArgs().get(1))), + Collections.singletonList(new Comparison(l1, LTE, min1.getArgs().get(2))) + ); + assertEquals(expected4, unfolder.transformCNF(cnf4)); + + + Comparison c5 = new Comparison(l1, Comparator.LT, max1); + CNF cnf5 = Util.cnfFromLists( + Collections.singletonList(c5) + ); + CNF expected5 = Util.cnfFromLists( + Arrays.asList( + new Comparison(l1, Comparator.LT, max1.getArgs().get(0)), + new Comparison(l1, Comparator.LT, max1.getArgs().get(1)), + new Comparison(l1, Comparator.LT, max1.getArgs().get(2)) + ) + ); + assertEquals(expected5, unfolder.transformCNF(cnf5)); + + + Comparison c6 = new Comparison(l1, NEQ, min1); + CNF cnf6 = Util.cnfFromLists( + Collections.singletonList(c6) + ); + CNF expected6 = Util.cnfFromLists( + Collections.singletonList(new Comparison(l1, NEQ, min1))); + assertEquals(expected6, unfolder.transformCNF(cnf6)); + + + // MIN < MIN is only unfolded once, rhs stays untouched (to ensure a CNF result) + Comparison c7 = new Comparison(min2, Comparator.LT, min2); + CNF cnf7 = Util.cnfFromLists( + Collections.singletonList(c7) + ); + CNF expected7 = Util.cnfFromLists( + Arrays.asList( + new Comparison(min2.getArgs().get(0), Comparator.LT, min2), + new Comparison(min2.getArgs().get(1), Comparator.LT, min2) + )); + assertEquals(expected7, unfolder.transformCNF(cnf7)); + + // MIN < MAX + Comparison c8 = new Comparison(min2, LTE, max2); + CNF cnf8 = Util.cnfFromLists( + Collections.singletonList(c8) + ); + CNF expected8 = Util.cnfFromLists( + Arrays.asList( + new Comparison(min2.getArgs().get(0), LTE, max2.getArgs().get(0)), + new Comparison(min2.getArgs().get(0), LTE, max2.getArgs().get(1)), + new Comparison(min2.getArgs().get(1), LTE, max2.getArgs().get(0)), + new Comparison(min2.getArgs().get(1), LTE, max2.getArgs().get(1)) + )); + assertEquals(expected8, unfolder.transformCNF(cnf8)); + + // MAX < MIN + Comparison c9 = new Comparison(max2, LTE, min2); + CNF cnf9 = Util.cnfFromLists( + Collections.singletonList(c9) + ); + CNF expected9 = Util.cnfFromLists( + Collections.singletonList(new Comparison(max2.getArgs().get(0), LTE, min2.getArgs().get(0))), + Collections.singletonList(new Comparison(max2.getArgs().get(0), LTE, min2.getArgs().get(1))), + Collections.singletonList(new Comparison(max2.getArgs().get(1), LTE, min2.getArgs().get(0))), + Collections.singletonList(new Comparison(max2.getArgs().get(1), LTE, min2.getArgs().get(1))) + ); + assertEquals(expected9, unfolder.transformCNF(cnf9)); + + // MAX < MAX + Comparison c10 = new Comparison(max2, LTE, max2); + CNF cnf10 = Util.cnfFromLists( + Collections.singletonList(c10) + ); + CNF expected10 = Util.cnfFromLists( + Arrays.asList(new Comparison(max2.getArgs().get(0), LTE, max2.getArgs().get(0)), + new Comparison(max2.getArgs().get(0), LTE, max2.getArgs().get(1))), + Arrays.asList(new Comparison(max2.getArgs().get(1), LTE, max2.getArgs().get(0)), + new Comparison(max2.getArgs().get(1), LTE, max2.getArgs().get(1))) + ); + assertEquals(expected10, unfolder.transformCNF(cnf10)); + + Comparison c11 = new Comparison(max2, NEQ, min2); + CNF cnf11 = Util.cnfFromLists( + Collections.singletonList(c11) + ); + CNF expected11 = Util.cnfFromLists( + Collections.singletonList(c11) + ); + assertEquals(expected11, unfolder.transformCNF(cnf11)); + + // more complex + CNF noMinMax = Util.cnfFromLists( + Arrays.asList( + new Comparison(l1, LTE, l2), + new Comparison(l1, GTE, l2) + ), + Collections.singletonList( + new Comparison(ts1, NEQ, ts2) + ) + ); + CNF complex = cnf1.and(cnf2) + .and(cnf3).and(cnf4).and(noMinMax) + .and(cnf5).and(cnf6).and(cnf7).and(cnf8) + .and(cnf9).and(cnf10).and(cnf11); + CNF expectedComplex = expected1.and(expected2).and(expected3) + .and(expected4).and(noMinMax).and(expected5).and(expected6).and(expected7) + .and(expected8).and(expected9).and(expected10).and(expected11); + assertEquals(expectedComplex, unfolder.transformCNF(complex)); + + CNF empty = new CNF(); + assertEquals(empty, unfolder.transformCNF(empty)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/NormalizationTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/NormalizationTest.java new file mode 100644 index 000000000000..e214c133f3a4 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/NormalizationTest.java @@ -0,0 +1,90 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.GTE; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class NormalizationTest { + + TimeSelector ts1 = new TimeSelector("a", TimeSelector.TimeField.TX_FROM); + TimeSelector ts2 = new TimeSelector("b", TimeSelector.TimeField.TX_TO); + + Comparison lte = new Comparison(ts1, LTE, ts2); + Comparison lt = new Comparison(ts1, LT, ts2); + Comparison eq = new Comparison(ts1, EQ, ts2); + Comparison neq = new Comparison(ts1, NEQ, ts2); + Comparison gte = new Comparison(ts1, GTE, ts2); + Comparison gt = new Comparison(ts1, GT, ts2); + + Normalization normalization = new Normalization(); + + @Test + public void singleClauseTest() { + // for GT or GTE, sides should be switched + CNF gteCNF = Util.cnfFromLists(Collections.singletonList(gte)); + CNF gteExpected = Util.cnfFromLists(Collections.singletonList(gte.switchSides())); + assertEquals(gteExpected, normalization.transformCNF(gteCNF)); + + CNF gtCNF = Util.cnfFromLists(Collections.singletonList(gt)); + CNF gtExpected = Util.cnfFromLists(Collections.singletonList(gt.switchSides())); + assertEquals(gtExpected, normalization.transformCNF(gtCNF)); + + // all other comparisons should be left unchanged + CNF eqCNF = Util.cnfFromLists(Collections.singletonList(eq)); + assertEquals(eqCNF, normalization.transformCNF(eqCNF)); + + CNF neqCNF = Util.cnfFromLists(Collections.singletonList(neq)); + assertEquals(neqCNF, normalization.transformCNF(neqCNF)); + + CNF ltCNF = Util.cnfFromLists(Collections.singletonList(lt)); + assertEquals(ltCNF, normalization.transformCNF(ltCNF)); + + CNF lteCNF = Util.cnfFromLists(Collections.singletonList(lte)); + assertEquals(lteCNF, normalization.transformCNF(lteCNF)); + } + + @Test + public void complexCNFTest() { + // input + ArrayList clause1 = new ArrayList<>(Arrays.asList(eq, gt, lte)); + ArrayList clause2 = new ArrayList<>(Arrays.asList(neq, lt)); + ArrayList clause3 = new ArrayList<>(Collections.singletonList(gte)); + CNF input = Util.cnfFromLists(clause1, clause2, clause3); + + // expected + ArrayList expectedClause1 = new ArrayList<>(Arrays.asList(eq, gt.switchSides(), lte)); + ArrayList expectedClause2 = new ArrayList<>(Arrays.asList(neq, lt)); + ArrayList expectedClause3 = new ArrayList<>(Collections.singletonList(gte.switchSides())); + CNF expected = Util.cnfFromLists(expectedClause1, expectedClause2, expectedClause3); + + assertEquals(expected, normalization.transformCNF(input)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumptionTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumptionTest.java new file mode 100644 index 000000000000..354110421c3b --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/SyntacticSubsumptionTest.java @@ -0,0 +1,124 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class SyntacticSubsumptionTest { + TimeSelector ts1 = new TimeSelector("a", TimeSelector.TimeField.TX_FROM); + TimeSelector ts2 = new TimeSelector("b", TimeSelector.TimeField.TX_TO); + + TimeLiteral tl1 = new TimeLiteral("now"); + + Comparison lte1 = new Comparison(ts1, LTE, ts2); + Comparison lt1 = new Comparison(ts1, LT, ts2); + Comparison eq = new Comparison(ts1, EQ, ts2); + Comparison neq = new Comparison(ts1, NEQ, ts2); + + Comparison withLiteral = new Comparison(ts1, LTE, tl1); + + Comparison lte2 = new Comparison(ts2, LTE, ts1); + Comparison lt2 = new Comparison(ts2, LT, ts1); + + SyntacticSubsumption subsumer = new SyntacticSubsumption(); + + @Test + public void syntacticSubsumtionTest() { + CNF cnf1 = Util.cnfFromLists( + //subsumed by (eq) + Arrays.asList(lte1, eq, lt2), + Collections.singletonList(eq), + // subsumed by (eq) + Arrays.asList(lt1, eq), + Arrays.asList(lte1, lt2) + ); + CNF expected1 = Util.cnfFromLists( + Collections.singletonList(eq), + Arrays.asList(lte1, lt2) + ); + assertEquals(expected1, subsumer.transformCNF(cnf1)); + } + + @Test + public void syntacticSubsumtionTest2() { + + CNF cnf2 = Util.cnfFromLists( + //subsumed by (eq, lt2) + Arrays.asList(lte1, eq, lt2), + Arrays.asList(eq, lt2) + ); + CNF expected2 = Util.cnfFromLists( + Arrays.asList(eq, lt2) + ); + assertEquals(expected2, subsumer.transformCNF(cnf2)); + } + + @Test + public void syntacticSubsumtionsTest3() { + // no subsumtions here + CNF cnf3 = Util.cnfFromLists( + Arrays.asList(lte1, eq, lt2), + Arrays.asList(lt1, eq) + ); + // gets resorted... + CNF expected3 = Util.cnfFromLists( + Arrays.asList(lt1, eq), + Arrays.asList(lte1, eq, lt2) + ); + assertEquals(expected3, subsumer.transformCNF(cnf3)); + } + + @Test + public void syntacticSubsumtionTest4() { + + CNF cnf4 = Util.cnfFromLists( + //subsumed by (eq, lt2) + Arrays.asList(lte1, eq, lt2, lte1), + Arrays.asList(eq, lt2, eq) + ); + CNF expected4 = Util.cnfFromLists( + Arrays.asList(eq, lt2) + ); + assertEquals(expected4, subsumer.transformCNF(cnf4)); + } + + @Test + public void syntacticSubsumtionTest5() { + + CNF cnf5 = Util.cnfFromLists( + //subsumed by (eq, lt2) + Collections.singletonList(withLiteral), + Collections.singletonList(withLiteral) + ); + CNF expected5 = Util.cnfFromLists( + Collections.singletonList(withLiteral) + ); + assertEquals(expected5, subsumer.transformCNF(cnf5)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumtionTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumtionTest.java new file mode 100644 index 000000000000..3b5270c267d8 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TemporalSubsumtionTest.java @@ -0,0 +1,242 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class TemporalSubsumtionTest { + + TimeSelector selector1 = new TimeSelector("a", TimeSelector.TimeField.TX_FROM); + TimeSelector selector2 = new TimeSelector("b", TimeSelector.TimeField.TX_TO); + + TimeLiteral lit1970a = new TimeLiteral("1970-01-01"); + TimeLiteral lit1970b = new TimeLiteral("1970-01-02"); + TimeLiteral lit2020a = new TimeLiteral("2020-05-01"); + TimeLiteral lit2020b = new TimeLiteral("2020-05-20"); + + TemporalSubsumption subsumption = new TemporalSubsumption(); + + @Test + public void temporalSubsumptionTestEQ() { + CNF cnf1 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, EQ, lit1970b)) + ); + assertEquals(cnf1, subsumption.transformCNF(cnf1)); + + CNF cnf2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, NEQ, lit1970b)) + ); + CNF expected2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)) + ); + assertEquals(expected2, subsumption.transformCNF(cnf2)); + + CNF cnf3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, LT, lit1970b)) + ); + CNF expected3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)) + ); + assertEquals(expected3, subsumption.transformCNF(cnf3)); + + CNF cnf4 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, LT, lit1970a)) + ); + assertEquals(cnf4, subsumption.transformCNF(cnf4)); + + CNF cnf5 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, LTE, lit1970b)) + ); + CNF expected5 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970a)) + ); + assertEquals(expected5, subsumption.transformCNF(cnf5)); + } + + @Test + public void temporalSubsumptionTestNEQ() { + CNF cnf1 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, NEQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, EQ, lit1970b)) + ); + CNF expected1 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970b)) + ); + assertEquals(expected1, subsumption.transformCNF(cnf1)); + + CNF cnf2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, NEQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, NEQ, lit1970b)) + ); + assertEquals(cnf2, subsumption.transformCNF(cnf2)); + + CNF cnf3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, NEQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, LTE, lit1970b)) + ); + assertEquals(cnf3, subsumption.transformCNF(cnf3)); + + CNF cnf4 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, NEQ, lit1970a)), + Collections.singletonList(new Comparison(selector1, LT, lit1970b)) + ); + assertEquals(cnf4, subsumption.transformCNF(cnf4)); + } + + @Test + public void temporalSubsumptionTestLTE() { + CNF cnf1 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)), + Collections.singletonList(new Comparison(selector1, EQ, lit1970b)) + ); + assertEquals(cnf1, subsumption.transformCNF(cnf1)); + + CNF cnf2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)), + Collections.singletonList(new Comparison(selector1, NEQ, lit1970b)) + ); + CNF expected2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)) + ); + assertEquals(expected2, subsumption.transformCNF(cnf2)); + + CNF cnf3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)), + Collections.singletonList(new Comparison(selector1, LTE, lit1970b)) + ); + CNF expected3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)) + ); + assertEquals(expected3, subsumption.transformCNF(cnf3)); + + CNF cnf4 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)), + Collections.singletonList(new Comparison(selector1, LT, lit1970b)) + ); + CNF expected4 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)) + ); + assertEquals(expected4, subsumption.transformCNF(cnf4)); + + CNF cnf5 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)), + Collections.singletonList(new Comparison(selector1, LT, lit1970a)) + ); + CNF expected5 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)) + ); + assertEquals(expected5, subsumption.transformCNF(cnf5)); + } + + @Test + public void temporalSubsumptionTestLT() { + CNF cnf1 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970b)), + Collections.singletonList(new Comparison(selector1, EQ, lit1970b)) + ); + // maybe gets resorted... + CNF expected1 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, EQ, lit1970b)), + Collections.singletonList(new Comparison(selector1, LT, lit1970b)) + ); + CNF result1 = subsumption.transformCNF(cnf1); + assertTrue(result1.equals(cnf1) || result1.equals(expected1)); + + CNF cnf2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970b)), + Collections.singletonList(new Comparison(selector1, NEQ, lit1970a)) + ); + assertEquals(cnf2, subsumption.transformCNF(cnf2)); + + CNF cnf3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)), + Collections.singletonList(new Comparison(selector1, NEQ, lit1970b)) + ); + CNF expected3 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)) + ); + assertEquals(expected3, subsumption.transformCNF(cnf3)); + + CNF cnf4 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)), + Collections.singletonList(new Comparison(selector1, LT, lit1970b)) + ); + CNF expected4 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)) + ); + assertEquals(expected4, subsumption.transformCNF(cnf4)); + + CNF cnf5 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)), + Collections.singletonList(new Comparison(selector1, LTE, lit1970a)) + ); + CNF expected5 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)) + ); + assertEquals(expected5, subsumption.transformCNF(cnf5)); + } + + @Test + public void complexSubsumptionTest() { + CNF cnf = Util.cnfFromLists( + Arrays.asList(new Comparison(selector1, LT, lit1970a), + new Comparison(selector1, NEQ, lit1970b)), + Collections.singletonList(new Comparison(selector1, LT, lit1970b)), + Collections.singletonList(new Comparison(selector1, NEQ, lit1970a)), + Arrays.asList(new Comparison(selector2, EQ, lit2020a), + new Comparison(selector2, LT, lit2020b), + new Comparison(selector1, LTE, lit2020b)) + ); + CNF expected = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)) + ); + assertEquals(expected, subsumption.transformCNF(cnf)); + + CNF cnf2 = Util.cnfFromLists( + Arrays.asList(new Comparison(selector1, LT, lit1970a), + new Comparison(selector1, NEQ, lit1970b)), + Collections.singletonList(new Comparison(selector1, LT, lit1970b)), + Collections.singletonList(new Comparison(selector1, NEQ, lit1970a)), + Arrays.asList(new Comparison(selector2, NEQ, lit2020a), + new Comparison(selector2, LT, lit2020b)) + ); + CNF expected2 = Util.cnfFromLists( + Collections.singletonList(new Comparison(selector1, LT, lit1970a)), + Arrays.asList(new Comparison(selector2, NEQ, lit2020a), + new Comparison(selector2, LT, lit2020b)) + ); + assertEquals(expected2, subsumption.transformCNF(cnf2)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictionsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictionsTest.java new file mode 100644 index 000000000000..bee315cf97f4 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialContradictionsTest.java @@ -0,0 +1,119 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.GTE; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class TrivialContradictionsTest { + + TimeSelector aTxFrom = new TimeSelector("a", TimeSelector.TimeField.TX_FROM); + TimeSelector aTxTo = new TimeSelector("a", TimeSelector.TimeField.TX_TO); + TimeSelector aValFrom = new TimeSelector("a", TimeSelector.TimeField.VAL_FROM); + TimeSelector aValTo = new TimeSelector("a", VAL_TO); + Comparison tsCont1 = new Comparison(aTxFrom, GT, aTxTo); + Comparison tsCont2 = new Comparison(aValFrom, GT, aValTo); + Comparison tsCont3 = new Comparison(aValTo, NEQ, aValTo); + Comparison tsNonCont1 = new Comparison(aTxFrom, EQ, aTxTo); + Comparison tsNonCont2 = new Comparison(aValFrom, LT, aValTo); + + TimeLiteral tl1 = new TimeLiteral("1970-01-01"); + TimeLiteral tl2 = new TimeLiteral("2020-05-23"); + Comparison tlCont1 = new Comparison(tl1, GTE, tl2); + Comparison tlCont2 = new Comparison(tl1, GT, tl2); + Comparison tlCont3 = new Comparison(tl2, NEQ, tl2); + Comparison tlCont4 = new Comparison(tl1, EQ, tl2); + Comparison tlNonCont1 = new Comparison(tl1, LT, tl2); + Comparison tlNonCont2 = new Comparison(tl2, GTE, tl1); + + Literal l1 = new Literal(1); + Literal l2 = new Literal(3); + Comparison lCont1 = new Comparison(l1, GT, l2); + Comparison lCont2 = new Comparison(l1, GTE, l2); + Comparison lCont3 = new Comparison(l2, NEQ, l2); + Comparison lCont4 = new Comparison(l1, EQ, l2); + Comparison lNonCont1 = new Comparison(l1, NEQ, l2); + Comparison lNonCont2 = new Comparison(l1, LTE, l2); + + TrivialContradictions contradictionDetector = new TrivialContradictions(); + + @Test + public void trivialContradictionsTest() throws QueryContradictoryException { + CNF cnf1 = Util.cnfFromLists( + Arrays.asList(tsCont1, lNonCont1, tsNonCont2), + Collections.singletonList(lNonCont2), + Arrays.asList(lCont1, lCont4, lNonCont2), + Arrays.asList(lCont4, lNonCont2), + Arrays.asList(tlCont1, lNonCont2), + Arrays.asList(tlNonCont2, tlCont2), + Arrays.asList(tlCont3, tsNonCont1), + Arrays.asList(tlCont4, tlNonCont1, tsCont2), + Arrays.asList(tsCont2, tsCont3, tsNonCont2), + Arrays.asList(tsCont3, tsNonCont1), + Arrays.asList(tlNonCont2, lNonCont2), + Arrays.asList(tlNonCont2, lCont1), + Arrays.asList(tlNonCont2, lCont2), + Arrays.asList(tlNonCont1, lCont3, lNonCont2) + ); + + CNF expected1 = Util.cnfFromLists( + Arrays.asList(lNonCont1, tsNonCont2), + Collections.singletonList(lNonCont2), + Collections.singletonList(lNonCont2), + Collections.singletonList(lNonCont2), + Collections.singletonList(lNonCont2), + Collections.singletonList(tlNonCont2), + Collections.singletonList(tsNonCont1), + Collections.singletonList(tlNonCont1), + Collections.singletonList(tsNonCont2), + Collections.singletonList(tsNonCont1), + Arrays.asList(tlNonCont2, lNonCont2), + Collections.singletonList(tlNonCont2), + Collections.singletonList(tlNonCont2), + Arrays.asList(tlNonCont1, lNonCont2) + ); + + assertEquals(contradictionDetector.transformCNF(cnf1), expected1); + } + + @Test(expected = QueryContradictoryException.class) + public void trivialContradictionsTest2() throws QueryContradictoryException { + // contradictory clause here -> should be null, as the whole formula is then contradictory + CNF cnf2 = Util.cnfFromLists( + Arrays.asList(tsCont1, lCont3), + Collections.singletonList(tlNonCont1) + ); + assertNull(contradictionDetector.transformCNF(cnf2)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologiesTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologiesTest.java new file mode 100644 index 000000000000..377b7b4e7259 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/TrivialTautologiesTest.java @@ -0,0 +1,103 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class TrivialTautologiesTest { + + TimeSelector aTxFrom = new TimeSelector("a", TimeSelector.TimeField.TX_FROM); + TimeSelector aTxTo = new TimeSelector("a", TimeSelector.TimeField.TX_TO); + TimeSelector aValFrom = new TimeSelector("a", TimeSelector.TimeField.VAL_FROM); + TimeSelector aValTo = new TimeSelector("a", VAL_TO); + Comparison tsTaut1 = new Comparison(aTxFrom, LTE, aTxTo); + Comparison tsTaut2 = new Comparison(aValFrom, LTE, aValTo); + Comparison tsTaut3 = new Comparison(aValTo, EQ, aValTo); + Comparison tsNonTaut1 = new Comparison(aTxFrom, NEQ, aTxTo); + Comparison tsNonTaut2 = new Comparison(aValFrom, LT, aValTo); + + TimeLiteral tl1 = new TimeLiteral("1970-01-01"); + TimeLiteral tl2 = new TimeLiteral("2020-05-23"); + Comparison tlTaut1 = new Comparison(tl1, LT, tl2); + Comparison tlTaut2 = new Comparison(tl1, LTE, tl2); + Comparison tlTaut3 = new Comparison(tl2, EQ, tl2); + Comparison tlTaut4 = new Comparison(tl1, NEQ, tl2); + Comparison tlNonTaut1 = new Comparison(tl1, EQ, tl2); + Comparison tlNonTaut2 = new Comparison(tl2, LT, tl1); + + Literal l1 = new Literal(1); + Literal l2 = new Literal(3); + Comparison lTaut1 = new Comparison(l1, LT, l2); + Comparison lTaut2 = new Comparison(l1, LTE, l2); + Comparison lTaut3 = new Comparison(l2, EQ, l2); + Comparison lTaut4 = new Comparison(l1, NEQ, l2); + Comparison lNonTaut1 = new Comparison(l1, EQ, l2); + Comparison lNonTaut2 = new Comparison(l2, LT, l1); + + TrivialTautologies tautologyDetector = new TrivialTautologies(); + + @Test + public void trivialTautologiesTest() { + CNF cnf1 = Util.cnfFromLists( + Arrays.asList(tsTaut1, lNonTaut1, tsNonTaut2), + Collections.singletonList(lNonTaut2), + Arrays.asList(lTaut1, lTaut4), + Arrays.asList(lTaut4, lNonTaut2), + Collections.singletonList(tlTaut1), + Collections.singletonList(tlTaut2), + Arrays.asList(tlTaut3, tsNonTaut1), + Arrays.asList(tlTaut4, tlNonTaut1, tsTaut2), + Arrays.asList(tsTaut2, tsTaut3), + Collections.singletonList(tsTaut3), + Arrays.asList(tlNonTaut2, lNonTaut2), + Arrays.asList(tlNonTaut2, lTaut1), + Arrays.asList(tlNonTaut2, lTaut2), + Collections.singletonList(lTaut3) + ); + + CNF expected1 = Util.cnfFromLists( + Collections.singletonList(lNonTaut2), + Arrays.asList(tlNonTaut2, lNonTaut2) + ); + + assertEquals(expected1, tautologyDetector.transformCNF(cnf1)); + + // only tautologies here + CNF cnf2 = Util.cnfFromLists( + Arrays.asList(tsTaut1, lTaut3) + ); + CNF expected2 = new CNF(); + assertEquals(expected2, tautologyDetector.transformCNF(cnf2)); + + + } + +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Util.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Util.java new file mode 100644 index 000000000000..588423ec1245 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/postprocessing/transformation/Util.java @@ -0,0 +1,49 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.transformation; + +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.ComparableTPGMFactory; +import org.gradoop.gdl.model.predicates.expressions.Comparison; + +import java.util.ArrayList; +import java.util.List; + +/** + * Utility methods for testing query transformations + */ +public class Util { + + /** + * Builds a CNF from a set of lists of comparisons + * + * @param clauses set of lists of comparisons + * @return CNF from clauses + */ + public static CNF cnfFromLists(List... clauses) { + List cnfClauses = new ArrayList<>(); + for (List comparisons : clauses) { + ArrayList wrappedComparisons = new ArrayList<>(); + for (Comparison comparison : comparisons) { + wrappedComparisons.add(new ComparisonExpression(comparison, new ComparableTPGMFactory())); + } + cnfClauses.add(new CNFElement(wrappedComparisons)); + } + return new CNF(cnfClauses); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparableTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparableTest.java new file mode 100644 index 000000000000..6b8ce68ced1a --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/DurationComparableTest.java @@ -0,0 +1,88 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.Duration; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; + +public class DurationComparableTest { + + @Test + public void testOnEmbedding() { + Embedding embedding = new Embedding(); + EmbeddingMetaData metaData = new EmbeddingMetaData(); + + embedding.addPropertyValues(PropertyValue.create(5L), PropertyValue.create(50L), + PropertyValue.create("foo"), PropertyValue.create(42L)); + metaData.setPropertyColumn("a", VAL_FROM.toString(), 0); + metaData.setPropertyColumn("a", VAL_TO.toString(), 1); + metaData.setPropertyColumn("b", VAL_TO.toString(), 3); + + TimeSelector aValFrom = new TimeSelector("a", TimeSelector.TimeField.VAL_FROM); + TimeSelector aValTo = new TimeSelector("a", VAL_TO); + TimeSelector bValTo = new TimeSelector("b", VAL_TO); + TimeLiteral l1 = new TimeLiteral("1970-01-01T00:00:00"); + + Duration aVal = new Duration(aValFrom, aValTo); + DurationComparable aValWrapper = new DurationComparable(aVal); + + assertEquals(aValWrapper.evaluate(embedding, metaData).getLong(), 45L); + + Duration d2 = new Duration(l1, bValTo); + assertEquals(new DurationComparable(d2).evaluate(embedding, metaData).getLong(), 42L); + + TimeLiteral l2 = new TimeLiteral("1970-01-01T00:00:01"); + Duration d3 = new Duration(l1, l2); + assertEquals(new DurationComparable(d3).evaluate(embedding, metaData).getLong(), 1000L); + } + + @Test + public void testOnElement() { + TemporalVertex vertex = new TemporalVertexFactory().createVertex(); + vertex.setTransactionTime(new Tuple2<>(0L, 100L)); + vertex.setValidTime(new Tuple2<>(10L, 90L)); + + TimeSelector txFrom = new TimeSelector("a", TX_FROM); + TimeSelector txTo = new TimeSelector("a", TX_TO); + Duration d1 = new Duration(txFrom, txTo); + DurationComparable wrapper1 = new DurationComparable(d1); + + assertEquals(wrapper1.evaluate(vertex).getLong(), 100L); + + MinTimePoint mn = new MinTimePoint(txTo, new TimeSelector("a", VAL_TO)); + MaxTimePoint mx = new MaxTimePoint(new TimeLiteral("1970-01-01T00:00:01"), txFrom); + + Duration d2 = new Duration(mn, mx); + DurationComparable wrapper2 = new DurationComparable(d2); + assertEquals(wrapper2.evaluate(vertex).getLong(), 910L); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparableTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparableTest.java new file mode 100644 index 000000000000..2697f3fc9517 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MaxTimePointComparableTest.java @@ -0,0 +1,95 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.MaxTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; + +public class MaxTimePointComparableTest { + + @Test + public void testMaxTimePoint() { + //----------------------------------------------- + // test data + //----------------------------------------------- + String timeString1 = "1972-02-12T13:25:03"; + Long t1 = dateStringToLong(timeString1); + TimeSelector s1 = new TimeSelector("a", TX_TO); + PropertyValue t1prop = PropertyValue.create(t1); + + String timeString2 = "2020-05-05T00:00:00"; + Long t2 = dateStringToLong(timeString2); + TimeSelector s2 = new TimeSelector("b", TX_TO); + PropertyValue t2prop = PropertyValue.create(t2); + + String timeString3 = "1970-01-03T03:04:05"; + Long t3 = dateStringToLong(timeString3); + TimeLiteral l3 = new TimeLiteral(timeString3); + + MaxTimePoint mtp = new MaxTimePoint(s1, s2, l3); + MaxTimePointComparable maxTimePoint = new MaxTimePointComparable(mtp); + PropertyValue reference = PropertyValue.create(t2); + //----------------------------------------- + // evaluate on an embedding + //----------------------------------------- + Embedding embedding = new Embedding(); + GradoopId aId = GradoopId.get(); + GradoopId bId = GradoopId.get(); + embedding.add(aId, new PropertyValue[] {t1prop}); + embedding.add(bId, new PropertyValue[] {t2prop}); + + EmbeddingMetaData metaData = new EmbeddingMetaData(); + metaData.setEntryColumn("a", EmbeddingMetaData.EntryType.VERTEX, 0); + metaData.setPropertyColumn("a", TX_TO.toString(), 0); + metaData.setEntryColumn("b", EmbeddingMetaData.EntryType.VERTEX, 1); + metaData.setPropertyColumn("b", TX_TO.toString(), 1); + + assertEquals(reference, maxTimePoint.evaluate(embedding, metaData)); + //---------------------------------------------------- + // evaluate on a GraphElement + //---------------------------------------------------- + TemporalVertex vertex = new TemporalVertexFactory().createVertex(); + vertex.setTransactionTime(new Tuple2<>(1L, t1)); + vertex.setValidTime(new Tuple2<>(1L, t2)); + + TimeSelector selector1 = new TimeSelector("a", VAL_TO); + TimeSelector selector2 = new TimeSelector("a", TX_TO); + mtp = new MaxTimePoint(selector1, selector2, l3); + maxTimePoint = new MaxTimePointComparable(mtp); + + assertEquals(reference, maxTimePoint.evaluate(vertex)); + } + + private Long dateStringToLong(String date) { + return LocalDateTime.parse(date).toInstant(ZoneOffset.ofHours(0)).toEpochMilli(); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparableTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparableTest.java new file mode 100644 index 000000000000..afadbfbe47f5 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/MinTimePointComparableTest.java @@ -0,0 +1,90 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.MinTimePoint; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; + +public class MinTimePointComparableTest { + @Test + public void testMinTimePoint() { + //----------------------------------------------- + // test data + //----------------------------------------------- + String timeString1 = "1972-02-12T13:25:03"; + Long t1 = dateStringToLong(timeString1); + TimeSelector s1 = new TimeSelector("a", TX_TO); + + String timeString2 = "2020-05-05T00:00:00"; + Long t2 = dateStringToLong(timeString2); + TimeSelector s2 = new TimeSelector("b", TX_TO); + + String timeString3 = "1970-01-03T03:04:05"; + Long t3 = dateStringToLong(timeString3); + TimeLiteral l3 = new TimeLiteral(timeString3); + + MinTimePoint mtp = new MinTimePoint(s1, s2, l3); + MinTimePointComparable minTimePoint = new MinTimePointComparable(mtp); + PropertyValue reference = PropertyValue.create(t3); + //----------------------------------------- + // evaluate on an embedding + //----------------------------------------- + Embedding embedding = new Embedding(); + embedding.add(GradoopId.get(), PropertyValue.create(t1)); + embedding.add(GradoopId.get(), PropertyValue.create(t2)); + + EmbeddingMetaData metaData = new EmbeddingMetaData(); + metaData.setEntryColumn("a", EmbeddingMetaData.EntryType.VERTEX, 0); + metaData.setPropertyColumn("a", TX_TO.toString(), 0); + metaData.setEntryColumn("b", EmbeddingMetaData.EntryType.VERTEX, 1); + metaData.setPropertyColumn("b", TX_TO.toString(), 1); + + assertEquals(reference, minTimePoint.evaluate(embedding, metaData)); + //---------------------------------------------------- + // evaluate on a GraphElement + //---------------------------------------------------- + TemporalVertex vertex = new TemporalVertexFactory().createVertex(); + vertex.setTransactionTime(new Tuple2<>(1L, t1)); + vertex.setValidTime(new Tuple2<>(1L, t2)); + + s1 = new TimeSelector("a", TX_TO); + s2 = new TimeSelector("a", VAL_TO); + mtp = new MinTimePoint(s1, s2, l3); + minTimePoint = new MinTimePointComparable(mtp); + + assertEquals(reference, minTimePoint.evaluate(vertex)); + } + + private Long dateStringToLong(String date) { + return LocalDateTime.parse(date).toInstant(ZoneOffset.ofHours(0)).toEpochMilli(); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparableTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparableTest.java new file mode 100644 index 000000000000..431b20b52b86 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeConstantComparableTest.java @@ -0,0 +1,44 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeConstant; + +import static org.junit.Assert.assertEquals; + +public class TimeConstantComparableTest { + + @Test + public void timeConstantTest() { + TimeConstant c = new TimeConstant(1000L); + TimeConstantComparable wrapper = new TimeConstantComparable(c); + + // evaluate on embedding + Embedding embedding = new Embedding(); + EmbeddingMetaData metaData = new EmbeddingMetaData(); + + assertEquals(1000L, wrapper.evaluate(embedding, metaData).getLong()); + + // evaluate on temporal element + TemporalVertex vertex = new TemporalVertexFactory().createVertex(); + assertEquals(1000L, wrapper.evaluate(vertex).getLong()); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparableTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparableTest.java new file mode 100644 index 000000000000..c63c1ac73e46 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeLiteralComparableTest.java @@ -0,0 +1,60 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +public class TimeLiteralComparableTest { + + @Test + public void testEvaluationReturnsTimeLiteral() { + //----------------------------------------------- + // test data + //----------------------------------------------- + String timeString1 = "1972-02-12T13:25:03"; + TimeLiteral literal = new TimeLiteral(timeString1); + TimeLiteralComparable wrapper = new TimeLiteralComparable(literal); + PropertyValue reference = PropertyValue.create(dateStringToLong(timeString1)); + + //------------------------------------------------ + // test on embeddings + //------------------------------------------------ + assertEquals(reference, wrapper.evaluate(new Embedding(), new EmbeddingMetaData())); + assertNotEquals(PropertyValue.create(timeString1), + wrapper.evaluate(null, null)); + //--------------------------------------------------- + // test on GraphElement + //--------------------------------------------------- + TemporalVertex vertex = new TemporalVertexFactory().createVertex(); + assertEquals(reference, wrapper.evaluate(vertex)); + } + + private Long dateStringToLong(String date) { + return LocalDateTime.parse(date).toInstant(ZoneOffset.ofHours(0)).toEpochMilli(); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparableTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparableTest.java new file mode 100644 index 000000000000..f1c9fff07f35 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/query/predicates/comparables/TimeSelectorComparableTest.java @@ -0,0 +1,117 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.query.predicates.comparables; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +import java.util.NoSuchElementException; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; + +public class TimeSelectorComparableTest { + + @Test + public void testEvaluationReturnsLongValue() { + //------------------------ + // test selector for each time field + //------------------------ + TimeSelector + selector1 = new TimeSelector("a", "tx_from"); + TimeSelectorComparable wrapper1 = new TimeSelectorComparable(selector1); + + TimeSelector + selector2 = new TimeSelector("a", "tx_to"); + TimeSelectorComparable wrapper2 = new TimeSelectorComparable(selector2); + + TimeSelector + selector3 = new TimeSelector("a", "val_from"); + TimeSelectorComparable wrapper3 = new TimeSelectorComparable(selector3); + + TimeSelector + selector4 = new TimeSelector("a", "val_to"); + TimeSelectorComparable wrapper4 = new TimeSelectorComparable(selector4); + + //----------------------------------------- + // evaluate on an embedding + //----------------------------------------- + Embedding embedding = new Embedding(); + Long txFrom = 1234L; + PropertyValue txFromValue = PropertyValue.create(txFrom); + Long txTo = 1234567L; + PropertyValue txToValue = PropertyValue.create(txTo); + Long validFrom = 987L; + PropertyValue valFromValue = PropertyValue.create(validFrom); + Long validTo = 98765L; + PropertyValue valToValue = PropertyValue.create(validTo); + embedding.add(GradoopId.get(), txFromValue, txToValue, valFromValue, valToValue); + + EmbeddingMetaData metaData = new EmbeddingMetaData(); + metaData.setEntryColumn("a", EmbeddingMetaData.EntryType.VERTEX, 0); + metaData.setPropertyColumn("a", TX_FROM.toString(), 0); + metaData.setPropertyColumn("a", TX_TO.toString(), 1); + metaData.setPropertyColumn("a", VAL_FROM.toString(), 2); + metaData.setPropertyColumn("a", VAL_TO.toString(), 3); + + assertEquals(PropertyValue.create(txFrom), wrapper1.evaluate(embedding, metaData)); + assertNotEquals(PropertyValue.create(String.valueOf(txFrom)), + wrapper1.evaluate(embedding, metaData)); + + assertEquals(PropertyValue.create(txTo), wrapper2.evaluate(embedding, metaData)); + assertEquals(PropertyValue.create(validFrom), wrapper3.evaluate(embedding, metaData)); + assertEquals(PropertyValue.create(validTo), wrapper4.evaluate(embedding, metaData)); + + //---------------------------------------------------- + // evaluate on a GraphElement + //---------------------------------------------------- + TemporalVertex vertex = new TemporalVertexFactory().createVertex(); + vertex.setTransactionTime(new Tuple2<>(txFrom, txTo)); + vertex.setValidTime(new Tuple2<>(validFrom, validTo)); + + assertEquals(PropertyValue.create(txFrom), wrapper1.evaluate(vertex)); + assertEquals(PropertyValue.create(txTo), wrapper2.evaluate(vertex)); + assertEquals(PropertyValue.create(validFrom), wrapper3.evaluate(vertex)); + assertEquals(PropertyValue.create(validTo), wrapper4.evaluate(vertex)); + } + + @Test(expected = NoSuchElementException.class) + public void testThrowErrorIfElementNotPresent() { + TimeSelector selector = new TimeSelector("a", "val_from"); + TimeSelectorComparable wrapper = new TimeSelectorComparable(selector); + + Embedding embedding = new Embedding(); + embedding.add(GradoopId.get(), PropertyValue.create(1234L), PropertyValue.create(4321L), + PropertyValue.create(6789L)); + + EmbeddingMetaData metaData = new EmbeddingMetaData(); + metaData.setEntryColumn("b", EmbeddingMetaData.EntryType.VERTEX, 0); + metaData.setPropertyColumn("b", VAL_FROM.toString(), 1); + + wrapper.evaluate(embedding, metaData).getLong(); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactoryTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactoryTest.java new file mode 100644 index 000000000000..253ac7808976 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsFactoryTest.java @@ -0,0 +1,81 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphFactory; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.TemporalElementStats; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class BinningTemporalGraphStatisticsFactoryTest extends TemporalGradoopTestBase { + + @Test + public void factoryTest() throws Exception { + Tuple2 defaultTime = new Tuple2<>(Long.MIN_VALUE, Long.MAX_VALUE); + + ArrayList vertexList = new ArrayList<>(); + String[] vertexLabels = new String[] {"v1", "v2"}; + for (int i = 0; i < 10; i++) { + TemporalVertex vertex = new TemporalVertex(); + vertex.setId(GradoopId.get()); + String label = i % 2 == 0 ? vertexLabels[0] : vertexLabels[1]; + vertex.setLabel(label); + vertexList.add(vertex); + vertex.setTransactionTime(defaultTime); + vertex.setValidTime(defaultTime); + } + + ArrayList edgeList = new ArrayList<>(); + String[] edgeLabels = new String[] {"e1", "e2"}; + for (int i = 0; i < 5; i++) { + TemporalEdge edge = new TemporalEdge(); + edge.setId(GradoopId.get()); + edge.setSourceId(vertexList.get(2 * i).getId()); + edge.setTargetId(vertexList.get(2 * i + 1).getId()); + String label = i % 2 == 0 ? edgeLabels[0] : edgeLabels[1]; + edge.setLabel(label); + edge.setTransactionTime(defaultTime); + edge.setValidTime(defaultTime); + edgeList.add(edge); + } + + TemporalGraph graph = new TemporalGraphFactory(getConfig()).fromCollections( + vertexList, edgeList + ); + BinningTemporalGraphStatistics stat = new BinningTemporalGraphStatisticsFactory() + .fromGraphWithSampling(graph, 10); + + Map edgeStats = stat.getEdgeStats(); + Map vertexStats = stat.getVertexStats(); + assertEquals(2, edgeStats.keySet().size()); + assertEquals(2, vertexStats.keySet().size()); + assertTrue(edgeStats.containsKey(edgeLabels[0])); + assertTrue(edgeStats.containsKey(edgeLabels[1])); + assertTrue(vertexStats.containsKey(vertexLabels[0])); + assertTrue(vertexStats.containsKey(vertexLabels[1])); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsTest.java new file mode 100644 index 000000000000..13464ca0386c --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/BinningTemporalGraphStatisticsTest.java @@ -0,0 +1,735 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.utils.Comparator; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + +import static org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics.ElementType.EDGE; +import static org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics.ElementType.VERTEX; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; +import static org.gradoop.gdl.utils.Comparator.EQ; +import static org.gradoop.gdl.utils.Comparator.GT; +import static org.gradoop.gdl.utils.Comparator.GTE; +import static org.gradoop.gdl.utils.Comparator.LT; +import static org.gradoop.gdl.utils.Comparator.LTE; +import static org.gradoop.gdl.utils.Comparator.NEQ; + +public class BinningTemporalGraphStatisticsTest extends TemporalGradoopTestBase { + + @Test + public void simpleComparisonTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + //tx_from of v1 equally distributed from 100L to 200L + // => 175L is part of the 76th bin + // => 24 bins are greater => should yield 0.24 + double estimation1 = stats.estimateTemporalProb(VERTEX, + Optional.of("v1"), + TimeSelector.TimeField.TX_FROM, Comparator.GT, 175L); + assertEquals(0.24, estimation1, 0.01); + + // half of the tx_to values are bounded => should yield 0.5 + double estimation2 = stats.estimateTemporalProb(VERTEX, + Optional.of("v2"), TX_TO, LT, Long.MAX_VALUE); + assertEquals(0.5, estimation2, 0.01); + + // should yield 0.99 (is in the 100th bin, 99 are smaller) + double estimation3 = stats.estimateTemporalProb(VERTEX, + Optional.of("v1"), VAL_TO, LTE, Long.MAX_VALUE); + assertEquals(.99, estimation3, 0.01); + + double estimation4 = stats.estimateTemporalProb(VERTEX, + Optional.of("v2"), VAL_FROM, GTE, 3011L); + assertEquals(.96, estimation4, 0.01); + + double estimation5 = stats.estimateTemporalProb(VERTEX, + Optional.of("v1"), TX_FROM, GTE, Long.MIN_VALUE); + assertEquals(1., estimation5, 0.01); + } + + @Test + public void comparisonWithoutLabelTest() throws Exception { + // same comparisons as above, but without label specified + BinningTemporalGraphStatistics stats = getDummyStats(); + // all v2 tx_froms are greater than 175L, thus the condition holds for about 5/8 of all vertices + double estimation1 = stats.estimateTemporalProb(VERTEX, + Optional.empty(), + TimeSelector.TimeField.TX_FROM, Comparator.GT, 175L); + assertEquals(0.615, estimation1, 0.01); + + // half of all tx_to values are bounded => should yield 0.5 + double estimation2 = stats.estimateTemporalProb(VERTEX, + Optional.empty(), TX_TO, LT, Long.MAX_VALUE); + assertEquals(0.5, estimation2, 0.01); + + // should yield 0.99 (is in the 100th of each bin, 99 are smaller) + double estimation3 = stats.estimateTemporalProb(VERTEX, + Optional.empty(), VAL_TO, LTE, Long.MAX_VALUE); + assertEquals(.99, estimation3, 0.01); + + // 0.96 for v2 (see above), 0 for v1 (estimated 0.01) => expect 0.485 + double estimation4 = stats.estimateTemporalProb(VERTEX, + Optional.empty(), VAL_FROM, GTE, 3011L); + assertEquals(.485, estimation4, 0.01); + + double estimation5 = stats.estimateTemporalProb(VERTEX, + Optional.empty(), TX_FROM, GTE, Long.MIN_VALUE); + assertEquals(1., estimation5, 0.01); + } + + @Test + public void durationComparisonTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + + //works for unbounded (values hard to estimate, as they aren't actually + // normally distributed here + // all lengths normally distributed from 0 to 100 + double estimation1 = stats.estimateDurationProb(EDGE, Optional.empty(), + EQ, false, 50L); + assertEquals(0.01, estimation1, 0.01); + double estimation2 = stats.estimateDurationProb(EDGE, Optional.of("edge"), + NEQ, true, 1000000L); + assertEquals(1., estimation2, 0.0001); + double estimation3 = stats.estimateDurationProb(EDGE, Optional.empty(), + LT, false, 75L); + assertEquals(0.75, estimation3, 0.1); + double estimation4 = stats.estimateDurationProb(EDGE, Optional.empty(), + LTE, true, 75L); + assertEquals(0.75, estimation4, 0.1); + assertTrue(estimation4 > estimation3); + double estimation5 = stats.estimateDurationProb(EDGE, Optional.of("edge"), + GT, false, 50L); + assertEquals(0.5, estimation5, 0.05); + double estimation6 = stats.estimateDurationProb(EDGE, Optional.of("edge"), + GTE, true, 50L); + assertEquals(0.5, estimation6, 0.05); + assertTrue(estimation6 > estimation5); + } + + @Test + public void complexDurationTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + //works for unbounded (values hard to estimate, as they aren't actually + // normally distributed here + // all lengths normally distributed from 0 to 100 + double estimation1 = stats.estimateDurationProb(EDGE, Optional.empty(), + false, EQ, EDGE, Optional.of("edge"), true); + assertEquals(0.01, estimation1, 0.01); + + double estimation2 = stats.estimateDurationProb(EDGE, Optional.of("edge"), true, + NEQ, EDGE, Optional.of("edge"), true); + assertEquals(1., estimation2, 0.01); + + double estimation3 = stats.estimateDurationProb(EDGE, Optional.empty(), false, + LT, EDGE, Optional.empty(), false); + assertEquals(0.5, estimation3, 0.02); + + double estimation4 = stats.estimateDurationProb(EDGE, Optional.of("edge"), + false, LTE, EDGE, Optional.empty(), false); + assertTrue(estimation4 > estimation3); + assertEquals(0.5, estimation4, 0.2); + + double estimation5 = stats.estimateDurationProb(EDGE, Optional.of("edge"), + false, GT, EDGE, Optional.of("edge"), true); + assertEquals(0.5, estimation5, 0.02); + + double estimation6 = stats.estimateDurationProb(EDGE, Optional.empty(), true, + GTE, EDGE, Optional.of("edge"), false); + assertTrue(estimation6 > estimation5); + assertEquals(0.5, estimation6, 0.02); + } + + @Test + public void estimateCategoricalTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + double estimation1 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), "catProp1", EQ, + PropertyValue.create("x")); + assertEquals(0.06, estimation1, 0.001); + double estimation2 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), "catProp1", EQ, + PropertyValue.create("y")); + assertEquals(0.34, estimation2, 0.001); + + double estimation3 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), "catProp1", NEQ, + PropertyValue.create("y")); + assertEquals(0.66, estimation3, 0.001); + + double estimation4 = stats.estimatePropertyProb(VERTEX, Optional.empty(), "catProp1", EQ, + PropertyValue.create("x")); + assertEquals(0.03, estimation4, 0.001); + + // 34 v1 nodes with property value y, 20 v2 nodes with property value y + double estimation5 = stats.estimatePropertyProb(VERTEX, Optional.empty(), "catProp1", EQ, + PropertyValue.create("y")); + assertEquals(0.27, estimation5, 0.001); + double estimation6 = stats.estimatePropertyProb(VERTEX, Optional.empty(), "catProp1", NEQ, + PropertyValue.create("y")); + assertEquals(0.73, estimation6, 0.001); + + + // unknown property and/or value + double estimation7 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + EQ, PropertyValue.create("nonsense")); + assertEquals(0.0001, estimation7, 0.0001); + double estimation8 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + NEQ, PropertyValue.create("nonsense")); + assertEquals(0.9999, estimation8, 0.0001); + double estimation9 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "unknown", + EQ, PropertyValue.create("nonsense")); + assertEquals(0.0001, estimation9, 0.0001); + double estimation10 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "unknown", + NEQ, PropertyValue.create("nonsense")); + assertEquals(0.0001, estimation10, 0.0001); + } + + @Test + public void categoricalWithExclusionTest() throws Exception { + // test with exclusion of properties + BinningTemporalGraphStatistics stats = getDummyStats(new HashSet<>(), new HashSet<>()); + // should all be 0.5, regardless if actually there + double estimation6 = stats.estimatePropertyProb(VERTEX, Optional.empty(), "catProp1", EQ, + PropertyValue.create("y")); + assertEquals(0.5, estimation6, 0.00001); + double estimation10 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "unknown", + NEQ, PropertyValue.create("nonsense")); + assertEquals(0.5, estimation10, 0.0001); + + // with partial exclusion + ArrayList includeCategorical = new ArrayList<>(Collections.singletonList("catProp1")); + BinningTemporalGraphStatistics stats2 = getDummyStats(new HashSet<>(), + new HashSet<>(includeCategorical)); + estimation6 = stats2.estimatePropertyProb(VERTEX, Optional.empty(), "catProp1", EQ, + PropertyValue.create("y")); + assertEquals(0.27, estimation6, 0.001); + estimation10 = stats2.estimatePropertyProb(VERTEX, Optional.of("v2"), "unknown", + NEQ, PropertyValue.create("nonsense")); + assertEquals(0.5, estimation10, 0.0001); + } + + @Test + public void estimateNumericalTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + // no exact estimations, as the values aren't actually normally distributed here + // <= + double estimation1 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", LTE, PropertyValue.create(50)); + assertTrue(0.2 <= estimation1 && estimation1 <= 0.3); + double estimation2 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "numProp", LTE, PropertyValue.create(50)); + assertTrue(0.12 <= estimation2 && estimation2 <= 0.18); + + // < + double estimation3 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", LT, PropertyValue.create(50)); + assertTrue(0.2 <= estimation1 && estimation1 <= 0.3); + assertTrue(estimation3 < estimation1); + + // = + double estimation4 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", EQ, PropertyValue.create(50)); + assertEquals(0., estimation4, 0.001); + + // != + double estimation5 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), + "numProp", NEQ, PropertyValue.create(50)); + // occurs only in 1/10th of the nodes + assertEquals(.1, estimation5, 0.01); + + // > + double estimation6 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", GT, PropertyValue.create(20)); + assertTrue(0.375 <= estimation6 && estimation6 <= 0.425); + double estimation7 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", GT, PropertyValue.create(-5)); + assertTrue(estimation7 >= 0.475); + double estimation8 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "numProp", GT, PropertyValue.create(105)); + assertTrue(estimation8 <= 0.025); + + // >= + double estimation9 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "numProp", GTE, PropertyValue.create(105)); + assertTrue(estimation9 <= 0.025); + assertTrue(estimation9 > estimation8); + + // unknown property -> estimation 0.0001 + double estimation10 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "unknown", GTE, PropertyValue.create(20)); + assertEquals(0.0001, estimation10, 0.001); + } + + @Test + public void numericalWithExclusion() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(new HashSet<>(), new HashSet<>()); + // should all be 0.5 + double estimation6 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", GT, PropertyValue.create(20)); + assertEquals(0.5, estimation6, 0.0001); + double estimation10 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "unknown", GTE, PropertyValue.create(20)); + assertEquals(0.5, estimation10, 0.001); + + // with partial exclusion + ArrayList includeNumerical = new ArrayList<>(Collections.singletonList("numProp")); + BinningTemporalGraphStatistics stats2 = getDummyStats(new HashSet<>(includeNumerical), new HashSet<>()); + estimation6 = stats2.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", GT, PropertyValue.create(20)); + assertTrue(0.375 <= estimation6 && estimation6 <= 0.425); + estimation10 = stats2.estimatePropertyProb(VERTEX, Optional.empty(), + "unknown", GTE, PropertyValue.create(20)); + assertEquals(0.5, estimation10, 0.001); + } + + @Test + public void estimateComplexNumericalTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + + // should yield about 1/8: + // v1 occurs in every second vertex => 1/4 of all possible v1-v1-pairs + // a comparison a>=b of two random numProp-values is expected to be true in 50% of the cases + double estimation1 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), "numProp", + GTE, VERTEX, Optional.of("v1"), "numProp"); + assertEquals(0.125, estimation1, 0.02); + + // should yield something between 0.066 and 0.1 + // 1/10 of all possible pairs match + // numProp2 is equally distributed in [0,297], numProp1 in [0,99] + double estimation2 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "numProp", + LT, VERTEX, Optional.of("v1"), "numProp2"); + assertEquals(0.083, estimation2, 0.017); + + // for estimation3 and estimation4: + // matching pairs: 0.5*0.3 = 0.15 => P(numProp2>numProp) + P(numProp2<=numProp) = ~ 0.15 + // in most cases numProp2 > numProp + double estimation3 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "numProp", + GT, VERTEX, Optional.empty(), "numProp2"); + assertEquals(0.025, estimation3, 0.01); + + double estimation4 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "numProp", + LTE, VERTEX, Optional.empty(), "numProp2"); + assertEquals(0.125, estimation4, 0.01); + + //doubling estimation4 by restricting numProp2 to v1 nodes + //doubles the result, as numProp2 exclusively occurs in v1 nodes + double estimation5 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "numProp", + LTE, VERTEX, Optional.of("v1"), "numProp2"); + assertEquals(0.25, estimation5, 0.02); + + // EQ should yield a very small quantity, NEQ a very large + double estimation6 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", + EQ, VERTEX, Optional.empty(), "numProp"); + assertEquals(0., estimation6, 0.01); + // 1/20th of all pairs match => NEQ should be near to 0.05 + double estimation7 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", + NEQ, VERTEX, Optional.of("v2"), "numProp"); + assertEquals(0.05, estimation7, 0.01); + + + double estimation8 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "unknown", + GTE, VERTEX, Optional.of("v2"), "test"); + assertEquals(0.0001, estimation8, 0.001); + double estimation9 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "unknown", + LTE, VERTEX, Optional.of("v2"), "numProp"); + assertEquals(0.0001, estimation9, 0.001); + double estimation10 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "numProp", + LT, VERTEX, Optional.of("v2"), "unknown"); + assertEquals(0.0001, estimation10, 0.001); + } + + @Test + public void complexNumericalWithExclusion() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(new HashSet<>(), new HashSet<>()); + double estimation4 = stats.estimatePropertyProb(VERTEX, Optional.empty(), + "numProp", + LTE, VERTEX, Optional.empty(), "numProp2"); + assertEquals(0.5, estimation4, 0.01); + double estimation8 = stats.estimatePropertyProb(VERTEX, Optional.of("v1"), + "unknown", + GTE, VERTEX, Optional.of("v2"), "test"); + assertEquals(0.5, estimation8, 0.001); + + // partial exclusion + ArrayList includeNumerical = new ArrayList<>(Collections.singletonList("numProp")); + BinningTemporalGraphStatistics stats2 = getDummyStats(new HashSet<>(includeNumerical), new HashSet<>()); + estimation4 = stats2.estimatePropertyProb(VERTEX, Optional.empty(), "numProp", + LTE, VERTEX, Optional.empty(), "numProp2"); + assertEquals(0.5, estimation4, 0.01); + estimation8 = stats2.estimatePropertyProb(VERTEX, Optional.of("v1"), "unknown", + GTE, VERTEX, Optional.of("v2"), "test"); + assertEquals(0.5, estimation8, 0.001); + double estimation7 = stats2.estimatePropertyProb(VERTEX, Optional.of("v1"), "numProp", + NEQ, VERTEX, Optional.of("v2"), "numProp"); + assertEquals(0.05, estimation7, 0.01); + } + + @Test + public void complexCategoricalTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + + // 34% of the v2 nodes are set to m, rest to f + // equal: 0.34²+0.66²= ~ 0.55 + double estimation1 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + EQ, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0.55, estimation1, 0.01); + + double estimation2 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + NEQ, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0.45, estimation2, 0.01); + + // 0 for comparators other than EQ and NEQ + double estimation3 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + LT, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0., estimation3, 0.001); + double estimation4 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + LTE, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0., estimation4, 0.001); + double estimation5 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + GT, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0., estimation5, 0.001); + double estimation6 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + GTE, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0., estimation6, 0.001); + + // property gender is only in v2 + double estimation7 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + EQ, VERTEX, Optional.of("v1"), "gender"); + assertEquals(0., estimation7, 0.001); + double estimation8 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + NEQ, VERTEX, Optional.of("v1"), "gender"); + assertEquals(0., estimation8, 0.001); + + double estimation9 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + EQ, VERTEX, Optional.empty(), "gender"); + assertEquals(0.275, estimation9, 0.001); + double estimation10 = stats.estimatePropertyProb(VERTEX, Optional.empty(), "gender", + EQ, VERTEX, Optional.empty(), "gender"); + assertEquals(0.1375, estimation10, 0.001); + } + + @Test + public void complexCategoricalWithExclusion() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(new HashSet<>(), new HashSet<>()); + double estimation2 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + NEQ, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0.5, estimation2, 0.01); + double estimation9 = stats.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + EQ, VERTEX, Optional.empty(), "gender"); + assertEquals(0.5, estimation9, 0.001); + + // with partial exclusion + ArrayList includeCategorical = new ArrayList<>(Collections.singletonList("gender")); + BinningTemporalGraphStatistics stats2 = getDummyStats(new HashSet<>(), + new HashSet<>(includeCategorical)); + estimation2 = stats2.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + NEQ, VERTEX, Optional.of("v2"), "gender"); + assertEquals(0.45, estimation2, 0.01); + double estimation1 = stats2.estimatePropertyProb(VERTEX, Optional.of("v2"), "gender", + EQ, VERTEX, Optional.empty(), "catProp1"); + assertEquals(0.5, estimation1, 0.01); + } + + @Test + public void complexTemporalTest() throws Exception { + // estimations are quite inaccurate + BinningTemporalGraphStatistics stats = getDummyStats(); + // about 0.25, as differences between bound values are small, but half of v2.tx_to unbound + double estimation1 = stats.estimateTemporalProb(VERTEX, Optional.of("v1"), VAL_FROM, + GTE, VERTEX, Optional.of("v2"), TX_TO); + assertEquals(0.25, estimation1, 0.025); + + // P(both unbound) = 0.25 + // P(both bound) = 0.25 + // P(lhs bound, rhs unbound) = 0.25 + // P(lhs unbound, rhs bound) = 0.25 + // P(lhs <= rhs | both bound) = 0.5 + // P(lhs <= rhs | both unbound) = 1. + // P(lhs <= rhs | lhs bound, rhs unbound) = 1. + // P(lhs <= rhs | lhs unbound, rhs bound) = 0 + // => P(lhs <= rhs) = 0.625 + double estimation2 = stats.estimateTemporalProb(VERTEX, Optional.of("v1"), VAL_TO, + LTE, VERTEX, Optional.of("v1"), VAL_TO); + assertEquals(0.625, estimation2, 0.01); + + // nearly same as above, but P(lhs< rhs | both unbound) = 0 + // => P(lhs < rhs) = P(lhs <= rhs) - 0.25 = 0.375 + double estimation3 = stats.estimateTemporalProb(VERTEX, Optional.of("v1"), VAL_TO, + LT, VERTEX, Optional.of("v1"), VAL_TO); + assertTrue(estimation3 <= estimation2); + assertEquals(0.375, estimation3, 0.01); + + // should be very similar to estimation 1 (where <= instead of < was used) + double estimation4 = stats.estimateTemporalProb(VERTEX, Optional.of("v1"), VAL_FROM, + GT, VERTEX, Optional.of("v2"), TX_TO); + assertTrue(estimation4 <= estimation1); + assertEquals(estimation1, estimation4, 0.01); + + // for both types of vertices, half of the to-values are unbound + // differences between bound values are neglectable, both types of vertices can be treated the same + // P(both unbound) = P(both bound) = P(lhs bound, rhs not) = P(lhs unbound, rhs bound) = 0.25 + // P(lhs >= rhs | both bound) = 0.5 + // P(lhs >= rhs | both unbound) = 1. + // P(lhs >= rhs | lhs, bound, rhs not) = 0. + // P(lhs >= rhs | lhs unbound, rhs bound) = 1. + // => P(lhs >= rhs) = 0.625 + double estimation5 = stats.estimateTemporalProb(VERTEX, Optional.of("v1"), VAL_TO, + GTE, VERTEX, Optional.empty(), TX_TO); + assertEquals(0.625, estimation5, 0.02); + + // P(lhs <= rhs) > 0, only if both bound (P(both bound) = 0.5) + // => P(lhs <= rhs) = 0.5^2 = 0.25 + double estimation6 = stats.estimateTemporalProb(VERTEX, Optional.empty(), TX_TO, + LTE, VERTEX, Optional.of("v2"), TX_FROM); + assertEquals(0.25, estimation6, 0.01); + + // both bound => differences between bound values neglectable + // P(lhs < rhs) = 0.5 + double estimation7 = stats.estimateTemporalProb(VERTEX, Optional.empty(), TX_FROM, + LT, VERTEX, Optional.empty(), TX_FROM); + assertEquals(0.5, estimation7, 0.01); + + // all unbound => should be slightly below 0.5 + double estimation8 = stats.estimateTemporalProb(EDGE, Optional.empty(), TX_FROM, + GT, VERTEX, Optional.of("v1"), VAL_FROM); + assertEquals(0.5, estimation8, 0.05); + + // only not the case, if both bound ((P(both bound) = 0.5). In this case, P(lhs <= rhs)=0.5 + // => P(lhs <= rhs) = 0.75 + double estimation9 = stats.estimateTemporalProb(EDGE, Optional.of("edge"), VAL_TO, + LTE, VERTEX, Optional.empty(), VAL_TO); + assertEquals(0.75, estimation9, 0.01); + + // both identical, thus P(lhs <= rhs) = 0.5 + double estimation10 = stats.estimateTemporalProb(EDGE, Optional.of("edge"), VAL_TO, + GTE, EDGE, Optional.empty(), TX_TO); + assertEquals(0.5, estimation10, 0.05); + + // EQ and NEQ + // EQ should be very small here, as edges are never unbound + double estimation11 = stats.estimateTemporalProb(VERTEX, Optional.of("v1"), VAL_TO, + EQ, EDGE, Optional.of("edge"), TX_TO); + assertEquals(0.001, estimation11, 0.001); + + // NEQ should be very high, as all val-froms are never Long.MIN_VALUE + double estimation12 = stats.estimateTemporalProb(VERTEX, Optional.empty(), VAL_FROM, + NEQ, VERTEX, Optional.of("v1"), VAL_FROM); + assertEquals(0.999, estimation12, 0.01); + + // label not there + double estimation13 = stats.estimateTemporalProb(VERTEX, Optional.empty(), VAL_FROM, + LTE, VERTEX, Optional.of("unknownLabel"), VAL_FROM); + assertEquals(0., estimation13, 0.01); + + double estimation14 = stats.estimateTemporalProb(VERTEX, Optional.of("notThere"), TX_FROM, + GT, EDGE, Optional.of("edge"), VAL_FROM); + assertEquals(0., estimation14, 0.01); + } + + @Test + public void countTest() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + long count1 = stats.getEdgeCount(); + assertEquals(100, count1); + long count2 = stats.getEdgeCount("edge"); + assertEquals(100, count2); + long count3 = stats.getEdgeCount("notThere"); + assertEquals(0, count3); + + long count4 = stats.getVertexCount(); + assertEquals(200, count4); + long count5 = stats.getVertexCount("v1"); + assertEquals(100, count5); + long count6 = stats.getVertexCount("v2"); + assertEquals(100, count6); + long count7 = stats.getVertexCount("notThere"); + assertEquals(0, count7); + + long count8 = stats.getDistinctSourceVertexCount(); + long count9 = stats.getDistinctSourceVertexCount("edge"); + assertEquals(count8, count9); + assertEquals(10, count8); + long count10 = stats.getDistinctTargetVertexCount(); + long count11 = stats.getDistinctTargetVertexCount("edge"); + assertEquals(count10, count11); + assertEquals(20, count11); + + long count12 = stats.getDistinctSourceVertexCount("notThere"); + long count13 = stats.getDistinctTargetVertexCount("notThere"); + assertEquals(count12, count13); + assertEquals(0, count12); + } + + /** + * Creates a BinningTemporalGraphStatistics object + * Vertices: + * 100 "v1" vertices: + * "catProp" = "x" (6 vertices) + * = "y" (34 vertices) + * "numProp" = 0,2,...,100 (50 vertices) + * "numProp2" = 0,3,6,...,297 (100 vertices) + * tx_from goes from 100L to 200L, val_from from 150L to 250L (100 vertices) + * tx_to goes from 300L to 350L for half of the vertices, other half is unbounded + * val_to goes from 350L to 450L for half of the vertices, other half is unbounded + *

+ * 100 "v2" vertices: + * "catProp" = "y" (20 vertices) + * "numProp" = 0,10,...,90 (10 vertices) + * "gender" = "m" (34 vertices) + * = "f" (66 vertices) + * tx_from goes from 1000L to 2000L, val_from from 3000L to 4000L (100 vertices) + * tx_to goes from 1500L to 2500L (step 20) for half of the vertices, other half is unbounded + * val_to goes from 3500L to 4500L for half of the vertices (step 20), other half is unbounded + *

+ * Edges: identical tx and val times, their length equally distributed + * from 0 to 100L + * 10 different source vertices, 20 target vertices + * + * @return dummy statistics + */ + private BinningTemporalGraphStatistics getDummyStats(Set relevantNumerical, + Set relevantCategorical) throws Exception { + ArrayList vertexList = new ArrayList<>(); + + // first type of vertex has label1 + String vLabel1 = "v1"; + // tx_from goes from 100L to 200L, val_from from 150L to 250L (100 vertices) + // tx_to goes from 300L to 350L for half of the vertices, other half is unbounded + // val_to goes from 350L to 450L for half of the vertices, other half is unbounded + int numL1Vertices = 100; + for (int i = 0; i < numL1Vertices; i++) { + TemporalVertex vertex = new TemporalVertex(); + vertex.setId(GradoopId.get()); + vertex.setLabel(vLabel1); + + vertex.setTxFrom(100L + i); + long txTo = i % 2 == 0 ? 300L + i : Long.MAX_VALUE; + vertex.setTxTo(txTo); + + vertex.setValidFrom(150L + i); + long valTo = i % 2 == 0 ? 350L + i : Long.MAX_VALUE; + vertex.setValidTo(valTo); + + // 6 nodes with property value x + if (i % 10 == 0) { + vertex.setProperty("catProp1", PropertyValue.create("x")); + } + // 34 nodes with property value y + if (i % 3 == 0) { + vertex.setProperty("catProp1", PropertyValue.create("y")); + } + + // every second node has i as a property + if (i % 2 == 0) { + vertex.setProperty("numProp", PropertyValue.create(i)); + } + + vertex.setProperty("numProp2", PropertyValue.create(3 * i)); + + vertexList.add(vertex); + } + + // first type of vertex has label1 + String vLabel2 = "v2"; + // tx_from goes from 1000L to 2000L, val_from from 3000L to 4000L (100 vertices) + // tx_to goes from 1500L to 2500L (step 20) for half of the vertices, other half is unbounded + // val_to goes from 3500L to 4500L for half of the vertices (step 20), other half is unbounded + int numL2Vertices = 100; + for (int i = 0; i < numL2Vertices; i++) { + TemporalVertex vertex = new TemporalVertex(); + vertex.setId(GradoopId.get()); + vertex.setLabel(vLabel2); + + vertex.setTxFrom(1000L + i * 10); + long txTo = i % 2 == 0 ? 1500L + i * 20 : Long.MAX_VALUE; + vertex.setTxTo(txTo); + + vertex.setValidFrom(3000L + i * 10); + long valTo = i % 2 == 0 ? 3500L + i * 20 : Long.MAX_VALUE; + vertex.setValidTo(valTo); + + if (i % 5 == 0) { + vertex.setProperty("catProp1", "y"); + } + + // every 10th node has i as property + if (i % 10 == 0) { + vertex.setProperty("numProp", PropertyValue.create(i)); + } + vertexList.add(vertex); + + if (i % 3 == 0) { + vertex.setProperty("gender", PropertyValue.create("m")); + } else { + vertex.setProperty("gender", PropertyValue.create("f")); + } + } + + //edges (only one type) + ArrayList edgeList = new ArrayList<>(); + String edgeLabel = "edge"; + int numEdges = 100; + // identical tx and val times. + // All bounded, length equally distributed from 0 to 100 + for (int i = 0; i < numEdges; i++) { + TemporalEdge edge = new TemporalEdge(); + edge.setId(GradoopId.get()); + edge.setLabel(edgeLabel); + edge.setTransactionTime(new Tuple2<>((long) i, (long) i + i)); + edge.setValidTime(edge.getTransactionTime()); + edgeList.add(edge); + edge.setSourceId(vertexList.get(i % 10).getId()); + edge.setTargetId(vertexList.get(i % 20).getId()); + } + + TemporalGraph graph = new TemporalGraphFactory(getConfig()).fromCollections( + vertexList, edgeList + ); + + return new BinningTemporalGraphStatisticsFactory() + .fromGraphWithSampling(graph, 100, relevantNumerical, relevantCategorical); + } + + // without explicitly stating the categories + private BinningTemporalGraphStatistics getDummyStats() throws Exception { + return getDummyStats(null, null); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/BinningTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/BinningTest.java new file mode 100644 index 000000000000..03449438d7db --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/BinningTest.java @@ -0,0 +1,51 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojos; + +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.Binning; +import org.junit.Test; + +import java.util.ArrayList; + +import static org.junit.Assert.assertEquals; + +public class BinningTest { + + @Test + public void simpleBinsTest() { + ArrayList input = new ArrayList<>(); + for (int i = 0; i < 300; i++) { + input.add((long) i); + } + + Binning binning = new Binning(input, 100); + Long[] bins = binning.getBins(); + assertEquals(100, bins.length); + assertEquals(Long.MIN_VALUE, (long) bins[0]); + for (int i = 1; i < 100; i++) { + assertEquals(3 * i - 1, (long) bins[i]); + } + } + + @Test(expected = IllegalArgumentException.class) + public void illegalArgumentTest() { + ArrayList input = new ArrayList<>(); + for (int i = 0; i < 142; i++) { + input.add((long) i); + } + Binning binning = new Binning(input, 100); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/ReservoirSamplerTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/ReservoirSamplerTest.java new file mode 100644 index 000000000000..2dc357553397 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/ReservoirSamplerTest.java @@ -0,0 +1,60 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojos; + +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.ReservoirSampler; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; + +public class ReservoirSamplerTest { + + @Test + public void samplerTest() { + int sampleSize = 100; + ReservoirSampler sampler = new ReservoirSampler<>(sampleSize); + ArrayList input = new ArrayList<>(); + for (int i = 0; i < 500; i++) { + input.add(i); + } + + assertTrue(sampler.updateSample(5)); + List res1 = sampler.getReservoirSample(); + assertEquals(1, res1.size()); + assertEquals(5, (int) res1.get(0)); + + sampler = new ReservoirSampler<>(sampleSize); + sampler.updateSample(input); + assertEquals(sampleSize, sampler.getSampleSize()); + assertEquals(sampler.getSampleSize(), sampler.getReservoirSample().size()); + List sample = sampler.getReservoirSample(); + for (int i = 0; i < sample.size(); i++) { + assertTrue(sample.get(i) >= 0); + assertTrue(sample.get(i) < 500); + for (int j = 0; j < sample.size(); j++) { + if (i == j) { + continue; + } + assertNotEquals(sample.get(i), sample.get(j)); + } + } + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/TemporalElementStatsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/TemporalElementStatsTest.java new file mode 100644 index 000000000000..74d225788ffa --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/common/statistics/binning/pojos/TemporalElementStatsTest.java @@ -0,0 +1,319 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojos; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.Binning; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.pojo.TemporalElementStats; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class TemporalElementStatsTest { + + @Test + public void simpleTemporalElementStatsTest() { + ArrayList input = getInputVertices(); + TemporalElementStats stats = new TemporalElementStats(5000); + for (TemporalVertex vertex : input) { + assertTrue(stats.addElement(vertex)); + } + Binning[] timeBins = stats.getEstimatedTimeBins(); + assertEquals(4, timeBins.length); + Long[] startValues = new Long[]{0L, 10000L, 1000000L, 2000000L}; + + for (int i = 0; i < 4; i++) { + Long[] bins = timeBins[i].getBins(); + assertEquals(Long.MIN_VALUE, (long) bins[0]); + for (int k = 1; k < 100; k++) { + // 50 is the default bin size + assertEquals(startValues[i] + (50 * k) - 1, (long) bins[k]); + } + } + } + + @Test + public void durationStatsTest() { + ArrayList input = getInputVertices(); + for (int i = 0; i < input.size(); i++) { + // add some distortion + // => mean of tx duration now 2.5, variance (0.5)²=0.25 + long newTxFrom = i % 2 == 0 ? 0L : 2L; + long newTxTo = i % 2 == 0 ? 3L : 4L; + // => mean of val duration now 7.5, variance (2.5²) = 6.75 + long newValFrom = i % 2 == 0 ? 0L : 5L; + long newValTo = 10L; + input.get(i).setTransactionTime(new Tuple2<>(newTxFrom, newTxTo)); + input.get(i).setValidTime(new Tuple2<>(newValFrom, newValTo)); + } + + TemporalElementStats stats = new TemporalElementStats(); + for (TemporalVertex vertex : input) { + stats.addElement(vertex); + } + + double txDurationMean = stats.getTxDurationStats()[0]; + double txDurationVariance = stats.getTxDurationStats()[1]; + assertEquals(2.5, txDurationMean, 0.001); + assertEquals(0.25, txDurationVariance, 0.001); + + double valDurationMean = stats.getValDurationStats()[0]; + double valDurationVariance = stats.getValDurationStats()[1]; + assertEquals(7.5, valDurationMean, 0.001); + assertEquals(6.25, valDurationVariance, 0.001); + } + + @Test + public void txToValToStatsTest() { + ArrayList input = getInputVertices(); + for (int i = 0; i < input.size(); i++) { + input.get(i).setTxFrom(0L); + input.get(i).setValidFrom(0L); + /* + * 1/10th of the vertices: both TOs unbounded + * 1/10th of the vertices: tx to unbounded + * 1/5th : val to unbounded + * if val to bounded, val to = 8 + * half of the unbounded tx to = 8, other half = 16 + * => mean(tx_to - val_to)(both unbounded) = 4 + * => variance(tx_to - val_to)(both unbounded) = 16 + * => P(both unbounded) = 0.8 + */ + long newTxTo = i % 10 == 0 ? Long.MAX_VALUE : + i % 2 == 0 ? 8L : 16L; + long newValTo = i % 5 == 0 ? Long.MAX_VALUE : 8L; + input.get(i).setTxTo(newTxTo); + input.get(i).setValidTo(newValTo); + } + TemporalElementStats stats = new TemporalElementStats(); + for (TemporalVertex vertex : input) { + stats.addElement(vertex); + } + } + + @Test + public void numericalPropertyTest() { + ArrayList input = getInputVertices(); + //---------------------------------------- + // ---------------- DATA ---------------- + //----------------------------------------- + + //---------------------------------------------------- + // Float values + //---------------------------------------------------- + + // 1% with float property + int numFloatDecimals = 50; + String decimalKeyFloat = "float"; + + // mean = 1.3f: half of the values have value 1.2, the other half 1.4 + // variance is then (0.1)*(0.1) = 0.01 + for (int i = 0; i < numFloatDecimals; i++) { + float value = i % 2 == 0 ? 1.2f : 1.4f; + input.get(i).setProperty(decimalKeyFloat, value); + } + double meanFloat = 1.3; + double varianceFloat = 0.01; + + //---------------------------------------------------- + // Double values + //---------------------------------------------------- + + //3 % with double property + int numDoubleDecimals = 150; + String decimalKeyDouble = "double"; + + // mean = 1.0, variance = ((0.5)^2)*2/3 = 1/6 + for (int i = 0; i < numDoubleDecimals; i = i + 3) { + input.get(i).setProperty(decimalKeyDouble, 1.0); + input.get(i + 1).setProperty(decimalKeyDouble, 1.5); + input.get(i + 2).setProperty(decimalKeyDouble, 0.5); + } + double meanDouble = 1.0; + double varianceDouble = 0.166666; + + //---------------------------------------------------- + // Integer values + //---------------------------------------------------- + + //10% with integer property + int numIntegers = 500; + String integerKey = "int"; + int[] integerValues = new int[]{1, 2, 3, 4, 5}; + + // mean = 3, variance = 0.4*(2^2) + 0.4*(1^2) = 2 + for (int i = 0; i < numIntegers; i += integerValues.length) { + for (int j = 0; j < integerValues.length; j++) { + input.get(i + j).setProperty(integerKey, integerValues[j]); + } + } + double meanInteger = 3.; + double varianceInteger = 2.; + + //---------------------------------------------------- + // Short values + //---------------------------------------------------- + + //10% with short property + int numShorts = 500; + String shortKey = "short"; + short[] shortValues = new short[]{1, 2, 3, 4, 5}; + + // mean = 3, variance = 0.4*(2^2) + 0.4*(1^2) = 2 + for (int i = 0; i < numShorts; i += shortValues.length) { + for (int j = 0; j < shortValues.length; j++) { + input.get(i + j).setProperty(shortKey, shortValues[j]); + } + } + double meanShort = 3.; + double varianceShort = 2.; + + //---------------------------------------------------- + // Long values + //---------------------------------------------------- + // 20% with long property + int numLongs = 1000; + String longKey = "long"; + + // mean = 262.5, variance = 62*5^2 = 3906.25 + for (int i = 0; i < numLongs; i++) { + long value = i % 2 == 0 ? 200 : 325; + input.get(i).setProperty(longKey, value); + } + double meanLong = 262.5; + double varianceLong = 3906.25; + + + TemporalElementStats stats = new TemporalElementStats(); + for (TemporalVertex vertex : input) { + stats.addElement(vertex); + } + + //------------------------------------------- + //--------------RESULTS-------------------- + //------------------------------------------ + Map occurence = stats.getNumericalOccurrenceEstimation(); + Map meanAndVariance = stats.getNumericalPropertyStatsEstimation(); + + assertEquals(0.01, occurence.get(decimalKeyFloat), 0.); + assertEquals(meanFloat, meanAndVariance.get(decimalKeyFloat)[0], 0.00001); + assertEquals(varianceFloat, meanAndVariance.get(decimalKeyFloat)[1], 0.00001); + + assertEquals(0.03, occurence.get(decimalKeyDouble), 0.); + assertEquals(meanDouble, meanAndVariance.get(decimalKeyDouble)[0], 0.); + assertEquals(varianceDouble, meanAndVariance.get(decimalKeyDouble)[1], 0.001); + + assertEquals(0.1, occurence.get(integerKey), 0.); + assertEquals(meanInteger, meanAndVariance.get(integerKey)[0], 0.); + assertEquals(varianceInteger, meanAndVariance.get(integerKey)[1], 0.000001); + + assertEquals(0.1, occurence.get(shortKey), 0.); + assertEquals(meanShort, meanAndVariance.get(shortKey)[0], 0.); + assertEquals(varianceShort, meanAndVariance.get(shortKey)[1], 0.000001); + + assertEquals(0.2, occurence.get(longKey), 0.); + assertEquals(meanLong, meanAndVariance.get(longKey)[0], 0.); + assertEquals(varianceLong, meanAndVariance.get(longKey)[1], 0.); + + } + + @Test + public void categoricalPropertiesTest() { + ArrayList input = getInputVertices(); + + //first property occurs in 5 nodes (0.1%) + String prop1 = "prop1"; + // one value 3 times (0.06% of all nodes), 2 further values only once (0.2% of all nodes) + PropertyValue[] prop1Values = new PropertyValue[]{PropertyValue.create("a"), + PropertyValue.create("b"), PropertyValue.create("c")}; + input.get(0).setProperty(prop1, prop1Values[0]); + input.get(1).setProperty(prop1, prop1Values[0]); + input.get(2).setProperty(prop1, prop1Values[0]); + input.get(3).setProperty(prop1, prop1Values[1]); + input.get(4).setProperty(prop1, prop1Values[2]); + double[] prop1Selectivity = new double[]{0.0006, 0.0002, 0.0002}; + + // second property occurs in 10 nodes (0.2%) + String prop2 = "prop2"; + // two values, 5 times each + PropertyValue[] prop2Values = new PropertyValue[]{PropertyValue.create("x"), + PropertyValue.create("y")}; + for (int i = 0; i < 10; i++) { + String value = i % 2 == 0 ? prop2Values[0].getString() : prop2Values[1].getString(); + input.get(i).setProperty(prop2, value); + } + double[] prop2Selectivity = new double[]{0.001, 0.001}; + + + TemporalElementStats stats = new TemporalElementStats(); + for (TemporalVertex vertex : input) { + stats.addElement(vertex); + } + Map> categoricalEstimations = + stats.getCategoricalSelectivityEstimation(); + assertEquals(2, categoricalEstimations.keySet().size()); + + // first property + Map firstProperty = categoricalEstimations.get(prop1); + assertEquals(firstProperty.keySet().size(), 3); + for (int i = 0; i < prop1Values.length; i++) { + double expected = prop1Selectivity[i]; + double actual = firstProperty.get(prop1Values[i]); + assertEquals(expected, actual, 0.0001); + } + + // second + Map secondProperty = categoricalEstimations.get(prop2); + assertEquals(secondProperty.keySet().size(), 2); + for (int i = 0; i < prop2Values.length; i++) { + double expected = prop2Selectivity[i]; + double actual = secondProperty.get(prop2Values[i]); + assertEquals(expected, actual, 0.0001); + } + } + + /** + * Generates 5000 temporal vertices. All of them have tx duration 10000L and val duration + * 1000000L + * + * @return list of temporal vertices + */ + private ArrayList getInputVertices() { + ArrayList input = new ArrayList<>(); + long txFrom = 0L; + long txTo = 10000L; + long validFrom = 1000000L; + long validTo = 2000000L; + for (int i = 0; i < 5000; i++) { + TemporalVertex vertex = new TemporalVertex(); + vertex.setLabel("test"); + vertex.setTransactionTime(new Tuple2<>(txFrom, txTo)); + vertex.setValidTime(new Tuple2<>(validFrom, validTo)); + txFrom++; + txTo++; + validFrom++; + validTo++; + input.add(vertex); + } + return input; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingHomomorphismTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingHomomorphismTest.java new file mode 100644 index 000000000000..39d4d707f75a --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingHomomorphismTest.java @@ -0,0 +1,81 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher; + +import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; +import org.gradoop.temporal.model.impl.operators.matching.BaseTemporalPatternMatchingTest; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism.*; +import org.junit.runners.Parameterized; + +import java.util.ArrayList; + +/** + * Test class for homomorphism strategy. + */ +public class TemporalPatternMatchingHomomorphismTest extends BaseTemporalPatternMatchingTest { + + /** + * Initializes a test with a data graph + * + * @param testName name of the test + * @param queryGraph the query graph as GDL-string + * @param expectedGraphVariables expected graph variables (names) as comma-separated string + * @param expectedCollection expected graph collection as comma-separated GDLs + */ + public TemporalPatternMatchingHomomorphismTest(String testName, + String queryGraph, + String expectedGraphVariables, + String expectedCollection) { + super(testName, queryGraph, expectedGraphVariables, expectedCollection); + } + + @Parameterized.Parameters(name = "{index}: {0}") + public static Iterable data() { + ArrayList data = new ArrayList<>(); + data.addAll(new HomomorphismSelectedData().getData()); + // uncomment for more tests (take ~ 10 min) + data.addAll(new HomomorphismBeforeData().getData()); + data.addAll(new HomomorphismOverlapsData().getData()); + data.addAll(new HomomorphismAfterData().getData()); + data.addAll(new HomomorphismFromToData().getData()); + data.addAll(new HomomorphismBetweenData().getData()); + data.addAll(new HomomorphismPrecedesData().getData()); + data.addAll(new HomomorphismSucceedsData().getData()); + data.addAll(new HomomorphismAsOfData().getData()); + data.addAll(new HomomorphismMergeAndJoinData().getData()); + data.addAll(new HomomorphismContainsData().getData()); + data.addAll(new HomomorphismComparisonData().getData()); + data.addAll(new HomomorphismImmediatelyPrecedesTest().getData()); + data.addAll(new HomomorphismImmediatelySucceedsTest().getData()); + data.addAll(new HomomorphismEqualsTest().getData()); + data.addAll(new HomomorphismMinMaxTest().getData()); + data.addAll(new HomomorphismLongerThanData().getData()); + data.addAll(new HomomorphismShorterThanData().getData()); + data.addAll(new HomomorphismLengthAtLeastData().getData()); + data.addAll(new HomomorphismLengthAtMostData().getData()); + data.addAll(new HomomorphismOtherData().getData()); + + return data; + } + + @Override + public CypherTemporalPatternMatching getImplementation(String queryGraph, TemporalGraphStatistics stats) { + return new CypherTemporalPatternMatching(queryGraph, true, MatchStrategy.HOMOMORPHISM, + MatchStrategy.HOMOMORPHISM, stats, new CNFPostProcessing()); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingIsomorphismTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingIsomorphismTest.java new file mode 100644 index 000000000000..56ee118130cf --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/TemporalPatternMatchingIsomorphismTest.java @@ -0,0 +1,79 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher; + +import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; +import org.gradoop.temporal.model.impl.operators.matching.BaseTemporalPatternMatchingTest; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism.*; +import org.junit.runners.Parameterized; + +import java.util.ArrayList; + +/** + * Test class for isomorphism strategy. + */ +public class TemporalPatternMatchingIsomorphismTest extends BaseTemporalPatternMatchingTest { + + /** + * initializes a test with a data graph + * + * @param testName name of the test + * @param queryGraph the query graph as GDL-string + * @param expectedGraphVariables expected graph variables (names) as comma-separated string + * @param expectedCollection expected graph collection as comma-separated GDLs + */ + public TemporalPatternMatchingIsomorphismTest(String testName, String queryGraph, + String expectedGraphVariables, String expectedCollection) { + super(testName, queryGraph, expectedGraphVariables, expectedCollection); + } + + @Parameterized.Parameters(name = "{index}: {0}") + public static Iterable data() { + ArrayList data = new ArrayList<>(); + data.addAll(new IsomorphismSelectedData().getData()); + // uncomment for more tests (take ~10 min) + data.addAll(new IsomorphismBeforeData().getData()); + data.addAll(new IsomorphismOverlapsData().getData()); + data.addAll(new IsomorphismAfterData().getData()); + data.addAll(new IsomorphismFromToData().getData()); + data.addAll(new IsomorphismBetweenData().getData()); + data.addAll(new IsomorphismPrecedesData().getData()); + data.addAll(new IsomorphismSucceedsData().getData()); + data.addAll(new IsomorphismAsOfData().getData()); + data.addAll(new IsomorphismComplexQueryData().getData()); + data.addAll(new IsomorphismContainsData().getData()); + data.addAll(new IsomorphismComparisonData().getData()); + data.addAll(new IsomorphismImmediatelyPrecedesTest().getData()); + data.addAll(new IsomorphismImmediatelySucceedsTest().getData()); + data.addAll(new IsomorphismEqualsTest().getData()); + data.addAll(new IsomorphismMinMaxTest().getData()); + data.addAll(new IsomorphismLongerThanData().getData()); + data.addAll(new IsomorphismShorterThanData().getData()); + data.addAll(new IsomorphismLengthAtLeastData().getData()); + data.addAll(new IsomorphismLengthAtMostData().getData()); + data.addAll(new IsomorphismMergeAndJoinData().getData()); + data.addAll(new IsomorphismComplexQueryData().getData()); + return data; + } + + @Override + public CypherTemporalPatternMatching getImplementation(String queryGraph, TemporalGraphStatistics stats) throws Exception { + return new CypherTemporalPatternMatching(queryGraph, true, MatchStrategy.ISOMORPHISM, + MatchStrategy.ISOMORPHISM, stats, new CNFPostProcessing()); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/BasePhysicalTPGMOperatorTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/BasePhysicalTPGMOperatorTest.java new file mode 100644 index 000000000000..d22146a082f1 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/BasePhysicalTPGMOperatorTest.java @@ -0,0 +1,45 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.operators; + +import org.gradoop.common.model.impl.properties.Properties; +import org.gradoop.flink.model.GradoopFlinkTestBase; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.exceptions.QueryContradictoryException; + +import java.util.ArrayList; +import java.util.List; + +public abstract class BasePhysicalTPGMOperatorTest extends GradoopFlinkTestBase { + + protected Properties getProperties(List propertyNames) { + Properties properties = new Properties(); + + for (String propertyName : propertyNames) { + properties.set(propertyName, propertyName); + } + + return properties; + } + + protected CNF predicateFromQuery(String query) throws QueryContradictoryException { + return new TemporalQueryHandler(query, new CNFPostProcessing(new ArrayList<>())) + .getPredicates(); + } +} + diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdgesTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdgesTest.java new file mode 100644 index 000000000000..9fda4aeb58ba --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalEdgesTest.java @@ -0,0 +1,223 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter; + +import com.google.common.collect.Lists; +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.Properties; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.BasePhysicalTPGMOperatorTest; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalEdgeFactory; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class FilterAndProjectTemporalEdgesTest extends BasePhysicalTPGMOperatorTest { + @Test + public void testFilterWithNoPredicates() throws Exception { + CNF predicates = predicateFromQuery("MATCH ()-[a]->()"); + + TemporalEdgeFactory edgeFactory = new TemporalEdgeFactory(); + Properties properties = Properties.create(); + properties.set("name", "Anton"); + TemporalEdge e1 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get(), properties); + e1.setTransactionTime(new Tuple2<>(1234L, 12345L)); + e1.setValidTime(new Tuple2<>(5678L, 56789L)); + DataSet edges = getExecutionEnvironment().fromElements(e1); + + List result = + new FilterAndProjectTemporalEdges(edges, predicates, new ArrayList<>(), false) + .evaluate() + .collect(); + + assertEquals(1, result.size()); + assertEquals(e1.getId(), result.get(0).getId(1)); + } + + @Test + public void testFilterEdgesByProperties() throws Exception { + CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.since > 2013").getSubCNF("a"); + + TemporalEdgeFactory edgeFactory = new TemporalEdgeFactory(); + Properties properties = Properties.create(); + properties.set("since", 2014); + TemporalEdge e1 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get(), properties); + e1.setTransactionTime(new Tuple2<>(1234L, 12345L)); + e1.setValidTime(new Tuple2<>(5678L, 56789L)); + + properties = Properties.create(); + properties.set("since", 2013); + TemporalEdge e2 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get(), properties); + e2.setTransactionTime(new Tuple2<>(9876L, 98765L)); + e2.setValidTime(new Tuple2<>(5432L, 54321L)); + + DataSet edges = getExecutionEnvironment().fromElements(e1, e2); + + List result = + new FilterAndProjectTemporalEdges(edges, predicates, new ArrayList<>(), false) + .evaluate() + .collect(); + + assertEquals(1, result.size()); + assertEquals(e1.getId(), result.get(0).getId(1)); + } + + @Test + public void testFilterEdgesByLabel() throws Exception { + CNF predicates = predicateFromQuery("MATCH ()-[a:likes]->()").getSubCNF("a"); + + TemporalEdgeFactory edgeFactory = new TemporalEdgeFactory(); + TemporalEdge e1 = edgeFactory.createEdge("likes", GradoopId.get(), GradoopId.get()); + e1.setTransactionTime(new Tuple2<>(1234L, 12345L)); + e1.setValidTime(new Tuple2<>(5678L, 56789L)); + TemporalEdge e2 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get()); + e2.setTransactionTime(new Tuple2<>(9876L, 98765L)); + e2.setValidTime(new Tuple2<>(5432L, 54321L)); + DataSet edges = getExecutionEnvironment().fromElements(e1, e2); + + List result = + new FilterAndProjectTemporalEdges(edges, predicates, new ArrayList<>(), false) + .evaluate() + .collect(); + + assertEquals(1, result.size()); + assertEquals(e1.getId(), result.get(0).getId(1)); + } + + @Test + public void testFilterEdgesByTime() throws Exception { + CNF predicates = predicateFromQuery( + "MATCH ()-[a]->() WHERE a.val_from.before(Timestamp(1970-01-01T00:00:01))").getSubCNF("a"); + + TemporalEdgeFactory edgeFactory = new TemporalEdgeFactory(); + // e1 does not fulfill the predicate + TemporalEdge e1 = edgeFactory.createEdge("likes", GradoopId.get(), GradoopId.get()); + e1.setTransactionTime(new Tuple2<>(1234L, 12345L)); + e1.setValidTime(new Tuple2<>(5678L, 56789L)); + // e2 fulfills the predicate + TemporalEdge e2 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get()); + e2.setTransactionTime(new Tuple2<>(9876L, 98765L)); + e2.setValidTime(new Tuple2<>(123L, 54321L)); + DataSet edges = getExecutionEnvironment().fromElements(e1, e2); + + List result = + new FilterAndProjectTemporalEdges(edges, predicates, new ArrayList<>(), false) + .evaluate() + .collect(); + + assertEquals(1, result.size()); + assertEquals(e2.getId(), result.get(0).getId(1)); + } + + @Test + public void testResultingEntryList() throws Exception { + CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.name = \"Alice\"").getSubCNF("a"); + + Properties properties = Properties.create(); + properties.set("name", "Alice"); + TemporalEdge + edge = new TemporalEdgeFactory().createEdge("Label", GradoopId.get(), GradoopId.get(), properties); + Tuple2 transactionTime = new Tuple2<>(9876L, 98765L); + Tuple2 validTime = new Tuple2<>(123L, 54321L); + edge.setTransactionTime(transactionTime); + edge.setValidTime(validTime); + + DataSet edges = getExecutionEnvironment().fromElements(edge); + + List result = + new FilterAndProjectTemporalEdges(edges, predicates, new ArrayList<>(), false) + .evaluate() + .collect(); + + assertEquals(edge.getSourceId(), result.get(0).getId(0)); + assertEquals(edge.getId(), result.get(0).getId(1)); + assertEquals(edge.getTargetId(), result.get(0).getId(2)); + assertEquals(edge.getValidTime(), validTime); + assertEquals(edge.getTransactionTime(), transactionTime); + } + + @Test + public void testProjectionOfAvailableValues() throws Exception { + CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.name = \"Alice\"").getSubCNF("a"); + + Properties properties = Properties.create(); + properties.set("name", "Alice"); + TemporalEdge + edge = new TemporalEdgeFactory().createEdge("Label", GradoopId.get(), GradoopId.get(), properties); + edge.setTransactionTime(new Tuple2<>(9876L, 98765L)); + edge.setValidTime(new Tuple2<>(123L, 54321L)); + + DataSet edges = getExecutionEnvironment().fromElements(edge); + + List projectionPropertyKeys = Lists.newArrayList("name"); + + Embedding result = new FilterAndProjectTemporalEdges(edges, predicates, projectionPropertyKeys, false) + .evaluate().collect().get(0); + + assertEquals(PropertyValue.create("Alice"), result.getProperty(0)); + } + + @Test + public void testProjectionOfMissingValues() throws Exception { + CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.name = \"Alice\"").getSubCNF("a"); + + Properties properties = Properties.create(); + properties.set("name", "Alice"); + TemporalEdge + edge = new TemporalEdgeFactory().createEdge("Label", GradoopId.get(), GradoopId.get(), properties); + edge.setTransactionTime(new Tuple2<>(9876L, 98765L)); + edge.setValidTime(new Tuple2<>(123L, 54321L)); + + DataSet edges = getExecutionEnvironment().fromElements(edge); + + List projectionPropertyKeys = Lists.newArrayList("name", "since"); + + Embedding result = new FilterAndProjectTemporalEdges(edges, predicates, projectionPropertyKeys, false) + .evaluate().collect().get(0); + + assertEquals(PropertyValue.create("Alice"), result.getProperty(0)); + assertEquals(PropertyValue.NULL_VALUE, result.getProperty(1)); + } + + @Test + public void testProjectLoop() throws Exception { + CNF predicates = predicateFromQuery("MATCH (a)-[b]->(a)"); + + GradoopId a = GradoopId.get(); + TemporalEdge edge = new TemporalEdgeFactory().createEdge(a, a); + edge.setTransactionTime(new Tuple2<>(9876L, 98765L)); + edge.setValidTime(new Tuple2<>(123L, 54321L)); + + DataSet edges = getExecutionEnvironment().fromElements(edge); + + Embedding result = new FilterAndProjectTemporalEdges(edges, predicates, Collections.emptyList(), true) + .evaluate().collect().get(0); + + assertEquals(2, result.size()); + assertEquals(a, result.getId(0)); + assertEquals(edge.getId(), result.getId(1)); + } +} + diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVerticesTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVerticesTest.java new file mode 100644 index 000000000000..56e20eb734c0 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/operators/filter/FilterAndProjectTemporalVerticesTest.java @@ -0,0 +1,184 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.filter; + +import com.google.common.collect.Lists; +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.io.LocalCollectionOutputFormat; +import org.apache.flink.api.java.operators.DataSource; +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.properties.Properties; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.operators.BasePhysicalTPGMOperatorTest; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class FilterAndProjectTemporalVerticesTest extends BasePhysicalTPGMOperatorTest { + + @Test + public void testFilterWithNoPredicates() throws Exception { + CNF predicates = predicateFromQuery("MATCH (a)"); + + Properties properties = Properties.create(); + properties.set("name", "Anton"); + TemporalVertex v = new TemporalVertexFactory().createVertex("Person", properties); + v.setTransactionTime(new Tuple2<>(123L, 1234L)); + v.setValidTime(new Tuple2<>(678L, 6789L)); + DataSet vertices = getExecutionEnvironment().fromElements(v); + + FilterAndProjectTemporalVertices filter = + new FilterAndProjectTemporalVertices(vertices, predicates, new ArrayList<>()); + + assertEquals(1, filter.evaluate().count()); + } + + @Test + public void testFilterVerticesByProperties() throws Exception { + CNF predicates = predicateFromQuery("MATCH (a) WHERE a.name = \"Alice\""); + + TemporalVertexFactory vertexFactory = new TemporalVertexFactory(); + Properties properties = Properties.create(); + properties.set("name", "Alice"); + TemporalVertex v1 = vertexFactory.createVertex("Person", properties); + v1.setTransactionTime(new Tuple2<>(123L, 1234L)); + v1.setValidTime(new Tuple2<>(678L, 6789L)); + properties = Properties.create(); + properties.set("name", "Bob"); + TemporalVertex v2 = vertexFactory.createVertex("Person", properties); + v2.setTransactionTime(new Tuple2<>(123L, 1234L)); + v2.setValidTime(new Tuple2<>(678L, 6789L)); + + DataSet vertices = getExecutionEnvironment().fromElements(v1, v2); + + List result = new ArrayList<>(); + + new FilterAndProjectTemporalVertices(vertices, predicates, new ArrayList<>()).evaluate() + .output(new LocalCollectionOutputFormat<>(result)); + getExecutionEnvironment().execute(); + + assertEquals(1, result.size()); + assertEquals(v1.getId(), result.get(0).getId(0)); + } + + @Test + public void testFilterVerticesByLabel() throws Exception { + CNF predicates = predicateFromQuery("MATCH (a:Person)"); + + TemporalVertexFactory vertexFactory = new TemporalVertexFactory(); + TemporalVertex v1 = vertexFactory.createVertex("Person"); + v1.setTransactionTime(new Tuple2<>(123L, 1234L)); + v1.setValidTime(new Tuple2<>(678L, 6789L)); + TemporalVertex v2 = vertexFactory.createVertex("Forum"); + v2.setTransactionTime(new Tuple2<>(123L, 1234L)); + v2.setValidTime(new Tuple2<>(678L, 6789L)); + DataSet vertices = getExecutionEnvironment().fromElements(v1, v2); + + List result = new ArrayList<>(); + + new FilterAndProjectTemporalVertices(vertices, predicates, new ArrayList<>()).evaluate() + .output(new LocalCollectionOutputFormat<>(result)); + getExecutionEnvironment().execute(); + + assertEquals(1, result.size()); + assertEquals(v1.getId(), result.get(0).getId(0)); + } + + @Test + public void testFilterVerticesByTime() throws Exception { + CNF predicates = predicateFromQuery( + "MATCH (a:Person) WHERE a.tx_to.after(Timestamp(1970-01-01T00:01:00))").getSubCNF("a"); + + TemporalVertexFactory vertexFactory = new TemporalVertexFactory(); + // v1 fulfills the predicate + TemporalVertex v1 = vertexFactory.createVertex("Person"); + v1.setTransactionTime(new Tuple2<>(0L, 10000000L)); + v1.setValidTime(new Tuple2<>(678L, 6789L)); + // v2 does not fulfill the predicate + TemporalVertex v2 = vertexFactory.createVertex("Forum"); + v2.setTransactionTime(new Tuple2<>(123L, 1234L)); + v2.setValidTime(new Tuple2<>(678L, 6789L)); + DataSet vertices = getExecutionEnvironment().fromElements(v1, v2); + + List result = new ArrayList<>(); + + new FilterAndProjectTemporalVertices(vertices, predicates, new ArrayList<>()).evaluate() + .output(new LocalCollectionOutputFormat<>(result)); + getExecutionEnvironment().execute(); + + assertEquals(1, result.size()); + assertEquals(v1.getId(), result.get(0).getId(0)); + } + + @Test + public void testProjectionOfAvailableValues() throws Exception { + CNF predicates = predicateFromQuery("MATCH (a:Person) WHERE a.name = \"Alice\""); + + Properties properties = Properties.create(); + properties.set("name", "Alice"); + TemporalVertex person = new TemporalVertexFactory().createVertex("Person", properties); + person.setTransactionTime(new Tuple2<>(123L, 1234L)); + person.setValidTime(new Tuple2<>(678L, 6789L)); + DataSet vertices = getExecutionEnvironment().fromElements(person); + + List projectionPropertyKeys = Lists.newArrayList("name"); + + List results = new ArrayList<>(); + + new FilterAndProjectTemporalVertices(vertices, predicates, projectionPropertyKeys).evaluate() + .output(new LocalCollectionOutputFormat<>(results)); + getExecutionEnvironment().execute(); + + Embedding result = results.get(0); + + assertEquals(person.getId(), result.getId(0)); + assertEquals(person.getId(), result.getId(0)); + assertEquals(PropertyValue.create("Alice"), result.getProperty(0)); + } + + @Test + public void testProjectionOfMissingValues() throws Exception { + CNF predicates = predicateFromQuery("MATCH (a) WHERE a.name = \"Alice\""); + + Properties properties = Properties.create(); + properties.set("name", "Alice"); + TemporalVertex person = new TemporalVertexFactory().createVertex("Person", properties); + person.setTransactionTime(new Tuple2<>(123L, 1234L)); + person.setValidTime(new Tuple2<>(678L, 6789L)); + DataSource vertices = getExecutionEnvironment().fromElements(person); + + List projectionPropertyKeys = Lists.newArrayList("name", "age"); + + List results = new ArrayList<>(); + + new FilterAndProjectTemporalVertices(vertices, predicates, projectionPropertyKeys).evaluate() + .output(new LocalCollectionOutputFormat<>(results)); + getExecutionEnvironment().execute(); + + Embedding result = results.get(0); + + assertEquals(person.getId(), result.getId(0)); + assertEquals(PropertyValue.create("Alice"), result.getProperty(0)); + assertEquals(PropertyValue.NULL_VALUE, result.getProperty(1)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimationTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimationTest.java new file mode 100644 index 000000000000..4ab83c59ff4a --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/CNFEstimationTest.java @@ -0,0 +1,542 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNFElement; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.expressions.ComparisonExpression; +import org.gradoop.gdl.model.comparables.Literal; +import org.gradoop.gdl.model.comparables.PropertySelector; +import org.gradoop.gdl.model.comparables.time.Duration; +import org.gradoop.gdl.model.comparables.time.TimeConstant; +import org.gradoop.gdl.model.comparables.time.TimeLiteral; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.gdl.model.predicates.expressions.Comparison; +import org.gradoop.temporal.model.impl.TemporalGraph; +import org.gradoop.temporal.model.impl.TemporalGraphFactory; +import org.gradoop.temporal.model.impl.operators.matching.common.query.predicates.ComparableTPGMFactory; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.BinningTemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.BinningTemporalGraphStatisticsFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; + +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.*; +import static org.gradoop.gdl.utils.Comparator.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +/** + * Tests the {@link CNFEstimation}. + */ +public class CNFEstimationTest extends TemporalGradoopTestBase { + + final TimeSelector aTxFrom = new TimeSelector("a", TX_FROM); + final TimeSelector aTxTo = new TimeSelector("a", TX_TO); + final TimeSelector aValFrom = new TimeSelector("a", VAL_FROM); + final TimeSelector aValTo = new TimeSelector("a", VAL_TO); + + final TimeSelector bTxFrom = new TimeSelector("b", TX_FROM); + final TimeSelector bTxTo = new TimeSelector("b", TX_TO); + final TimeSelector cTxTo = new TimeSelector("c", TX_TO); + final Duration eValDuration = new Duration(new TimeSelector("e", VAL_FROM), new TimeSelector("e", VAL_TO)); + final Duration eTxDuration = new Duration(new TimeSelector("e", TX_FROM), new TimeSelector("e", TX_TO)); + final Duration fValDuration = new Duration(new TimeSelector("f", VAL_FROM), new TimeSelector("f", VAL_TO)); + + + @Test + public void timeSelectorComparisonTest() throws Exception { + CNFEstimation estimator = getEstimator(); + + //tx_from of v1 equally distributed from 100L to 200L + // => 175L is part of the 76th bin + // => 24 bins are greater => should yield 0.24 + Comparison comp1 = new Comparison(aTxFrom, GT, new TimeLiteral(175L)); + CNFElement e1 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp1, new ComparableTPGMFactory()))); + CNF cnf1 = new CNF(Collections.singletonList(e1)); + double estimation1 = estimator.estimateCNF(cnf1); + assertEquals(0.24, estimation1, 0.01); + // does the cache work? + double estimation1Cached = estimator.estimateCNF(cnf1); + assertEquals(estimation1, estimation1Cached, .0); + + // switch sides + Comparison comp2 = new Comparison(new TimeLiteral(175L), LT, aTxFrom); + CNFElement e2 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp2, new ComparableTPGMFactory()))); + CNF cnf2 = new CNF(Collections.singletonList(e2)); + double estimation2 = estimator.estimateCNF(cnf2); + assertEquals(estimation1, estimation2, 0.); + + // comparisons where lhs and rhs are both selectors are estimated to 1. + // (no matter how much sense they make) + Comparison comp3 = new Comparison(aTxTo, EQ, aTxFrom); + CNFElement e3 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp3, new ComparableTPGMFactory()))); + CNF cnf3 = new CNF(Collections.singletonList(e3)); + double estimation3 = estimator.estimateCNF(cnf3); + assertEquals(1., estimation3, 0.00001); + } + + @Test + public void durationComparisonTest() throws Exception { + CNFEstimation estimator = getEstimator(); + + // durations are equally distributed from 0 to 100 + Comparison comp1 = new Comparison(eTxDuration, GT, new TimeConstant(10)); + CNFElement e1 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp1, new ComparableTPGMFactory()))); + CNF cnf1 = new CNF(Collections.singletonList(e1)); + double estimation1 = estimator.estimateCNF(cnf1); + assertEquals(0.9, estimation1, 0.03); + + // switch sides + Comparison comp2 = new Comparison(new TimeConstant(10), LT, eValDuration); + CNFElement e2 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp2, new ComparableTPGMFactory()))); + CNF cnf2 = new CNF(Collections.singletonList(e2)); + double estimation2 = estimator.estimateCNF(cnf2); + assertEquals(estimation1, estimation2, 0.); + + // durations that do not compare tx_from / val_duration with a constant + // are evaluated to, i.e. neglected in the estimation + Comparison comp3 = new Comparison(eTxDuration, LT, eValDuration); + CNFElement e3 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp3, new ComparableTPGMFactory()))); + CNF cnf3 = new CNF(Collections.singletonList(e3)); + double estimation3 = estimator.estimateCNF(cnf3); + assertEquals(1., estimation3, 0.0001); + + Comparison comp4 = new Comparison(new Duration( + new TimeSelector("e", TX_FROM), + new TimeLiteral("2020-05-01")), + LT, new TimeConstant(20L)); + CNFElement e4 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp4, new ComparableTPGMFactory()))); + CNF cnf4 = new CNF(Collections.singletonList(e4)); + double estimation4 = estimator.estimateCNF(cnf4); + assertEquals(1., estimation4, 0.0001); + } + + @Test + public void complexDurationComparisonTest() throws Exception { + CNFEstimation estimator = getEstimator(); + + Comparison comp1 = new Comparison(eTxDuration, LTE, fValDuration); + CNFElement e1 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp1, new ComparableTPGMFactory()))); + CNF cnf1 = new CNF(Collections.singletonList(e1)); + double estimation1 = estimator.estimateCNF(cnf1); + assertEquals(0.5, estimation1, 0.02); + + Comparison comp2 = new Comparison(eTxDuration, EQ, fValDuration); + CNFElement e2 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp2, new ComparableTPGMFactory()))); + CNF cnf2 = new CNF(Collections.singletonList(e2)); + double estimation2 = estimator.estimateCNF(cnf2); + assertEquals(0., estimation2, 0.01); + + Comparison comp3 = new Comparison(eTxDuration, LT, fValDuration); + CNFElement e3 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp3, new ComparableTPGMFactory()))); + CNF cnf3 = new CNF(Collections.singletonList(e3)); + double estimation3 = estimator.estimateCNF(cnf3); + assertEquals(0.5, estimation3, 0.02); + assertTrue(estimation3 < estimation1); + } + + @Test + public void propertyComparisonTest() throws Exception { + CNFEstimation estimator = getEstimator(); + + // categorical + Comparison comp1 = new Comparison( + new PropertySelector("a", "catProp1"), + EQ, + new Literal("x") + ); + CNFElement e1 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp1, new ComparableTPGMFactory()))); + CNF cnf1 = new CNF(Collections.singletonList(e1)); + double estimation1 = estimator.estimateCNF(cnf1); + assertEquals(0.06, estimation1, 0.001); + // sides switched + Comparison comp2 = new Comparison( + new Literal("x"), + EQ, + new PropertySelector("a", "catProp1") + ); + CNFElement e2 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp2, new ComparableTPGMFactory()))); + CNF cnf2 = new CNF(Collections.singletonList(e2)); + double estimation2 = estimator.estimateCNF(cnf2); + assertEquals(0.06, estimation2, 0.001); + + // numerical + Comparison comp3 = new Comparison( + new PropertySelector("c", "numProp"), + LTE, + new Literal(50) + ); + CNFElement e3 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp3, new ComparableTPGMFactory()))); + CNF cnf3 = new CNF(Collections.singletonList(e3)); + double estimation3 = estimator.estimateCNF(cnf3); + assertEquals(0.15, estimation3, 0.02); + // switched sides + Comparison comp4 = new Comparison( + new Literal(50), + GTE, + new PropertySelector("c", "numProp") + ); + CNFElement e4 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp4, new ComparableTPGMFactory()))); + CNF cnf4 = new CNF(Collections.singletonList(e4)); + double estimation4 = estimator.estimateCNF(cnf4); + assertEquals(estimation3, estimation4, 0.); + } + + @Test + public void complexPropertyComparisonTest() throws Exception { + // property selector vs property selector + CNFEstimation estimator = getEstimator(); + + // categorical + Comparison comp1 = new Comparison( + new PropertySelector("b", "gender"), + EQ, + new PropertySelector("b", "gender") + ); + CNFElement e1 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp1, new ComparableTPGMFactory()))); + CNF cnf1 = new CNF(Collections.singletonList(e1)); + double estimation1 = estimator.estimateCNF(cnf1); + // (2/3)² * (1/3)² + assertEquals(0.55, estimation1, 0.01); + + + // numerical + Comparison comp2 = new Comparison( + new PropertySelector("a", "numProp"), + GTE, + new PropertySelector("b", "numProp") + ); + CNFElement e2 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp2, new ComparableTPGMFactory()))); + CNF cnf2 = new CNF(Collections.singletonList(e2)); + double estimation2 = estimator.estimateCNF(cnf2); + // occurrences of numProp * prob(a.numProb >= b.numProb) + // = (1/2)*(1/10) * (1/2) = 0.025 + assertEquals(0.025, estimation2, 0.01); + // switch sides + Comparison comp3 = new Comparison( + new PropertySelector("b", "numProp"), + LT, + new PropertySelector("a", "numProp") + ); + CNFElement e3 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp3, new ComparableTPGMFactory()))); + CNF cnf3 = new CNF(Collections.singletonList(e3)); + double estimation3 = estimator.estimateCNF(cnf3); + assertEquals(estimation2, estimation3, 0.01); + } + + @Test + public void complexLiteralComparisonTest() throws Exception { + CNFEstimation estimator = getEstimator(); + + // cf. BinningTemporalGraphStatisticsTest + + Comparison comp1 = new Comparison(aValFrom, GTE, bTxTo); + CNFElement e1 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp1, new ComparableTPGMFactory()))); + double estimation1 = estimator.estimateCNF(new CNF(Collections.singletonList(e1))); + assertEquals(0.25, estimation1, 0.025); + + Comparison comp2 = new Comparison(aValTo, LT, cTxTo); + CNFElement e2 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp2, new ComparableTPGMFactory()))); + double estimation2 = estimator.estimateCNF(new CNF(Collections.singletonList(e2))); + assertEquals(0.375, estimation2, 0.1); + + Comparison comp3 = new Comparison(cTxTo, LTE, bTxFrom); + CNFElement e3 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp3, new ComparableTPGMFactory()))); + double estimation3 = estimator.estimateCNF(new CNF(Collections.singletonList(e3))); + assertEquals(0.25, estimation3, 0.05); + } + + @Test + public void conjunctionTest() throws Exception { + CNFEstimation estimator = getEstimator(); + // ~0.9 + Comparison comp1 = new Comparison(eTxDuration, GT, new TimeConstant(10)); + CNFElement e1 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp1, new ComparableTPGMFactory()))); + // ~0.125 + Comparison comp2 = new Comparison( + new PropertySelector("a", "numProp"), + GTE, + new PropertySelector("a", "numProp") + ); + CNFElement e2 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp2, new ComparableTPGMFactory()))); + // 1. + Comparison comp3 = new Comparison(eTxDuration, LT, eValDuration); + CNFElement e3 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp3, new ComparableTPGMFactory()))); + // ~0.15 + Comparison comp4 = new Comparison( + new Literal(50), + GTE, + new PropertySelector("c", "numProp") + ); + CNFElement e4 = + new CNFElement(Collections.singletonList(new ComparisonExpression(comp4, new ComparableTPGMFactory()))); + + //0.9*0.125*0.15 + CNF cnf1 = new CNF(Arrays.asList(e1, e2, e4)); + double estimation1 = estimator.estimateCNF(cnf1); + assertEquals(0.017, estimation1, 0.002); + + CNF cnf2 = new CNF(Arrays.asList(e1, e2, e3, e4)); + double estimation2 = estimator.estimateCNF(cnf2); + assertEquals(0.017, estimation2, 0.002); + + //0.9 * 0.125 + CNF cnf3 = new CNF(Arrays.asList(e1, e2)); + double estimation3 = estimator.estimateCNF(cnf3); + assertEquals(0.1125, estimation3, 0.01); + } + + @Test + public void disjunctionTest() throws Exception { + CNFEstimation estimator = getEstimator(); + // ~0.9 (a) + Comparison comp1 = new Comparison(eTxDuration, GT, new TimeConstant(10)); + ComparisonExpression c1 = new ComparisonExpression(comp1, new ComparableTPGMFactory()); + // ~0.125 (b) + Comparison comp2 = new Comparison( + new PropertySelector("a", "numProp"), + GTE, + new PropertySelector("a", "numProp") + ); + ComparisonExpression c2 = new ComparisonExpression(comp2, new ComparableTPGMFactory()); + // 1. (c) + Comparison comp3 = new Comparison(eTxDuration, LT, eValDuration); + ComparisonExpression c3 = new ComparisonExpression(comp3, new ComparableTPGMFactory()); + // ~0.15 (d) + Comparison comp4 = new Comparison( + new Literal(50), + GTE, + new PropertySelector("c", "numProp") + ); + ComparisonExpression c4 = new ComparisonExpression(comp4, new ComparableTPGMFactory()); + + // (a) OR (b) = P(a)+P(b)-P(a)*P(b) = 0.9+0.125 - 0.9*0.125 = 0.9125 + CNFElement e1 = new CNFElement(Arrays.asList(c1, c2)); + CNF cnf1 = new CNF(Collections.singletonList(e1)); + double estimation1 = estimator.estimateCNF(cnf1); + assertEquals(0.9125, estimation1, 0.02); + + // (a) OR (b) OR (d) + // = P(a) + P(b) + P(d) - P(a)*P(b) - P(a)*P(d) - P(b)*P(d) + P(a)*P(b)*P(d) + // = 0.9+0.125+0.15 - 0.9*0.125 - 0.9*0.15 - 0.125*0.15 + 0.9*0.125*0.15 + // = 0.925625 + CNFElement e2 = new CNFElement(Arrays.asList(c1, c2, c4)); + CNF cnf2 = new CNF(Collections.singletonList(e2)); + double estimation2 = estimator.estimateCNF(cnf2); + assertEquals(0.925, estimation2, 0.02); + + // (a) OR (b) OR (c) = 1 + CNFElement e3 = new CNFElement(Arrays.asList(c1, c2, c3)); + CNF cnf3 = new CNF(Collections.singletonList(e3)); + double estimation3 = estimator.estimateCNF(cnf3); + assertEquals(1., estimation3, 0.01); + + // conjunction of disjunctions + // independence assumption, should thus be ~ 0.9125*0.925*1. = 0.844 + CNF cnf4 = new CNF(Arrays.asList(e2, e1, e3)); + double estimation4 = estimator.estimateCNF(cnf4); + assertEquals(0.84, estimation4, 0.03); + + // check reordering of cnf4: sequence should be e1, e2, e3 + CNFElement e2Reordered = new CNFElement(Arrays.asList(c1, c4, c2)); + CNFElement e3Reordered = new CNFElement(Arrays.asList(c3, c1, c2)); + CNF cnf4Reordered = new CNF(Arrays.asList(e1, e2Reordered, e3Reordered)); + assertEquals(cnf4Reordered, estimator.reorderCNF(cnf4)); + } + + /** + * Creates a CNFEstimation over a test graph (see {@link this::getDummyStats}. + * Variable to label mapping: "a"->"v1", "b"->"v2", e->"edge" + * Variable to type mapping "a"->VERTEX, "b"->VERTEX, "c"->VERTEX, "e"->EDGE + * ("c" has no label specified) + * + * @return CNFEstimation object + */ + private CNFEstimation getEstimator() throws Exception { + BinningTemporalGraphStatistics stats = getDummyStats(); + + HashMap labelMap = new HashMap<>(); + labelMap.put("a", "v1"); + labelMap.put("b", "v2"); + labelMap.put("e", "edge"); + + HashMap typeMap = new HashMap<>(); + typeMap.put("a", TemporalGraphStatistics.ElementType.VERTEX); + typeMap.put("b", TemporalGraphStatistics.ElementType.VERTEX); + typeMap.put("c", TemporalGraphStatistics.ElementType.VERTEX); + typeMap.put("e", TemporalGraphStatistics.ElementType.EDGE); + + return new CNFEstimation(stats, typeMap, labelMap); + } + + /** + * Creates a BinningTemporalGraphStatistics object + * Vertices: + * 100 "v1" vertices: + * "catProp" = "x" (6 vertices) + * = "y" (34 vertices) + * "numProp" = 0,2,...,100 (50 vertices) + * "numProp2" = 0,3,6,...,297 (100 vertices) + * tx_from goes from 100L to 200L, val_from from 150L to 250L (100 vertices) + * tx_to goes from 300L to 350L for half of the vertices, other half is unbounded + * val_to goes from 350L to 450L for half of the vertices, other half is unbounded + *

+ * 100 "v2" vertices: + * "catProp" = "y" (20 vertices) + * "numProp" = 0,10,...,90 (10 vertices) + * "gender" = "m" (34 vertices) + * = "f" (66 vertices) + * tx_from goes from 1000L to 2000L, val_from from 3000L to 4000L (100 vertices) + * tx_to goes from 1500L to 2500L (step 20) for half of the vertices, other half is unbounded + * val_to goes from 3500L to 4500L for half of the vertices (step 20), other half is unbounded + *

+ * Edges: identical tx and val times, their length equally distributed + * from 0 to 100L + * + * @return dummy statistics + * @throws Exception if anything flink-related goes wrong + */ + private BinningTemporalGraphStatistics getDummyStats() throws Exception { + ArrayList vertexList = new ArrayList<>(); + + // first type of vertex has label1 + String vLabel1 = "v1"; + // tx_from goes from 100L to 200L, val_from from 150L to 250L (100 vertices) + // tx_to goes from 300L to 350L for half of the vertices, other half is unbounded + // val_to goes from 350L to 450L for half of the vertices, other half is unbounded + int numL1Vertices = 100; + for (int i = 0; i < numL1Vertices; i++) { + TemporalVertex vertex = new TemporalVertex(); + vertex.setId(GradoopId.get()); + vertex.setLabel(vLabel1); + + vertex.setTxFrom(100L + i); + long txTo = i % 2 == 0 ? 300L + i : Long.MAX_VALUE; + vertex.setTxTo(txTo); + + vertex.setValidFrom(150L + i); + long valTo = i % 2 == 0 ? 350L + i : Long.MAX_VALUE; + vertex.setValidTo(valTo); + + // 6 nodes with property value x + if (i % 10 == 0) { + vertex.setProperty("catProp1", PropertyValue.create("x")); + } + // 34 nodes with property value y + if (i % 3 == 0) { + vertex.setProperty("catProp1", PropertyValue.create("y")); + } + + // every second node has i as a property + if (i % 2 == 0) { + vertex.setProperty("numProp", PropertyValue.create(i)); + } + + vertex.setProperty("numProp2", PropertyValue.create(3 * i)); + + vertexList.add(vertex); + } + + // first type of vertex has label1 + String vLabel2 = "v2"; + // tx_from goes from 1000L to 2000L, val_from from 3000L to 4000L (100 vertices) + // tx_to goes from 1500L to 2500L (step 20) for half of the vertices, other half is unbounded + // val_to goes from 3500L to 4500L for half of the vertices (step 20), other half is unbounded + int numL2Vertices = 100; + for (int i = 0; i < numL2Vertices; i++) { + TemporalVertex vertex = new TemporalVertex(); + vertex.setId(GradoopId.get()); + vertex.setLabel(vLabel2); + + vertex.setTxFrom(1000L + i * 10); + long txTo = i % 2 == 0 ? 1500L + i * 20 : Long.MAX_VALUE; + vertex.setTxTo(txTo); + + vertex.setValidFrom(3000L + i * 10); + long valTo = i % 2 == 0 ? 3500L + i * 20 : Long.MAX_VALUE; + vertex.setValidTo(valTo); + + if (i % 5 == 0) { + vertex.setProperty("catProp1", "y"); + } + + // every 10th node has i as property + if (i % 10 == 0) { + vertex.setProperty("numProp", PropertyValue.create(i)); + } + vertexList.add(vertex); + + if (i % 3 == 0) { + vertex.setProperty("gender", PropertyValue.create("m")); + } else { + vertex.setProperty("gender", PropertyValue.create("f")); + } + } + + //edges (only one type) + ArrayList edgeList = new ArrayList<>(); + String edgeLabel = "edge"; + int numEdges = 100; + // identical tx and val times. + // lengths are equally distributed from 0 to 100 + for (int i = 0; i < numEdges; i++) { + TemporalEdge edge = new TemporalEdge(); + edge.setId(GradoopId.get()); + edge.setLabel(edgeLabel); + edge.setTransactionTime(new Tuple2<>((long) i, (long) i + i)); + edge.setValidTime(edge.getTransactionTime()); + edgeList.add(edge); + } + + TemporalGraph graph = new TemporalGraphFactory(getConfig()).fromCollections(vertexList, edgeList); + + return new BinningTemporalGraphStatisticsFactory().fromGraphWithSampling(graph, 100); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimatorTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimatorTest.java new file mode 100644 index 000000000000..fbf7f6e60c58 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/FilterTemporalEstimatorTest.java @@ -0,0 +1,121 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import com.google.common.collect.Sets; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.BinningTemporalGraphStatisticsFactory; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalEdgesNode; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalVerticesNode; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +import static org.junit.Assert.assertEquals; + +/** + * Tests the {@link FilterTemporalEstimator}. + */ +public class FilterTemporalEstimatorTest extends TemporalGradoopTestBase { + + TemporalGraphStatistics stats; + CNFEstimation est; + + @Before + public void setUp() throws Exception { + stats = new BinningTemporalGraphStatisticsFactory().fromGraph(loadCitibikeSample()); + } + + @Test + public void testVertex() throws Exception { + String query = "MATCH (n) WHERE n.tx_to.after(Timestamp(2013-07-20))"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + FilterAndProjectTemporalVerticesNode node = new FilterAndProjectTemporalVerticesNode(null, + "n", queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + + FilterTemporalEstimator elementEstimator = new FilterTemporalEstimator(queryHandler, stats, est); + elementEstimator.visit(node); + + assertEquals(30L, elementEstimator.getCardinality()); + assertEquals( + elementEstimator.getCnfEstimation().estimateCNF(queryHandler.getPredicates().getSubCNF("n")), + elementEstimator.getSelectivity(), 0.001); + } + + @Test + public void testVertexWithLabel() throws Exception { + String query = "MATCH (n:Tag)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + FilterAndProjectTemporalVerticesNode node = new FilterAndProjectTemporalVerticesNode(null, + "n", queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + + FilterTemporalEstimator elementEstimator = new FilterTemporalEstimator(queryHandler, stats, est); + elementEstimator.visit(node); + + assertEquals(0L, elementEstimator.getCardinality()); + // selectivity for any label is 1. + assertEquals(1., elementEstimator.getSelectivity(), 0.001); + } + + @Test + public void testEdge() throws Exception { + String query = "MATCH (n)-[e]->(m) WHERE n.val_to.before(m.val_from)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + FilterAndProjectTemporalEdgesNode node = new FilterAndProjectTemporalEdgesNode(null, + "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + FilterTemporalEstimator elementEstimator = new FilterTemporalEstimator(queryHandler, stats, est); + elementEstimator.visit(node); + + assertEquals(20L, elementEstimator.getCardinality()); + assertEquals( + elementEstimator.getCnfEstimation().estimateCNF(queryHandler.getPredicates().getSubCNF("e")), + elementEstimator.getSelectivity(), 0.001); + } + + @Test + public void testEdgeWithLabel() throws Exception { + String query = "MATCH (n)-[e:unknown]->(m)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + FilterAndProjectTemporalEdgesNode node = new FilterAndProjectTemporalEdgesNode(null, + "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + FilterTemporalEstimator elementEstimator = new FilterTemporalEstimator(queryHandler, stats, est); + elementEstimator.visit(node); + + assertEquals(0L, elementEstimator.getCardinality()); + // selectivity for any label is 1 + assertEquals(1., elementEstimator.getSelectivity(), 0.001); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimatorTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimatorTest.java new file mode 100644 index 000000000000..22301b22311f --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/JoinTemporalEstimatorTest.java @@ -0,0 +1,270 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.LeafNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.ExpandEmbeddingsNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.JoinEmbeddingsNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.utils.ExpandDirection; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.BinningTemporalGraphStatisticsFactory; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalEdgesNode; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalVerticesNode; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +/** + * Tests the {@link JoinTemporalEstimator}. + */ +public class JoinTemporalEstimatorTest extends TemporalGradoopTestBase { + + TemporalGraphStatistics stats; + + @Before + public void setUp() throws Exception { + stats = new BinningTemporalGraphStatisticsFactory().fromGraph(loadCitibikeSample()); + } + + @Test + public void testLabelFree() throws Exception { + String query = "MATCH (n)-[e]->(m) WHERE n.tx_from.before(m.tx_from)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + JoinEmbeddingsNode neJoin = new JoinEmbeddingsNode(nNode, eNode, Lists.newArrayList("n"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(neJoin); + estimator.visit(nemJoin); + + // there are 20 "trips" in the citibike sample graph + assertEquals(20L, estimator.getCardinality()); + } + + @Test + public void testWithVertexLabels() throws Exception { + // such nodes do not exist -> should be estimated 0 + String query = "MATCH (n:Forum)-[e]->(m:Tag) WHERE m.tx.overlaps(e.val)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, + "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + JoinEmbeddingsNode neJoin = new JoinEmbeddingsNode(nNode, eNode, Lists.newArrayList("n"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(neJoin); + estimator.visit(nemJoin); + + assertEquals(0L, estimator.getCardinality()); + } + + @Test + public void testWithEdgeLabels() throws Exception { + // all edges have that label + String query = "MATCH (n)-[e:trip]->(m) WHERE n.tx_to.before(m.tx_from)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, + "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + JoinEmbeddingsNode neJoin = new JoinEmbeddingsNode(nNode, eNode, Lists.newArrayList("n"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(neJoin); + estimator.visit(nemJoin); + + assertEquals(20L, estimator.getCardinality()); + } + + @Test + public void testWithLabels() throws Exception { + String query = "MATCH (n:station)-[e:trip]->(m:station)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, + "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + JoinEmbeddingsNode neJoin = new JoinEmbeddingsNode(nNode, eNode, Lists.newArrayList("n"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(neJoin); + assertEquals(20L, estimator.getCardinality()); + estimator.visit(nemJoin); + assertEquals(20L, estimator.getCardinality()); + } + + @Test + public void testWithLabelsUnbound() throws Exception { + String query = "MATCH (:station)-[:trip]->(:station)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "__v0", + queryHandler.getPredicates().getSubCNF("__v0"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "__v1", + queryHandler.getPredicates().getSubCNF("__v1"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, + "__v0", "__e0", "__v1", + queryHandler.getPredicates().getSubCNF("__e0"), Sets.newHashSet(), false); + + JoinEmbeddingsNode neJoin = new JoinEmbeddingsNode(nNode, eNode, Lists.newArrayList("__v0"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("__v1"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(neJoin); + assertEquals(20L, estimator.getCardinality()); + estimator.visit(nemJoin); + assertEquals(20L, estimator.getCardinality()); + } + + @Test + public void testPathVariableLength() throws Exception { + // 20+2 such paths (condition always holds) + String query = "MATCH (n)-[e*1..2]->(m) WHERE n.tx.overlaps(m.val)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + ExpandEmbeddingsNode neJoin = new ExpandEmbeddingsNode(nNode, eNode, "n", "e", "m", 1, 10, + ExpandDirection.OUT, MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(neJoin); + estimator.visit(nemJoin); + // 24 1-edge paths + 10 2-edge paths + assertEquals(22L, estimator.getCardinality()); + } + + @Test + public void testPathFixedLength() throws Exception { + // 2 such paths (ISO!!!) + String query = "MATCH (n)-[e*2..2]->(m)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, + "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + ExpandEmbeddingsNode neJoin = new ExpandEmbeddingsNode(nNode, eNode, + "n", "e", "m", 1, 10, + ExpandDirection.OUT, MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(neJoin); + estimator.visit(nemJoin); + + assertEquals(2L, estimator.getCardinality()); + } + + @Test + public void testEmbeddedPathFixedLength() throws Exception { + // same as before + String query = "MATCH (n)-[e1*2..2]->(m)-[e2]->(o) WHERE n.tx_from.before(o.tx_from)"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode oNode = new FilterAndProjectTemporalVerticesNode(null, "o", + queryHandler.getPredicates().getSubCNF("o"), Sets.newHashSet()); + LeafNode e1Node = new FilterAndProjectTemporalEdgesNode(null, + "n", "e1", "m", + queryHandler.getPredicates().getSubCNF("e1"), Sets.newHashSet(), false); + LeafNode e2Node = new FilterAndProjectTemporalEdgesNode(null, + "m", "e2", "o", + queryHandler.getPredicates().getSubCNF("e2"), Sets.newHashSet(), false); + + ExpandEmbeddingsNode ne1Join = new ExpandEmbeddingsNode(nNode, e1Node, + "n", "e", "m", 2, 2, + ExpandDirection.OUT, MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode ne1mJoin = new JoinEmbeddingsNode(ne1Join, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode ne1me2Join = new JoinEmbeddingsNode(ne1mJoin, e2Node, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + JoinEmbeddingsNode ne1me2oJoin = + new JoinEmbeddingsNode(ne1me2Join, oNode, Lists.newArrayList("o"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + JoinTemporalEstimator estimator = new JoinTemporalEstimator(queryHandler, stats); + estimator.visit(ne1me2oJoin); + estimator.visit(ne1me2Join); + estimator.visit(ne1mJoin); + estimator.visit(ne1Join); + + assertEquals(2L, estimator.getCardinality()); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanTemporalEstimatorTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanTemporalEstimatorTest.java new file mode 100644 index 000000000000..6b8da4b06cf0 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/estimation/TemporalQueryPlanTemporalEstimatorTest.java @@ -0,0 +1,273 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.estimation; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.BinaryNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.LeafNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.QueryPlan; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.CartesianProductNode; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.planning.queryplan.binary.JoinEmbeddingsNode; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.operators.matching.common.query.postprocessing.CNFPostProcessing; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.TemporalGraphStatistics; +import org.gradoop.temporal.model.impl.operators.matching.common.statistics.binning.BinningTemporalGraphStatisticsFactory; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalEdgesNode; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf.FilterAndProjectTemporalVerticesNode; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +/** + * Tests the {@link TemporalQueryPlanEstimator}. + */ +public class TemporalQueryPlanTemporalEstimatorTest extends TemporalGradoopTestBase { + + private TemporalGraphStatistics stats; + private CNFEstimation est; + + @Before + public void setUp() throws Exception { + stats = new BinningTemporalGraphStatisticsFactory().fromGraph(loadCitibikeSample()); + } + + @Test + public void testVertex() throws Exception { + String query = "MATCH (n)-->(m:station) WHERE n.tx_from.before(m.tx_to)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + + QueryPlan queryPlan = new QueryPlan(nNode); + // 30 stations + TemporalQueryPlanEstimator estimator = + new TemporalQueryPlanEstimator(queryPlan, queryHandler, stats, est); + assertEquals(30L, estimator.getCardinality()); + + queryPlan = new QueryPlan(mNode); + estimator = new TemporalQueryPlanEstimator(queryPlan, queryHandler, stats, est); + // 30 stations + assertEquals(30L, estimator.getCardinality()); + } + + @Test + public void testEdge() throws Exception { + String query = "MATCH (n)-[e]->(m)-[f:trip]->(o) WHERE n.tx.overlaps(o.val)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, + "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + + LeafNode fNode = new FilterAndProjectTemporalEdgesNode(null, + "m", "f", "o", + queryHandler.getPredicates().getSubCNF("f"), Sets.newHashSet(), false); + + + QueryPlan queryPlan = new QueryPlan(eNode); + TemporalQueryPlanEstimator estimator = + new TemporalQueryPlanEstimator(queryPlan, queryHandler, stats, est); + // 20 edges + assertEquals(20L, estimator.getCardinality()); + + queryPlan = new QueryPlan(fNode); + estimator = new TemporalQueryPlanEstimator(queryPlan, queryHandler, stats, est); + assertEquals(20L, estimator.getCardinality()); + } + + @Test + public void testFixedPattern() throws Exception { + // 2 matches for ISO + String query = "MATCH (n)-[e]->(m)-[f]->(o) WHERE n.tx_to>Timestamp(1970-01-01)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + LeafNode nNode = new FilterAndProjectTemporalVerticesNode(null, "n", + queryHandler.getPredicates().getSubCNF("n"), Sets.newHashSet()); + LeafNode mNode = new FilterAndProjectTemporalVerticesNode(null, "m", + queryHandler.getPredicates().getSubCNF("m"), Sets.newHashSet()); + LeafNode oNode = new FilterAndProjectTemporalVerticesNode(null, "o", + queryHandler.getPredicates().getSubCNF("o"), Sets.newHashSet()); + LeafNode eNode = new FilterAndProjectTemporalEdgesNode(null, "n", "e", "m", + queryHandler.getPredicates().getSubCNF("e"), Sets.newHashSet(), false); + LeafNode fNode = new FilterAndProjectTemporalEdgesNode(null, "m", "f", "o", + queryHandler.getPredicates().getSubCNF("f"), Sets.newHashSet(), false); + + // (n)-[e]-> + JoinEmbeddingsNode neJoin = new JoinEmbeddingsNode(nNode, eNode, Lists.newArrayList("n"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + QueryPlan plan = new QueryPlan(neJoin); + TemporalQueryPlanEstimator estimator = new TemporalQueryPlanEstimator(plan, queryHandler, stats, est); + + assertTrue(18 <= estimator.getCardinality()); + assertTrue(estimator.getCardinality() <= 20); + + // (n)-[e]->(m) + JoinEmbeddingsNode nemJoin = new JoinEmbeddingsNode(neJoin, mNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + plan = new QueryPlan(nemJoin); + estimator = new TemporalQueryPlanEstimator(plan, queryHandler, stats, est); + + assertTrue(18 <= estimator.getCardinality()); + assertTrue(estimator.getCardinality() <= 20); + + // (n)-[e]->(m)-[f]-> + JoinEmbeddingsNode nemfJoin = new JoinEmbeddingsNode(nemJoin, fNode, Lists.newArrayList("m"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + plan = new QueryPlan(nemfJoin); + estimator = new TemporalQueryPlanEstimator(plan, queryHandler, stats, est); + + // 20*30*20*30 / (30*17*30) rather inaccurate,... + assertTrue(22 <= estimator.getCardinality()); + assertTrue(estimator.getCardinality() <= 24); + + // (n)-[e]->(m)-[f]->(o) + JoinEmbeddingsNode nemfoJoin = new JoinEmbeddingsNode(nemfJoin, oNode, Lists.newArrayList("o"), + MatchStrategy.ISOMORPHISM, MatchStrategy.ISOMORPHISM); + + plan = new QueryPlan(nemfoJoin); + estimator = new TemporalQueryPlanEstimator(plan, queryHandler, stats, est); + + assertTrue(20 <= estimator.getCardinality()); + assertTrue(estimator.getCardinality() <= 30); + } + + + @Test + public void testCartesianProductVertices() throws Exception { + // prohibit asOf(now) + String query = "MATCH (a) (b) WHERE a.tx_to>Timestamp(1970-01-01)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + LeafNode aNode = new FilterAndProjectTemporalVerticesNode(null, "a", + queryHandler.getPredicates().getSubCNF("a"), Sets.newHashSet()); + LeafNode bNode = new FilterAndProjectTemporalVerticesNode(null, "b", + queryHandler.getPredicates().getSubCNF("b"), Sets.newHashSet()); + CartesianProductNode crossNode = new CartesianProductNode(aNode, bNode, MatchStrategy + .HOMOMORPHISM, MatchStrategy.ISOMORPHISM); + + QueryPlan queryPlan = new QueryPlan(crossNode); + + TemporalQueryPlanEstimator estimator = + new TemporalQueryPlanEstimator(queryPlan, queryHandler, stats, est); + + assertTrue(850 <= estimator.getCardinality() && estimator.getCardinality() <= 900); + } + + + @Test + public void testComplexCartesianProduct() throws Exception { + String query = "MATCH (a)-[e1:trip]->(b:station),(c:station)-[e2:trip]->(d:station)" + + "WHERE a.tx_from > c.val_from AND a.tx_to>Timestamp(1970-01-01)"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query, + new CNFPostProcessing(new ArrayList<>())); + est = new CNFEstimation(stats, queryHandler); + + LeafNode aNode = new FilterAndProjectTemporalVerticesNode(null, "a", + queryHandler.getPredicates().getSubCNF("a"), Sets.newHashSet()); + TemporalQueryPlanEstimator + aEstimator = new TemporalQueryPlanEstimator(new QueryPlan(aNode), queryHandler, stats, est); + assertTrue(28 <= aEstimator.getCardinality() && aEstimator.getCardinality() <= 30); + + LeafNode bNode = new FilterAndProjectTemporalVerticesNode(null, "b", + queryHandler.getPredicates().getSubCNF("b"), Sets.newHashSet()); + TemporalQueryPlanEstimator + bEstimator = new TemporalQueryPlanEstimator(new QueryPlan(bNode), queryHandler, stats, est); + assertEquals(30, bEstimator.getCardinality()); + + LeafNode cNode = new FilterAndProjectTemporalVerticesNode(null, "c", + queryHandler.getPredicates().getSubCNF("c"), Sets.newHashSet()); + TemporalQueryPlanEstimator + cEstimator = new TemporalQueryPlanEstimator(new QueryPlan(cNode), queryHandler, stats, est); + assertEquals(30, cEstimator.getCardinality()); + + LeafNode dNode = new FilterAndProjectTemporalVerticesNode(null, "d", + queryHandler.getPredicates().getSubCNF("d"), Sets.newHashSet()); + TemporalQueryPlanEstimator + dEstimator = new TemporalQueryPlanEstimator(new QueryPlan(dNode), queryHandler, stats, est); + assertEquals(30, dEstimator.getCardinality()); + + LeafNode e1Node = new FilterAndProjectTemporalEdgesNode(null, "a", "e1", "b", + queryHandler.getPredicates().getSubCNF("e1"), Sets.newHashSet(), false); + TemporalQueryPlanEstimator + e1Estimator = new TemporalQueryPlanEstimator(new QueryPlan(e1Node), queryHandler, stats, est); + assertTrue(18 <= e1Estimator.getCardinality() && e1Estimator.getCardinality() <= 20); + + LeafNode e2Node = new FilterAndProjectTemporalEdgesNode(null, "c", "e2", "d", + queryHandler.getPredicates().getSubCNF("e2"), Sets.newHashSet(), false); + TemporalQueryPlanEstimator + e2Estimator = new TemporalQueryPlanEstimator(new QueryPlan(e2Node), queryHandler, stats, est); + assertTrue(18 <= e2Estimator.getCardinality() && e2Estimator.getCardinality() <= 20); + + BinaryNode ae1 = new JoinEmbeddingsNode(aNode, e1Node, Lists.newArrayList("a"), + MatchStrategy.HOMOMORPHISM, MatchStrategy.HOMOMORPHISM); + TemporalQueryPlanEstimator ae1Estimator = + new TemporalQueryPlanEstimator(new QueryPlan(ae1), queryHandler, stats, est); + assertTrue(18 <= ae1Estimator.getCardinality() && ae1Estimator.getCardinality() <= 20); + + BinaryNode ae1b = new JoinEmbeddingsNode(ae1, bNode, Lists.newArrayList("b"), + MatchStrategy.HOMOMORPHISM, MatchStrategy.HOMOMORPHISM); + TemporalQueryPlanEstimator + ae1bEstimator = new TemporalQueryPlanEstimator(new QueryPlan(ae1b), queryHandler, stats, est); + assertTrue(18 <= ae1bEstimator.getCardinality() && + ae1bEstimator.getCardinality() <= 20); + + BinaryNode ce2 = new JoinEmbeddingsNode(cNode, e2Node, Lists.newArrayList("c"), + MatchStrategy.HOMOMORPHISM, MatchStrategy.HOMOMORPHISM); + BinaryNode ce2d = new JoinEmbeddingsNode(ce2, dNode, Lists.newArrayList("d"), + MatchStrategy.HOMOMORPHISM, MatchStrategy.HOMOMORPHISM); + + CartesianProductNode crossNode = new CartesianProductNode(ae1b, ce2d, MatchStrategy + .HOMOMORPHISM, MatchStrategy.HOMOMORPHISM); + + QueryPlan ce2dPlan = new QueryPlan(ce2d); + TemporalQueryPlanEstimator + ce2dEstimator = new TemporalQueryPlanEstimator(ce2dPlan, queryHandler, stats, est); + assertTrue(18 <= ce2dEstimator.getCardinality() && + ce2dEstimator.getCardinality() <= 20); + + QueryPlan crossPlan = new QueryPlan(crossNode); + TemporalQueryPlanEstimator + crossEstimator = new TemporalQueryPlanEstimator(crossPlan, queryHandler, stats, est); + + // join predicate "a.tx_from > c.val_from" has selectivity ~50% + long withoutPredicate = ce2dEstimator.getCardinality() * ae1bEstimator.getCardinality(); + assertTrue(0.45 * withoutPredicate <= crossEstimator.getCardinality() && + crossEstimator.getCardinality() <= 0.55 * withoutPredicate); + } + +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesTest.java new file mode 100644 index 000000000000..7b39c8597c0d --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalEdgesTest.java @@ -0,0 +1,146 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf; + +import com.google.common.collect.Sets; +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.io.LocalCollectionOutputFormat; +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.Properties; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.gdl.model.comparables.time.TimeSelector; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalEdgeFactory; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.junit.Assert.assertEquals; + +public class FilterAndProjectTemporalEdgesTest extends TemporalGradoopTestBase { + TemporalEdgeFactory factory = new TemporalEdgeFactory(); + + @Test + public void testMetaDataInitialization() { + String sourceVariable = "a"; + String edgeVariable = "e"; + String targetVariable = "b"; + FilterAndProjectTemporalEdgesNode node = new FilterAndProjectTemporalEdgesNode( + null, sourceVariable, edgeVariable, targetVariable, new CNF(), new HashSet<>(), false); + + EmbeddingMetaData embeddingMetaData = node.getEmbeddingMetaData(); + assertEquals(0, embeddingMetaData.getEntryColumn(sourceVariable)); + assertEquals(1, embeddingMetaData.getEntryColumn(edgeVariable)); + assertEquals(2, embeddingMetaData.getEntryColumn(targetVariable)); + assertEquals(0, embeddingMetaData.getPropertyKeys(edgeVariable).size()); + } + + @Test + public void testMetaDataInitializationWithLoop() { + String sourceVariable = "a"; + String edgeVariable = "e"; + String targetVariable = "a"; + FilterAndProjectTemporalEdgesNode node = new FilterAndProjectTemporalEdgesNode( + null, sourceVariable, edgeVariable, targetVariable, new CNF(), new HashSet<>(), false); + + EmbeddingMetaData embeddingMetaData = node.getEmbeddingMetaData(); + assertEquals(0, embeddingMetaData.getEntryColumn(sourceVariable)); + assertEquals(1, embeddingMetaData.getEntryColumn(edgeVariable)); + assertEquals(0, embeddingMetaData.getEntryColumn(targetVariable)); + assertEquals(0, embeddingMetaData.getPropertyKeys(edgeVariable).size()); + } + + @Test + public void testExecute() throws Exception { + GradoopId sourceId = GradoopId.get(); + GradoopId targetId = GradoopId.get(); + + GradoopId edge1Id = GradoopId.get(); + Map edge1Props = new HashMap<>(); + edge1Props.put("foo", 23); + Long[] edge1TimeData = new Long[] {123L, 1234L, 345L, 456L}; + + GradoopId edge2Id = GradoopId.get(); + Map edge2Props = new HashMap<>(); + edge2Props.put("foo", 42); + Long[] edge2TimeData = new Long[] {123L, 1234L, 345L, 456L}; + + GradoopId edge3Id = GradoopId.get(); + Map edge3Props = new HashMap<>(); + edge3Props.put("foo", 23); + Long[] edge3TimeData = new Long[] {12345L, 1234567L, 3452L, 456789L}; + + + TemporalEdge e1 = + factory.initEdge(edge1Id, "a", sourceId, targetId, Properties.createFromMap(edge1Props)); + e1.setTransactionTime(new Tuple2<>(edge1TimeData[0], edge1TimeData[1])); + e1.setValidTime(new Tuple2<>(edge1TimeData[2], edge1TimeData[3])); + + TemporalEdge e2 = + factory.initEdge(edge2Id, "b", sourceId, targetId, Properties.createFromMap(edge2Props)); + e2.setTransactionTime(new Tuple2<>(edge2TimeData[0], edge2TimeData[1])); + e2.setValidTime(new Tuple2<>(edge2TimeData[2], edge2TimeData[3])); + + TemporalEdge e3 = + factory.initEdge(edge3Id, "c", sourceId, targetId, Properties.createFromMap(edge3Props)); + e3.setTransactionTime(new Tuple2<>(edge3TimeData[0], edge3TimeData[1])); + e3.setValidTime(new Tuple2<>(edge3TimeData[2], edge3TimeData[3])); + + DataSet edges = getExecutionEnvironment().fromElements(e1, e2, e3); + + //only matched by e1 + String query = "MATCH (a)-[e]->(b) WHERE e.foo = 23 " + + "AND a.val_from <= e.val_from"; + + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + CNF filterPredicate = queryHandler.getPredicates().getSubCNF(Sets.newHashSet("e")); + Set projectionKeys = queryHandler.getPredicates().getPropertyKeys("e"); + + FilterAndProjectTemporalEdgesNode node = new FilterAndProjectTemporalEdgesNode( + edges, "a", "e", "b", filterPredicate, projectionKeys, false); + + List filteredEdges = new ArrayList<>(); + node.execute().output(new LocalCollectionOutputFormat<>(filteredEdges)); + + getExecutionEnvironment().execute(); + + assertEquals(2, filteredEdges.size()); + assertEquals(sourceId, filteredEdges.get(0).getId(0)); + assertEquals(edge1Id, filteredEdges.get(0).getId(1)); + assertEquals(targetId, filteredEdges.get(0).getId(2)); + + + EmbeddingMetaData metaData = node.getEmbeddingMetaData(); + assertEquals(0, metaData.getEntryColumn("a")); + assertEquals(1, metaData.getEntryColumn("e")); + assertEquals(2, metaData.getEntryColumn("b")); + assertEquals(3, metaData.getPropertyKeys("e").size()); + + assertEquals(1, metaData.getPropertyColumn("e", "foo")); + assertEquals(2, metaData.getPropertyColumn("e", TimeSelector.TimeField.VAL_FROM.toString())); + assertEquals(0, metaData.getPropertyColumn("e", TimeSelector.TimeField.VAL_TO.toString())); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesTest.java new file mode 100644 index 000000000000..2f3146b71976 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/planning/queryplan/leaf/FilterAndProjectTemporalVerticesTest.java @@ -0,0 +1,116 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.planning.queryplan.leaf; + +import com.google.common.collect.Sets; +import org.apache.flink.api.java.DataSet; +import org.apache.flink.api.java.io.LocalCollectionOutputFormat; +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.Properties; +import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.EmbeddingMetaData; +import org.gradoop.temporal.model.impl.operators.matching.common.query.TemporalQueryHandler; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.gradoop.temporal.util.TemporalGradoopTestBase; +import org.junit.Test; +import org.gradoop.gdl.model.comparables.time.TimeSelector; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class FilterAndProjectTemporalVerticesTest extends TemporalGradoopTestBase { + + @Test + public void testMetaDataInitialization() { + String variable = "a"; + FilterAndProjectTemporalVerticesNode node = new FilterAndProjectTemporalVerticesNode( + null, variable, new CNF(), Sets.newHashSet()); + + EmbeddingMetaData embeddingMetaData = node.getEmbeddingMetaData(); + assertEquals(0, embeddingMetaData.getEntryColumn(variable)); + assertEquals(0, node.getEmbeddingMetaData().getPropertyKeys(variable).size()); + } + + @Test + public void testExecute() throws Exception { + GradoopId vertex1Id = GradoopId.get(); + Map vertex1Props = new HashMap<>(); + vertex1Props.put("foo", 23); + Long[] vertex1Time = new Long[] {123L, 1234L, 456L, 4567L}; + + GradoopId vertex2Id = GradoopId.get(); + Map vertex2Props = new HashMap<>(); + vertex2Props.put("foo", 42); + Long[] vertex2Time = new Long[] {9876L, 98765L, 654L, 65432L}; + + GradoopId vertex3Id = GradoopId.get(); + Map vertex3Props = new HashMap<>(); + vertex2Props.put("foo", 23); + Long[] vertex3Time = new Long[] {9876L, 98765L, 654L, 65432L}; + + TemporalVertexFactory factory = new TemporalVertexFactory(); + + TemporalVertex vertex1 = factory.createVertex("A", Properties.createFromMap(vertex1Props)); + vertex1.setId(vertex1Id); + vertex1.setTransactionTime(new Tuple2<>(vertex1Time[0], vertex1Time[1])); + vertex1.setValidTime(new Tuple2<>(vertex1Time[2], vertex1Time[3])); + + TemporalVertex vertex2 = factory.createVertex("B", Properties.createFromMap(vertex2Props)); + vertex2.setId(vertex2Id); + vertex2.setTransactionTime(new Tuple2<>(vertex2Time[0], vertex2Time[1])); + vertex2.setValidTime(new Tuple2<>(vertex2Time[2], vertex2Time[3])); + + TemporalVertex vertex3 = factory.createVertex("C", Properties.createFromMap(vertex3Props)); + vertex3.setId(vertex3Id); + vertex3.setTransactionTime(new Tuple2<>(vertex3Time[0], vertex3Time[1])); + vertex3.setValidTime(new Tuple2<>(vertex3Time[2], vertex3Time[3])); + + DataSet vertices = getExecutionEnvironment().fromElements(vertex1, vertex2, vertex3); + + String query = "MATCH (n) WHERE n.foo = 23 AND n.tx_from.before(Timestamp(1970-01-01T00:00:01)) " + + "AND n.tx_to.before(Timestamp(2020-01-01))"; + TemporalQueryHandler queryHandler = new TemporalQueryHandler(query); + CNF filterPredicate = queryHandler.getPredicates().getSubCNF(Sets.newHashSet("n")); + Set projectionKeys = queryHandler.getPredicates().getPropertyKeys("n"); + + FilterAndProjectTemporalVerticesNode node = new FilterAndProjectTemporalVerticesNode( + vertices, "n", filterPredicate, projectionKeys); + + List filteredVertices = new ArrayList<>(); + node.execute().output(new LocalCollectionOutputFormat<>(filteredVertices)); + getExecutionEnvironment().execute(); + + assertEquals(1, filteredVertices.size()); + assertEquals(vertex1Id, filteredVertices.get(0).getId(0)); + + EmbeddingMetaData metaData = node.getEmbeddingMetaData(); + assertEquals(metaData.getEntryColumn("n"), 0); + + int fooColumn = metaData.getPropertyColumn("n", "foo"); + int fromColumn = metaData.getPropertyColumn("n", TimeSelector.TimeField.TX_FROM.toString()); + int toColumn = metaData.getPropertyColumn("n", TimeSelector.TimeField.TX_TO.toString()); + assertTrue(fooColumn != fromColumn && fromColumn != toColumn && fooColumn != toColumn); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactoryTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactoryTest.java new file mode 100644 index 000000000000..041dea24cf66 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/pojos/EmbeddingTPGMFactoryTest.java @@ -0,0 +1,92 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.pojos; + +import com.google.common.collect.Lists; +import org.apache.flink.api.java.tuple.Tuple2; +import org.gradoop.common.model.impl.id.GradoopId; +import org.gradoop.common.model.impl.properties.Properties; +import org.gradoop.common.model.impl.properties.PropertyValue; +import org.gradoop.flink.model.impl.operators.matching.single.cypher.pojos.Embedding; +import org.gradoop.temporal.model.impl.pojo.TemporalEdge; +import org.gradoop.temporal.model.impl.pojo.TemporalEdgeFactory; +import org.gradoop.temporal.model.impl.pojo.TemporalVertex; +import org.gradoop.temporal.model.impl.pojo.TemporalVertexFactory; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.TX_TO; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_FROM; +import static org.gradoop.gdl.model.comparables.time.TimeSelector.TimeField.VAL_TO; + +public class EmbeddingTPGMFactoryTest { + + @Test + public void testFromVertex() { + Properties properties = new Properties(); + properties.set("foo", 1); + properties.set("bar", "42"); + properties.set("baz", false); + TemporalVertex vertex = new TemporalVertexFactory().createVertex("TestVertex", properties); + Long valFrom = 123456L; + Long txTo = 124L; + Tuple2 tx = new Tuple2<>(123L, txTo); + vertex.setTransactionTime(tx); + Tuple2 val = new Tuple2<>(valFrom, 12456787L); + vertex.setValidTime(val); + + Embedding embedding = + EmbeddingTPGMFactory.fromVertex(vertex, Lists.newArrayList("foo", "bar", VAL_FROM.toString(), + TX_TO.toString())); + + assertEquals(1, embedding.size()); + assertEquals(vertex.getId(), embedding.getId(0)); + assertEquals(PropertyValue.create(1), embedding.getProperty(0)); + assertEquals(PropertyValue.create("42"), embedding.getProperty(1)); + assertEquals(PropertyValue.create(valFrom), embedding.getProperty(2)); + assertEquals(PropertyValue.create(txTo), embedding.getProperty(3)); + } + + @Test + public void testFromEdge() { + Properties properties = new Properties(); + properties.set("foo", 1); + properties.set("bar", "42"); + properties.set("baz", false); + TemporalEdge edge = new TemporalEdgeFactory().createEdge( + "TestVertex", GradoopId.get(), GradoopId.get(), properties); + Long txFrom = 1253453L; + Long valTo = 127834487L; + Tuple2 tx = new Tuple2<>(txFrom, 124346557L); + edge.setTransactionTime(tx); + Tuple2 val = new Tuple2<>(13456L, valTo); + edge.setValidTime(val); + + Embedding embedding = + EmbeddingTPGMFactory.fromEdge(edge, Lists.newArrayList( + TX_FROM.toString(), "foo", VAL_TO.toString(), "bar"), false); + + assertEquals(3, embedding.size()); + assertEquals(edge.getSourceId(), embedding.getId(0)); + assertEquals(edge.getId(), embedding.getId(1)); + assertEquals(edge.getTargetId(), embedding.getId(2)); + assertEquals(PropertyValue.create(txFrom), embedding.getProperty(0)); + assertEquals(PropertyValue.create(1), embedding.getProperty(1)); + assertEquals(PropertyValue.create(valTo), embedding.getProperty(2)); + assertEquals(PropertyValue.create("42"), embedding.getProperty(3)); + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAfterData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAfterData.java new file mode 100644 index 000000000000..bc89fa706c3b --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAfterData.java @@ -0,0 +1,69 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; +import org.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism.IsomorphismAfterData; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * Inversions from + * {@link IsomorphismAfterData} + */ +public class HomomorphismAfterData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + // 3. [(E15 St) -> (Washington P.) (Hicks St) -> (Hicks St)] + data.add(new String[] { + "After_HOM_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) " + + "WHERE e1.val_from.after(e2.val_from) AND a.id=475", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4) (s0)-[e0]->(s1)], " + + "expected2[(s3)-[e3]->(s4) (s0)-[e1]->(s1)], " + + "expected3[(s3)-[e3]->(s4) (s2)-[e2]->(s2)]" + }); + + + // 1. [(Broadway & W29)-[edgeId:13]->(8 Ave & W31) (Broadway & W29)-[edgeId:19]->(8 Ave & W31)] + data.add(new String[] { + "After_HOM_2_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE a.id=486 AND c.id=486 " + + "AND e2.val_to.after(e1.val_to)", + "expected1", + "expected1[(s21)-[e13]->(s11) (s21)-[e19]->(s11)]" + }); + + + // 1. [(Hicks St & Montague) -> (Hicks St & Montague) <- (W 37 St & 5 Ave)] + data.add(new String[] { + "After_HOM_3_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE b.id=406 AND " + + "e2.tx_from.after(e1.tx_from)", + "expected1", + "expected1[(s2)-[e2]->(s2)<-[e5]-(s7)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAsOfData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAsOfData.java new file mode 100644 index 000000000000..5eb38b396553 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismAsOfData.java @@ -0,0 +1,73 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismAsOfData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(Hicks St) -> (Hicks St)] + // 2.[(Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 3.[(Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + data.add(new String[] { + "AsOf_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.asOf(Timestamp(2013-06-01T00:01:00))", + "expected1,expected2,expected3", + "expected1[(s2)-[e2]->(s2)], expected2[(s0)-[e0]->(s1)]," + + "expected3[(s0)-[e1]->(s1)]" + }); + + // 1.[(Greenwich St & W Houston)<-(Murray St & West St)->(Shevchenko Pl)] + // 2.[(Shevchenko Pl)<-(Murray St & West St)->(Shevchenko Pl)] + // 3.[(Greenwich St & W Houston)<-(Murray St & West St)->(Greenwich St & W Houston)] + data.add(new String[] { + "AsOf_HOM_2_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) WHERE b.id=309 AND e2.val.asOf(e1.val_from)", + "expected1,expected2,expected3", + "expected1[(s26)<-[e16]-(s24)-[e15]->(s25)], expected2[(s25)<-[e15]-(s24)-[e15]->(s25)]," + + "expected3[(s26)<-[e16]-(s24)-[e16]->(s26)]" + }); + + // 1.[(Broadway & W 29 St) -[edgeId:19]-> (8 Ave & W 31)] + // 2.[(E15 St & Irving) -> (Washington Park) + // 2.[(Lispenard St) -> (Broadway & W 51)] + data.add(new String[] { + "AsOf_HOM3_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT e.tx.asOf(Timestamp(2013-06-01T00:08:00))", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)], expected2[(s3)-[e3]->(s4)]," + + " expected3[(s28)-[e18]->(s29)]" + }); + + // 1.[(Stanton St & Chrystie ST)] + // 2.[(Shevchenko Pl & E 7 St)] + // 3.[(Fulton St & Grand Ave)] + data.add(new String[] { + "AsOf_HOM_4_default_citibike", + "MATCH (a) WHERE a.tx.asOf(Timestamp(2013-07-27T12:23:23))", + "expected1,expected2,expected3", + "expected1[(s12)], expected2[(s25)], expected3[(s20)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBeforeData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBeforeData.java new file mode 100644 index 000000000000..75a93257866d --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBeforeData.java @@ -0,0 +1,69 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismBeforeData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + // 3. [(E15 St) -> (Washington P.) (Hicks St) -> (Hicks St)] + data.add(new String[] { + "Before_HOM_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE e2.val_from.before(e1.val_from) AND a.id=475", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4) (s0)-[e0]->(s1)], " + + "expected2[(s3)-[e3]->(s4) (s0)-[e1]->(s1)], " + + "expected3[(s3)-[e3]->(s4) (s2)-[e2]->(s2)]" + }); + + // 1. [(Broadway & W29)-[edgeId:13]->(8 Ave & W31) (Broadway & W29)-[edgeId:19]->(8 Ave & W31)] + data.add(new String[] { + "Before_HOM_2_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE a.id=486 AND c.id=486 AND e1.val_to.before(e2.val_to)", + "expected1", + "expected1[(s21)-[e13]->(s11) (s21)-[e19]->(s11)]" + }); + + // 1. [(Hicks St & Montague) -> (Hicks St & Montague) <- (W 37 St & 5 Ave)] + data.add(new String[] { + "Before_HOM_3_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE b.id=406 AND e1.tx_from.before(e2.tx_from)", + "expected1", + "expected1[(s2)-[e2]->(s2)<-[e5]-(s7)]" + }); + + // 1.[(Hicks St)->(Hicks St)] + // 2.[Broadway & W24) -[edgeId:0]-> (9 Ave & W18) + // 3.[Broadway & W24) -[edgeId:1]-> (9 Ave & W18) + data.add(new String[] { + "Before_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx_from.before(Timestamp(2013-06-01T00:01:00))", + "expected1,expected2,expected3", + "expected1[(s2)-[e2]->(s2)], expected2[(s0)-[e0]->(s1)], expected3[(s0)-[e1]->(s1)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBetweenData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBetweenData.java new file mode 100644 index 000000000000..c459dcae6d6e --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismBetweenData.java @@ -0,0 +1,71 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismBetweenData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(W37 St & 5 Ave) -> (Hicks St)] + // 2.[(Hicks St) -> (Hicks St)] + // 3.[(Broadway & E 14) -[edgeId:6]-> (S 5 Pl & S 5 St)] + // 4.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Between_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.between(Timestamp(2013-06-01T00:35:00), " + + "Timestamp(2013-06-01T00:40:00))", + "expected1,expected2,expected3,expected4", + "expected1[(s7)-[e5]->(s2)], expected2[(s2)-[e2]->(s2)]," + + "expected3[(s8)-[e6]->(s9)], expected4[(s28)-[e18]->(s29)]" + }); + + // 1.[(Broadway & W 29) -[e19]-> (8 Ave & W 31) <-[e19]- (Broadway & W29)] + // 2.[(Broadway & W 29) -[e19]-> (8 Ave & W 31) <-[e13]- (Broadway & W29)] + // 3.[(Broadway & W 29) -[e13]-> (8 Ave & W 31) <-[e19]- (Broadway & W29)] + // 4.[(Broadway & W 29) -[e13]-> (8 Ave & W 31) <-[e13]- (Broadway & W29)] + data.add(new String[] { + "Between_HOM_2_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(a) WHERE a.id=486 AND " + + "e1.val.between(e2.val_from, e2.val_to)", + "expected1,expected2,expected3,expected4", + "expected1[(s21)-[e13]->(s11)<-[e13]-(s21)]," + + "expected2[(s21)-[e13]->(s11)<-[e19]-(s21)]," + + "expected3[(s21)-[e19]->(s11)<-[e13]-(s21)]," + + "expected4[(s21)-[e19]->(s11)<-[e19]-(s21)]" + }); + + // 1.[(E15 St & Irving Pl) -> (Washington Park)] + // 2.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Between_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT e.val.between(Timestamp(2013-06-01T00:04:00), " + + "Timestamp(2013-06-01T00:08:00))", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4)], expected2[(s21)-[e19]->(s11)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismComparisonData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismComparisonData.java new file mode 100644 index 000000000000..b83b5711ba66 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismComparisonData.java @@ -0,0 +1,80 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismComparisonData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + // 3. [(E15 St) -> (Washington P.) (Hicks St) -> (Hicks St)] + data.add(new String[] { + "Comparison_HOM_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) " + + "WHERE e1.val_from>e2.val_from AND a.id=475", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4) (s0)-[e0]->(s1)], " + + "expected2[(s3)-[e3]->(s4) (s0)-[e1]->(s1)], " + + "expected3[(s3)-[e3]->(s4) (s2)-[e2]->(s2)]" + }); + + // 1. [(Broadway & W29)-[edgeId:13]->(8 Ave & W31) (Broadway & W29)-[edgeId:19]->(8 Ave & W31)] + data.add(new String[] { + "Comparison_HOM_2_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE a.id=486 AND c.id=486 " + + "AND e2.val_to>e1.val_to", + "expected1", + "expected1[(s21)-[e13]->(s11) (s21)-[e19]->(s11)]" + }); + + // 1. [(Hicks St & Montague) -> (Hicks St & Montague) <- (W 37 St & 5 Ave)] + data.add(new String[] { + "Comparison_HOM_3_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE b.id=406 AND " + + "e2.tx_from > e1.tx_from", + "expected1", + "expected1[(s2)-[e2]->(s2)<-[e5]-(s7)]" + }); + + // 1.[(Hicks St)->(Hicks St)] + // 2.[Broadway & W24) -[edgeId:0]-> (9 Ave & W18) + // 3.[Broadway & W24) -[edgeId:1]-> (9 Ave & W18) + data.add(new String[] { + "Comparison_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Timestamp(2013-06-01T00:01:00)>=e.tx_from", + "expected1,expected2,expected3", + "expected1[(s2)-[e2]->(s2)], expected2[(s0)-[e0]->(s1)], expected3[(s0)-[e1]->(s1)]" + }); + + // 1.[(Shevchenko Pl & E7 St)] + // 2.[(Fulton St & Grand Ave)] + data.add(new String[] { + "Comparison_HOM_5_default_citibike", + "MATCH (a) WHERE a.tx_to >= Timestamp(2013-07-28T00:59:59)", + "expected1,expected2", + "expected1[(s25)], expected2[(s20)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismContainsData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismContainsData.java new file mode 100644 index 000000000000..764cc9b68767 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismContainsData.java @@ -0,0 +1,76 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismContainsData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St) <- (Henry St & Grand St)] + //2.[(Broadway & W 29) -[e13]-> (8 Ave & W31) <-[e19] (Broadway & W29)) ( + data.add(new String[] { + "Contains_HOM_1_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE e1!=e2 AND e1.val.contains(e2.val)", + "expected1,expected2", + "expected1[(s8)-[e6]->(s9)<-[e11]-(s18)], expected2[(s21)-[e13]->(s11)<-[e19]-(s21)]" + }); + + //1.[(Broadway & E14)->(S5 Pl & S 5 St)] + //2.[(W37 St & 5 Ave)->(Hicks St & Montague St)] + data.add(new String[] { + "Contains_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.contains(Timestamp(2013-06-01T00:35:35)) AND " + + "NOT b.tx.contains(Timestamp(2013-07-17))", + "expected1,expected2", + "expected1[(s8)-[e6]->(s9)], expected2[(s7)-[e5]->(s2)]" + }); + + // 1.[(Murray St & West St) -> (Shevchenko Pl)] + data.add(new String[] { + "Contains_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.join(b.val).contains(Interval(" + + "Timestamp(2013-05-12), Timestamp(2013-07-28)))", + "expected1", + "expected1[(s24)-[e15]->(s25)]" + }); + + //(empty) + data.add(new String[] { + "Contains_HOM_4_default_citibike", + "MATCH (a) WHERE NOT a.tx.contains(a.tx)", + "[]", + "[]" + }); + + // 1.[(Hicks St)->(Hicks St)] + // 2.[(E20 St & Park Ave)->(E20 St & Park Ave)] + // 3.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + data.add(new String[] { + "Contains_HOM_5_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.tx.merge(b.tx).contains(a.tx)", + "expected1,expected2,expected3", + "expected1[(s2)-[e2]->(s2)], expected2[(s27)-[e17]->(s27)], " + + "expected3[(s8)-[e6]->(s9)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismEqualsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismEqualsTest.java new file mode 100644 index 000000000000..a9c6d5cca82f --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismEqualsTest.java @@ -0,0 +1,57 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismEqualsTest implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Hicks St)->(Hicks St)] + //2.[(E20 St & Park Ave) -> (E20 St & Park Ave)] + data.add(new String[] { + "Equals_HOM1_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.tx.equals(b.tx)", + "expected1,expected2", + "expected1[(s2)-[e2]->(s2)], expected2[(s27)-[e17]->(s27)]" + }); + + // 1.[(9 Ave & W14 St)->(Mercer St & Spring St)] + data.add(new String[] { + "Equals_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.equals(Interval(Timestamp(2013-06-01T00:04:22)," + + " Timestamp(2013-06-01T00:18:11)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14 St)->(Mercer St & Spring St)] + data.add(new String[] { + "Equals_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.equals(Interval(Timestamp(2013-05-15)," + + " Timestamp(2013-07-23))) AND Interval(Timestamp(2013-05-20),Timestamp(2013-07-18)).equals(b.val)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismFromToData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismFromToData.java new file mode 100644 index 000000000000..873752d9a8f6 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismFromToData.java @@ -0,0 +1,70 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismFromToData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(W37 St & 5 Ave) -> (Hicks St)] + // 2.[(Hicks St) -> (Hicks St)] + // 3.[(Broadway & E 14) -[edgeId:6]-> (S 5 Pl & S 5 St)] + // 4.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "FromTo_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.fromTo(Timestamp(2013-06-01T00:35:00), " + + "Timestamp(2013-06-01T00:40:00))", + "expected1,expected2,expected3,expected4", + "expected1[(s7)-[e5]->(s2)], expected2[(s2)-[e2]->(s2)]," + + "expected3[(s8)-[e6]->(s9)], expected4[(s28)-[e18]->(s29)]" + }); + + // 1.[(Broadway & W 29) -[e19]-> (8 Ave & W 31) <-[e19]- (Broadway & W29)] + // 2.[(Broadway & W 29) -[e19]-> (8 Ave & W 31) <-[e13]- (Broadway & W29)] + // 3.[(Broadway & W 29) -[e13]-> (8 Ave & W 31) <-[e19]- (Broadway & W29)] + // 4.[(Broadway & W 29) -[e13]-> (8 Ave & W 31) <-[e13]- (Broadway & W29)] + data.add(new String[] { + "FromTo_HOM_2_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(a) WHERE a.id=486 AND " + + "e1.val.fromTo(e2.val_from, e2.val_to)", + "expected1,expected2,expected3,expected4", + "expected1[(s21)-[e13]->(s11)<-[e13]-(s21)]," + + "expected2[(s21)-[e13]->(s11)<-[e19]-(s21)]," + + "expected3[(s21)-[e19]->(s11)<-[e13]-(s21)]," + + "expected4[(s21)-[e19]->(s11)<-[e19]-(s21)]" + }); + + // 1.[(E15 St & Irving Pl) -> (Washington Park)] + // 2.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "FromTo_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT e.val" + + ".fromTo(Timestamp(2013-06-01T00:04:00), Timestamp(2013-06-01T00:08:00))", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4)], expected2[(s21)-[e19]->(s11)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelyPrecedesTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelyPrecedesTest.java new file mode 100644 index 000000000000..5e701d651837 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelyPrecedesTest.java @@ -0,0 +1,66 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismImmediatelyPrecedesTest implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmPrecedes_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.immediatelyPrecedes(" + + "Interval(Timestamp(2013-06-01T00:18:11), Timestamp(2020-05-05)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmPrecedes_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01), Timestamp(2013-06-01T00:04:22))" + + ".immediatelyPrecedes(e.val)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmPrecedes_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.immediatelyPrecedes(" + + "Interval(Timestamp(2013-07-23), Timestamp(2020-05-05)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // empty + data.add(new String[] { + "ImmPrecedes_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.immediatelyPrecedes(" + + "Interval(Timestamp(2013-07-23T00:00:01), Timestamp(2020-05-05)))", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelySucceedsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelySucceedsTest.java new file mode 100644 index 000000000000..7c72d37a41f7 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismImmediatelySucceedsTest.java @@ -0,0 +1,66 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismImmediatelySucceedsTest implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmSucceeds_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01T00:18:11), Timestamp(2020-05-05))" + + ".immediatelySucceeds(e.tx)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmSucceeds_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "e.val.immediatelySucceeds(Interval(Timestamp(2013-06-01), Timestamp(2013-06-01T00:04:22)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmSucceeds_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-07-23), Timestamp(2020-05-05))" + + ".immediatelySucceeds(a.val)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // empty + data.add(new String[] { + "ImmSucceeds_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-07-23T00:00:01), " + + "Timestamp(2020-05-05)).immediatelySucceeds(a.val)", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtLeastData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtLeastData.java new file mode 100644 index 000000000000..7c2bdfe4435e --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtLeastData.java @@ -0,0 +1,73 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismLengthAtLeastData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + //5.[(Hicks St & Montague St) -> (Hicks St & Montague St)] + data.add(new String[] { + "LengthAtLeast_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE val.lengthAtLeast(Minutes(30))", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)], " + + "expected5[(s2)-[e2]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + //4.[(E33 St & 2 Ave) -> (Division St & Bowery)] (!!! other than in longerThan) + data.add(new String[] { + "LengthAtLeast_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.join(b.val).lengthAtLeast(Days(75))", + "expected1,expected2,expected3,expected4", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)], " + + "expected4[(s22)-[e14]->(s23)]" + }); + + //empty + data.add(new String[] { + "LengthAtLeast_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.lengthAtLeast(Hours(1))", + "[]", + "[]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "LengthAtLeast_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:05:00))" + + ".lengthAtLeast(val)", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtMostData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtMostData.java new file mode 100644 index 000000000000..59058edc1b1e --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLengthAtMostData.java @@ -0,0 +1,76 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismLengthAtMostData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + //5.[(Hicks St & Montague St) -> (Hicks St & Montague St)] + data.add(new String[] { + "LengthAtMost_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:30:00))" + + ".lengthAtMost(val)", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)], " + + "expected5[(s2)-[e2]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + //4.[(E 33 St & 2 Ave) -> (Division St & Bowery) + data.add(new String[] { + "LengthAtMost_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-05-10), Timestamp(2013-07-24))" + + ".lengthAtMost(a.val.join(b.val))", + "expected1,expected2,expected3,expected4", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)]," + + "expected4[(s22)-[e14]->(s23)]" + }); + + //empty + data.add(new String[] { + "LengthAtMost_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01), Timestamp(1970-01-01T01:00:00))" + + ".lengthAtMost(e.tx)", + "[]", + "[]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "LengthAtMost_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "val.lengthAtMost(Minutes(5))", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLongerThanData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLongerThanData.java new file mode 100644 index 000000000000..2dcd53c69c3f --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismLongerThanData.java @@ -0,0 +1,94 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismLongerThanData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + //5.[(Hicks St & Montague St) -> (Hicks St & Montague St)] + data.add(new String[] { + "LongerThan_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE val.longerThan(Minutes(30))", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)], " + + "expected5[(s2)-[e2]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + data.add(new String[] { + "LongerThan_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.join(b.val).longerThan(Days(75))", + "expected1,expected2,expected3", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)]" + }); + + //empty + data.add(new String[] { + "LongerThan_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.longerThan(Hours(1))", + "[]", + "[]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "LongerThan_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:05:00))" + + ".longerThan(val)", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + //5.[(Hicks St & Montague St) -> (Hicks St & Montague St)] + data.add(new String[] { + "LongerThan_HOM_5_default_citibike", + "MATCH (a)-[e]->(b) WHERE val.longerThan(Interval(" + + "Timestamp(1970-01-01), Timestamp(1970-01-01T00:30:00)))", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)], " + + "expected5[(s2)-[e2]->(s2)]" + }); + + //empty + data.add(new String[] { + "LongerThan_HOM_6_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT b.tx.longerThan(val)", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMergeAndJoinData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMergeAndJoinData.java new file mode 100644 index 000000000000..a9f6e2e6d3ec --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMergeAndJoinData.java @@ -0,0 +1,76 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismMergeAndJoinData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Fulton St) (Shevchenko Pl) + data.add(new String[] { + "MergeJoin_HOM_1_default_citibike", + "MATCH (a) (b) WHERE a.id>b.id AND a.val.merge(b.val).overlaps(" + + "Interval(Timestamp(2013-07-28T12:00), Timestamp(2013-07-30)))", + "expected1", + "expected1[(s20)(s25)]" + }); + + // empty + data.add(new String[] { + "MergeJoin_HOM_2_default_citibike", + "MATCH (a) WHERE NOT a.val.merge(a.val).contains(a.val.join(a.val))", + "[]", + "[]" + }); + + // 1.[(Murray St & West St) -> (Shevchenko Pl)] + data.add(new String[] { + "MergeJoin_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.tx.join(b.tx)" + + ".contains(Interval(Timestamp(2013-05-12),Timestamp(2013-07-28)))", + "expected1", + "expected1[(s24)-[e15]->(s25)]" + }); + + // do not merge/join when no overlap + // 1. [(Broadway & W 24 St) -[e1]-> (9 Ave & W 18)] + data.add(new String[] { + "MergeJoin_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.id=444 AND Interval(Timestamp(1970-01-01),Timestamp(1970-01-02))" + + ".precedes(e.val.join(Interval(Timestamp(2013-06-01T00:11:40),Timestamp(2017-01-01))))", + "expected1", + "expected1[(s0)-[e1]->(s1)]" + }); + + // 1. [(Broadway & W 24 St) -[e1]-> (9 Ave & W 18)] + data.add(new String[] { + "MergeJoin_HOM_5_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.id=444 AND Interval(Timestamp(1970-01-01),Timestamp(1970-01-02)).precedes(" + + "e.val.merge(Interval(Timestamp(2013-06-01T00:11:40),Timestamp(2017-01-01))))", + "expected1", + "expected1[(s0)-[e1]->(s1)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMinMaxTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMinMaxTest.java new file mode 100644 index 000000000000..11d8517ff82f --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismMinMaxTest.java @@ -0,0 +1,69 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismMinMaxTest implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1. [ (9 Ave & W 18)<-[e0]-(Broadway & W24)-[e1]-> (9 Ave & W 18)] + // 2. [ (9 Ave & W 18)<-[e1]-(Broadway & W24)-[e0]-> (9 Ave & W 18)] + data.add(new String[] { + "MinMax_HOM_1_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) " + + "WHERE e1.tx_from!=e2.tx_from AND MIN(a.tx_from, b.tx_from, c.tx_from)=Timestamp(2013-05-10)", + "expected1,expected2", + "expected1[(s1)<-[e0]-(s0)-[e1]->(s1)],expected2[(s1)<-[e1]-(s0)-[e0]->(s1)]" + }); + + // 1. [ (9 Ave & W 18)<-[e0]-(Broadway & W24)-[e1]-> (9 Ave & W 18)] + // 2. [ (9 Ave & W 18)<-[e1]-(Broadway & W24)-[e0]-> (9 Ave & W 18)] + data.add(new String[] { + "MinMax_HOM_2_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) " + + "WHERE e1.tx_from!=e2.tx_from AND MAX(a.tx_to, b.tx_to, c.tx_to)=Timestamp(2013-07-18)", + "expected1,expected2", + "expected1[(s1)<-[e0]-(s0)-[e1]->(s1)],expected2[(s1)<-[e1]-(s0)-[e0]->(s1)]" + }); + + // empty + data.add(new String[] { + "MinMax_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE val_from!=MAX(a.val_from,e.val_from) OR " + + "val_to!=MIN(b.val_to,e.val_to)", + "[]", + "[]" + }); + + // empty + data.add(new String[] { + "MinMax_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT a.tx.join(b.tx).equals(" + + "Interval(MIN(a.tx_from, b.tx_from), MAX(a.tx_to, b.tx_to)))", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOtherData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOtherData.java new file mode 100644 index 000000000000..2d126ecec242 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOtherData.java @@ -0,0 +1,50 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismOtherData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // with labels + // 1. [ (9 Ave & W 18)<-[e0]-(Broadway & W24)-[e1]-> (9 Ave & W 18)] + // 2. [ (9 Ave & W 18)<-[e1]-(Broadway & W24)-[e0]-> (9 Ave & W 18)] + data.add(new String[] { + "Other_HOM_1_default_citibike", + "MATCH (a:station)<-[e1:trip]-(b:station)-[e2:trip]->(c:station) " + + "WHERE e1.tx_from!=e2.tx_from AND MIN(a.tx_from, b.tx_from, c.tx_from)=Timestamp(2013-05-10)", + "expected1,expected2", + "expected1[(s1)<-[e0]-(s0)-[e1]->(s1)],expected2[(s1)<-[e1]-(s0)-[e0]->(s1)]" + }); + + // path expression and equality constraint on ids + data.add(new String[] { + "Other_HOM_2_default_citibike", + "MATCH (a:station)-[e1:trip*1..2]->(b:station)" + + "WHERE a.id=503 AND a.id=b.id", + "expected1,expected2", + "expected1[(s27)-[e17]->(s27)],expected2[(s27)-[e17]->(s27)-[e17]->(s27)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOverlapsData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOverlapsData.java new file mode 100644 index 000000000000..d4500d7f32bc --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismOverlapsData.java @@ -0,0 +1,85 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismOverlapsData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(Stanton St & Chrystie St) -[e8]-> (Hancock St & Bedford Ave) + // (E15 St & Irving Pl)-[e3]->(Washington Park)] + data.add(new String[] { + "Overlaps_HOM_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE e1.edgeId=8 AND NOT e1.val.overlaps(e2.val)", + "expected1", + "expected1[(s12)-[e8]->(s13) (s3)-[e3]->(s4)]" + }); + + // identical edges overlap, too + // 1.[(Broadway & W29) -[edgeId:7]-> (8 Ave & W 31) + // (Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(Broadway & W29) -[edgeId:7]-> (8 Ave & W 31) + // (Broadway & W29) -[edgeId:7]->(8 Ave & W31)] + // 3.[(Broadway & W29) -[edgeId:19]-> (8 Ave & W 31) + // (Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 4.[(Broadway & W29) -[edgeId:19]-> (8 Ave & W 31) + // (Broadway & W29) -[edgeId:7]->(8 Ave & W31)] + data.add(new String[] { + "Overlaps_HOM_2_default_citibike", + "MATCH (a)-[e1]->(b) (a)-[e2]->(b) WHERE a.id=486 AND e1.val.overlaps(e2.val)", + "expected1,expected2,expected3,expected4", + "expected1[(s21)-[e13]->(s11) (s21)-[e13]->(s11)], " + + "expected2[(s21)-[e13]->(s11) (s21)-[e19]->(s11)], " + + "expected3[(s21)-[e19]->(s11) (s21)-[e13]->(s11)], " + + "expected4[(s21)-[e19]->(s11) (s21)-[e19]->(s11)]" + }); + + // 1.[(Hicks St & Montague)-[edgeId:2]->(Hicks St & Montague) + // (W37 St & 4 Ave)-[edgeId:5]->(Hicks St & Montague)] + data.add(new String[] { + "Overlaps_HOM_3_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(b) WHERE b.id=406 " + + "AND e1.val_from.before(e2.val_from) " + + "AND e2.val.overlaps(e1.val)", + "expected1", + "expected1[(s2)-[e2]->(s2) (s7)-[e5]->(s2)]" + }); + + // 1.[(Hicks St & Montague)->(Hicks St & Montague)] + // 2.[(Broadway & E14 St) -> (S5 Pl & S5 St)] + // 3.[(Broadway & W24 St) -[edgeId:0]-> (9 Ave & W18)] + // 4.[(Broadway & W24 St) -[edgeId:1]-> (9 Ave & W18)] + // 5.[(Lispenard St & Broadway) -> (Broadway & W51 St)] + data.add(new String[] { + "Overlaps_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "e.val.overlaps(Interval(Timestamp(2013-06-01T00:00:00), Timestamp(2013-06-01T00:01:00))) OR " + + "e.val.overlaps(Interval(Timestamp(2013-06-01T00:36:00), " + + "Timestamp(2013-06-01T00:37:00)))", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s2)-[e2]->(s2)], expected2[(s8)-[e6]->(s9)], expected3[(s0)-[e0]->(s1)]," + + "expected4[(s0)-[e1]->(s1)], expected5[(s28)-[e18]->(s29)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismPrecedesData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismPrecedesData.java new file mode 100644 index 000000000000..0fdcc236e7b9 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismPrecedesData.java @@ -0,0 +1,74 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismPrecedesData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(E 15 St & Irving)->(Washington Park) (Henry St & Grand St)->(S5 Pl & S 5 St)] + data.add(new String[] { + "Precedes_HOM_1_default_citibike", + "MATCH ()-[e1]->() ()-[e2]->(a) WHERE a.id=532 AND e1.edgeId=3" + + " AND e1.val.precedes(e2.val)", + "expected1", + "expected1[(s3)-[e3]->(s4) (s18)-[e11]->(s9)]" + }); + + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(E 20 St & Park Ave) -> (E 20 St & Park Ave)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Precedes_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01T00:00:00), Timestamp(2013-06-01T00:07:00))" + + ".precedes(e.tx)", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)], expected2[(s27)-[e17]->(s27)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(E 20 St & Park Ave) -> (E 20 St & Park Ave)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Precedes_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Timestamp(2013-06-01T00:07:00).precedes(e.tx)", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)], expected2[(s27)-[e17]->(s27)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + // 1.[(Hicks St) -> (Hicks St)] + // 2.[Broadway & W24) -[edgeId:0]-> (9 Ave & W18) + // 3.[Broadway & W24) -[edgeId:1]-> (9 Ave & W18) + data.add(new String[] { + "Precedes_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val_from.precedes(" + + "Interval(Timestamp(2013-06-01T00:01:00), Timestamp(2013-06-01T00:01:01)))", + "expected1,expected2,expected3", + "expected1[(s2)-[e2]->(s2)], expected2[(s0)-[e0]->(s1)], " + + "expected3[(s0)-[e1]->(s1)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelectedData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelectedData.java new file mode 100644 index 000000000000..a1938b3dfaa6 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelectedData.java @@ -0,0 +1,90 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * Contains a set of queries taken from the other homomorphism test data + */ +public class HomomorphismSelectedData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); +// 1.[(Broadway & W 29 St) -[edgeId:19]-> (8 Ave & W 31)] + // 2.[(E15 St & Irving) -> (Washington Park) + // 2.[(Lispenard St) -> (Broadway & W 51)] + data.add(new String[] { + "AsOf_HOM3_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT e.tx.asOf(Timestamp(2013-06-01T00:08:00))", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)], expected2[(s3)-[e3]->(s4)]," + + " expected3[(s28)-[e18]->(s29)]" + }); + + // 1. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + // 3. [(E15 St) -> (Washington P.) (Hicks St) -> (Hicks St)] + data.add(new String[] { + "Comparison_HOM_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) " + + "WHERE e1.val_from>e2.val_from AND a.id=475", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4) (s0)-[e0]->(s1)], " + + "expected2[(s3)-[e3]->(s4) (s0)-[e1]->(s1)], " + + "expected3[(s3)-[e3]->(s4) (s2)-[e2]->(s2)]" + }); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + //5.[(Hicks St & Montague St) -> (Hicks St & Montague St)] + data.add(new String[] { + "LengthAtLeast_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE val.lengthAtLeast(Minutes(30))", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)], " + + "expected5[(s2)-[e2]->(s2)]" + }); + + // 1.[(Murray St & West St) -> (Shevchenko Pl)] + data.add(new String[] { + "MergeJoin_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.tx.join(b.tx).contains(Interval(" + + " Timestamp(2013-05-12),Timestamp(2013-07-28)))", + "expected1", + "expected1[(s24)-[e15]->(s25)]" + }); + + // with labels + // 1. [ (9 Ave & W 18)<-[e0]-(Broadway & W24)-[e1]-> (9 Ave & W 18)] + // 2. [ (9 Ave & W 18)<-[e1]-(Broadway & W24)-[e0]-> (9 Ave & W 18)] + data.add(new String[] { + "Other_HOM_1_default_citibike", + "MATCH (a:station)<-[e1:trip]-(b:station)-[e2:trip]->(c:station) " + + "WHERE e1.tx_from!=e2.tx_from AND MIN(a.tx_from, b.tx_from, c.tx_from)=Timestamp(2013-05-10)", + "expected1,expected2", + "expected1[(s1)<-[e0]-(s0)-[e1]->(s1)],expected2[(s1)<-[e1]-(s0)-[e0]->(s1)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelfLoopData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelfLoopData.java new file mode 100644 index 000000000000..c0f93aba95a4 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSelfLoopData.java @@ -0,0 +1,34 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismSelfLoopData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + data.add(new String[] { + "SelfLoop_HOM_1_default_citibike", + "MATCH (a)-[e]->(a)", + "expected1,expected2", "expected1[(s2)-[e2]->(s2)],expected2[(s27)-[e17]->(s27)]" + }); + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismShorterThanData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismShorterThanData.java new file mode 100644 index 000000000000..00725a924e76 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismShorterThanData.java @@ -0,0 +1,90 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismShorterThanData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + //5.[(Hicks St & Montague St) -> (Hicks St & Montague St)] + data.add(new String[] { + "ShorterThan_HOM_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:30:00))" + + ".shorterThan(val)", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)], " + + "expected5[(s2)-[e2]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + data.add(new String[] { + "ShorterThan_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-05-10), Timestamp(2013-07-24))" + + ".shorterThan(a.val.join(b.val))", + "expected1,expected2,expected3", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)]" + }); + + //empty + data.add(new String[] { + "ShorterThan_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01), Timestamp(1970-01-01T01:00:00))" + + ".shorterThan(e.tx)", + "[]", + "[]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "ShorterThan_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "val.shorterThan(Minutes(5))", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + //5.[(Hicks St & Montague St) -> (Hicks St & Montague St)] + data.add(new String[] { + "ShorterThan_HOM_5_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "Interval(Timestamp(1970-01-01), Timestamp(1970-01-01T00:30:00)).shorterThan(val)", + "expected1,expected2,expected3,expected4,expected5", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)], " + + "expected5[(s2)-[e2]->(s2)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSucceedsData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSucceedsData.java new file mode 100644 index 000000000000..8bef0831340b --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/homomorphism/HomomorphismSucceedsData.java @@ -0,0 +1,75 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.homomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class HomomorphismSucceedsData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(E 15 St & Irving)->(Washington Park) (Henry St & Grand St)->(S5 Pl & S 5 St)] + data.add(new String[] { + "Succeeds_HOM_1_default_citibike", + "MATCH ()-[e1]->() ()-[e2]->(a) WHERE a.id=532 AND e1.edgeId=3 AND e2.val.succeeds(e1.val)", + "expected1", + "expected1[(s3)-[e3]->(s4) (s18)-[e11]->(s9)]" + }); + + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(E 20 St & Park Ave) -> (E 20 St & Park Ave)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Succeeds_HOM_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx" + + ".succeeds(Interval(Timestamp(2013-06-01T00:00:00), Timestamp(2013-06-01T00:07:00)))", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)], expected2[(s27)-[e17]->(s27)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + // same as above, but now testing call from timestamp + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(E 20 St & Park Ave) -> (E 20 St & Park Ave)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Succeeds_HOM_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx_from.succeeds(Interval(Timestamp(2013-06-01T00:00:00)," + + "Timestamp(2013-06-01T00:07:00)))", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)], expected2[(s27)-[e17]->(s27)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + // 1.[Broadway & W24) -[edgeId:0]-> (9 Ave & W18) + // 2.[Broadway & W24) -[edgeId:1]-> (9 Ave & W18) + data.add(new String[] { + "Succeeds_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.id=444 AND " + + "Interval(Timestamp(2013-06-01T00:11:41), Timestamp(2013-06-01T00:11:50))" + + ".succeeds(e.val)", + "expected1,expected2", + "expected1[(s0)-[e0]->(s1)], expected2[(s0)-[e1]->(s1)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAfterData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAfterData.java new file mode 100644 index 000000000000..aa9a952ae58a --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAfterData.java @@ -0,0 +1,53 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +// +// Inversions from {@link IsomorphismBeforeData}. + +public class IsomorphismAfterData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + data.add(new String[] { + "After_ISO_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE " + + "e1.val_from.after(e2.val_from) AND a.id=475", + "expected1,expected2", + "expected1[(s3)-[e3]->(s4) (s0)-[e0]->(s1)], " + + "expected2[(s3)-[e3]->(s4) (s0)-[e1]->(s1)]" + }); + + // 1. [(Broadway & E14) -> (S 5 Pl) <- (Henry St & Grand St)] + data.add(new String[] { + "After_ISO_2_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE b.id=532 AND e1.tx_from.after(e2.tx_from) " + + "AND e2.tx_to.after(e1.tx_to)", + "expected1", + "expected1[(s8)-[e6]->(s9)<-[e11]-(s18)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAsOfData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAsOfData.java new file mode 100644 index 000000000000..8d97dfdfbc92 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismAsOfData.java @@ -0,0 +1,47 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismAsOfData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2.[(Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + data.add(new String[] { + "AsOf_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.asOf(Timestamp(2013-06-01T00:01:00))", + "expected1,expected2", + "expected1[(s0)-[e0]->(s1)], expected2[(s0)-[e1]->(s1)]" + }); + + // 1.[(Greenwich St & W Houston)<-(Murray St & West St)->(Shevchenko Pl)] + data.add(new String[] { + "AsOf_ISO_2_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) WHERE b.id=309 AND e2.val.asOf(e1.val_from)", + "expected1", + "expected1[(s26)<-[e16]-(s24)-[e15]->(s25)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBeforeData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBeforeData.java new file mode 100644 index 000000000000..b39fab96a7db --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBeforeData.java @@ -0,0 +1,51 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismBeforeData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + data.add(new String[] { + "Before_ISO_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE " + + "e2.val_from.before(e1.val_from) AND a.id=475", + "expected1,expected2", + "expected1[(s3)-[e3]->(s4) (s0)-[e0]->(s1)], " + + "expected2[(s3)-[e3]->(s4) (s0)-[e1]->(s1)]" + }); + + // 1. [(Henry St & Grand St) -> (S 5 Pl) <- (Broadway & E14)] + data.add(new String[] { + "Before_ISO_2_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE b.id=532 AND e2.tx_from.before(e1.tx_from) " + + "AND e1.tx_to.before(e2.tx_to)", + "expected1", + "expected1[(s18)-[e11]->(s9)<-[e6]-(s8)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBetweenData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBetweenData.java new file mode 100644 index 000000000000..11ea3117a358 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismBetweenData.java @@ -0,0 +1,66 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismBetweenData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // test to show difference to fromTo, cf. Between_ISO_5_default_citibike + // 1.[Broadway & W24) -[edgeId:0]-> (9 Ave & W18) + // 2.[Broadway & W24) -[edgeId:1]-> (9 Ave & W18) + data.add(new String[] { + "Between_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.id=444 AND " + + "e.val.between(Timestamp(2013-06-01T00:00:01),Timestamp(2013-06-01T00:00:08))", + "expected1,expected2", + "expected1[(s0)-[e0]->(s1)], expected2[(s0)-[e1]->(s1)]" + }); + // same as for fromTo, should work + + // 1.[(W37 St & 5 Ave) -> (Hicks St)] + // 2.[(Broadway & E 14) -[edgeId:6]-> (S 5 Pl & S 5 St)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Between_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.between(Timestamp(2013-06-01T00:35:00), " + + "Timestamp(2013-06-01T00:40:00))", + "expected1,expected2,expected3", + "expected1[(s7)-[e5]->(s2)]," + + "expected2[(s8)-[e6]->(s9)], expected3[(s28)-[e18]->(s29)]" + }); + + // 1.[(E15 St & Irving Pl) -> (Washington Park)] + // 2.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Between_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT " + + "e.val.between(Timestamp(2013-06-01T00:04:00), Timestamp(2013-06-01T00:08:00))", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4)], expected2[(s21)-[e19]->(s11)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComparisonData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComparisonData.java new file mode 100644 index 000000000000..254e2757cee7 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComparisonData.java @@ -0,0 +1,61 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismComparisonData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:1]-> (9 Ave & W18)] + // 2. [(E15 St) -> (Washington P.) (Broadway & W24) -[edgeId:0]-> (9 Ave & W18)] + data.add(new String[] { + "Comparison_ISO_1_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE " + + "e1.val_from>e2.val_from AND a.id=475", + "expected1,expected2", + "expected1[(s3)-[e3]->(s4) (s0)-[e0]->(s1)], " + + "expected2[(s3)-[e3]->(s4) (s0)-[e1]->(s1)]" + }); + + // 1. [(Broadway & E14) -> (S 5 Pl) <- (Henry St & Grand St)] + data.add(new String[] { + "Comparison_ISO_2_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE b.id=532 AND e1.tx_from>e2.tx_from " + + "AND e2.tx_to>=e1.tx_to", + "expected1", + "expected1[(s8)-[e6]->(s9)<-[e11]-(s18)]" + }); + + // 1.[(9 Ave & W22) -> (8 Ave & W31) <-[edgeId:19]- (Broadway & W29)] + // 2.[(9 Ave & W22) -> (8 Ave & W31) <-[edgeId:13]- (Broadway & W29)] + data.add(new String[] { + "Comparison_ISO_3_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE b.id=521 AND e1.bikeID=16100 " + + "AND e2.val_from > e1.val_from", + "expected1,expected2", + "expected1[(s10)-[e7]->(s11)<-[e19]-(s21)], " + + "expected2[(s10)-[e7]->(s11)<-[e13]-(s21)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComplexQueryData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComplexQueryData.java new file mode 100644 index 000000000000..578ff4bb594d --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismComplexQueryData.java @@ -0,0 +1,71 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class +IsomorphismComplexQueryData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + /* + * 1.[Broadway & W24) -[edgeId:0]-> (9 Ave & W18) + * 2.[Broadway & W24) -[edgeId:1]-> (9 Ave & W18) + */ + data.add(new String[] { + "Complex_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE Timestamp(2013-06-01T00:01:00).after(e.tx_from) " + + "AND e.val.asOf(Timestamp(2013-06-01T00:01:00))", + "expected1,expected2", + "expected1[(s0)-[e0]->(s1)], expected2[(s0)-[e1]->(s1)]" + }); + + /* + * 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + * 2.[(Lispenard St) -> (Broadway & W 51 St)] + * 3.1.[(E15 St & Irving Pl) -> (Washington Park)] + */ + data.add(new String[] { + "Precedes_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01T00:00:00), Timestamp(2013-06-01T00:07:00))" + + ".precedes(e.tx) OR (NOT " + + "e.val.between(Timestamp(2013-06-01T00:04:00), Timestamp(2013-06-01T00:08:00)) AND " + + " b.val.between(Timestamp(2013-07-22T00:00:00), Timestamp(2013-07-30)))", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)]," + + "expected2[(s28)-[e18]->(s29)],expected3[(s3)-[e3]->(s4)]" + }); + + /* + * 1.[(Lispenard St) -> (Broadway & W 51 St)] + */ + data.add(new String[] { + "Succeeds_ISO_6_default_citibike", + "MATCH (a)-[e]->(b) WHERE Timestamp(2013-06-01T00:07:00).precedes(e.tx)" + + " AND Timestamp(2013-05-12).succeeds(" + + "Interval(Timestamp(1970-01-01),a.val_from)) AND e.val.fromTo(" + + " Timestamp(2013-06-01T00:35:00), Timestamp(2013-06-01T00:40:00))", + "expected1", + "expected1[(s28)-[e18]->(s29)]" + }); + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismContainsData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismContainsData.java new file mode 100644 index 000000000000..6c79fd00f2fb --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismContainsData.java @@ -0,0 +1,58 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismContainsData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St) <- (Henry St & Grand St)] + data.add(new String[] { + "Contains_ISO_1_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(c) WHERE e1!=e2 AND e1.val.contains(e2.val)", + "expected1", + "expected1[(s8)-[e6]->(s9)<-[e11]-(s18)]" + }); + + //1.[(Broadway & E14)->(S5 Pl & S 5 St)] + //2.[(W37 St & 5 Ave)->(Hicks St & Montague St)] + data.add(new String[] { + "Contains_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.contains(Timestamp(2013-06-01T00:35:35)) AND " + + "NOT b.tx.contains(Timestamp(2013-07-17))", + "expected1,expected2", + "expected1[(s8)-[e6]->(s9)], expected2[(s7)-[e5]->(s2)]" + }); + + // 1.[(Murray St & West St) -> (Shevchenko Pl)] + data.add(new String[] { + "Contains_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.join(b.val).contains(Interval(" + + "Timestamp(2013-05-12),Timestamp(2013-07-28)))", + "expected1", + "expected1[(s24)-[e15]->(s25)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismEqualsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismEqualsTest.java new file mode 100644 index 000000000000..38bc8ca06214 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismEqualsTest.java @@ -0,0 +1,67 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * almost the same as for homomorphism + */ +public class IsomorphismEqualsTest implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //empty + data.add(new String[] { + "Equals_ISO1_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.tx.equals(b.tx)", + "[]", + "[]" + }); + + // 1.[(9 Ave & W14 St)->(Mercer St & Spring St)] + data.add(new String[] { + "Equals_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.equals(Interval(Timestamp(2013-06-01T00:04:22)," + + " Timestamp(2013-06-01T00:18:11)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14 St)->(Mercer St & Spring St)] + data.add(new String[] { + "Equals_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.equals(Interval(Timestamp(2013-05-15)," + + " Timestamp(2013-07-23))) AND Interval(Timestamp(2013-05-20),Timestamp(2013-07-18)).equals(b.val)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // empty + data.add(new String[] { + "Equals_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.tx.equals(e.tx) OR e.tx.equals(b.tx)", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismFromToData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismFromToData.java new file mode 100644 index 000000000000..e55fa764c898 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismFromToData.java @@ -0,0 +1,81 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismFromToData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(W37 St & 5 Ave) -> (Hicks St)] + // 2.[(Broadway & E 14) -[edgeId:6]-> (S 5 Pl & S 5 St)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "FromTo_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.fromTo(" + + "Timestamp(2013-06-01T00:35:00), Timestamp(2013-06-01T00:40:00))", + "expected1,expected2,expected3", + "expected1[(s7)-[e5]->(s2)]," + + "expected2[(s8)-[e6]->(s9)], expected3[(s28)-[e18]->(s29)]" + }); + + // 1.[(E15 St & Irving Pl) -> (Washington Park)] + // 2.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "FromTo_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT e.val" + + ".fromTo(Timestamp(2013-06-01T00:04:00), Timestamp(2013-06-01T00:08:00))", + "expected1,expected2,expected3", + "expected1[(s3)-[e3]->(s4)], expected2[(s21)-[e19]->(s11)], " + + "expected3[(s28)-[e18]->(s29)]" + }); + + // 1.[(Broadway & W 29) -[e19]-> (8 Ave & W 31) <-[e13]- (Broadway & W29)] + // 2.[(Broadway & W 29) -[e13]-> (8 Ave & W 31) <-[e19]- (Broadway & W29)] + data.add(new String[] { + "From_ISO_3_default_citibike", + "MATCH (a)-[e1]->(b)<-[e2]-(a) WHERE a.id=486 AND " + + "e1.val.fromTo(e2.val_from, e2.val_to)", + "expected1,expected2", + "expected1[(s21)-[e19]->(s11)<-[e13]-(s21)]," + + "expected2[(s21)-[e13]->(s11)<-[e19]-(s21)]" + }); + + // 1.[(W37 St & 5 Ave) -> (Hicks St)] + // 2.[(Stanton St) -> (Hancock St & Bedford Ave)] + // 3.[(Broadway & E 14) -[edgeId:6]-> (S 5 Pl & S 5 St)] + // 4.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "From_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01T00:34:00),Timestamp(2013-06-01T00:35:00))" + + ".fromTo(e.val_from, e.val_to)", + "expected1,expected2,expected3,expected4", + "expected1[(s7)-[e5]->(s2)]," + + "expected2[(s12)-[e8]->(s13)], expected3[(s8)-[e6]->(s9)]," + + "expected4[(s28)-[e18]->(s29)]" + }); + + return data; + } + +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelyPrecedesTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelyPrecedesTest.java new file mode 100644 index 000000000000..f1ec24250f18 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelyPrecedesTest.java @@ -0,0 +1,60 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * same as for homomorphism + */ +public class IsomorphismImmediatelyPrecedesTest implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmPrecedes_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.immediatelyPrecedes(" + + "Interval(Timestamp(2013-06-01T00:18:11), Timestamp(2020-05-05)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmPrecedes_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01), Timestamp(2013-06-01T00:04:22))" + + ".immediatelyPrecedes(e.val)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmPrecedes_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.immediatelyPrecedes(" + + "Interval(Timestamp(2013-07-23), Timestamp(2020-05-05)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelySucceedsTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelySucceedsTest.java new file mode 100644 index 000000000000..41ff2e674736 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismImmediatelySucceedsTest.java @@ -0,0 +1,69 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * same as for homomorphism + */ +public class IsomorphismImmediatelySucceedsTest implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmSucceedes_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01T00:18:11), Timestamp(2020-05-05))" + + ".immediatelySucceeds(e.tx)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmSucceedes_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "e.val.immediatelySucceeds(Interval(Timestamp(2013-06-01), Timestamp(2013-06-01T00:04:22)))", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // 1.[(9 Ave & W14) -> (Mercer St & Spring St)] + data.add(new String[] { + "ImmSucceedes_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-07-23), Timestamp(2020-05-05))" + + ".immediatelySucceeds(a.val)", + "expected1", + "expected1[(s14)-[e9]->(s15)]" + }); + + // empty + data.add(new String[] { + "ImmSucceedes_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-07-23T00:00:01), Timestamp(2020-05-05)).immediatelySucceeds(" + + "a.val)", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtLeastData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtLeastData.java new file mode 100644 index 000000000000..7113516a0562 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtLeastData.java @@ -0,0 +1,71 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismLengthAtLeastData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + data.add(new String[] { + "LengthAtLeast_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE val.lengthAtLeast(Minutes(30))", + "expected1,expected2,expected3,expected4", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + //4.[(E33 St & 2 Ave) -> (Division St & Bowery)] (!!! other than in longerThan) + data.add(new String[] { + "LengthAtLeast_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.join(b.val).lengthAtLeast(Days(75))", + "expected1,expected2,expected3,expected4", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)], " + + "expected4[(s22)-[e14]->(s23)]" + }); + + //empty + data.add(new String[] { + "LengthAtLeast_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.lengthAtLeast(Hours(1))", + "[]", + "[]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "LengthAtLeast_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:05:00))" + + ".lengthAtLeast(val)", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtMostData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtMostData.java new file mode 100644 index 000000000000..4dbd88c421fe --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLengthAtMostData.java @@ -0,0 +1,87 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismLengthAtMostData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + data.add(new String[] { + "LengthAtMost_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:30:00))" + + ".lengthAtMost(val)", + "expected1,expected2,expected3,expected4", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + //4.[(E 33 St & 2 Ave) -> (Division St & Bowery) + data.add(new String[] { + "LengthAtMost_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-05-10), Timestamp(2013-07-24))" + + ".lengthAtMost(a.val.join(b.val))", + "expected1,expected2,expected3,expected4", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)]," + + "expected4[(s22)-[e14]->(s23)]" + }); + + //empty + data.add(new String[] { + "LengthAtMost_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01), Timestamp(1970-01-01T01:00:00))" + + ".lengthAtMost(e.tx)", + "[]", + "[]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "LengthAtMost_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "val.lengthAtMost(Minutes(5))", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + data.add(new String[] { + "LengthAtMost_ISO_5_default_citibike", + "MATCH (a)-[e]->(b) WHERE " + + "Interval(Timestamp(1970-01-01), Timestamp(1970-01-01T00:30:00)).lengthAtMost(val)", + "expected1,expected2,expected3,expected4", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLongerThanData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLongerThanData.java new file mode 100644 index 000000000000..e4668a9ce071 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismLongerThanData.java @@ -0,0 +1,135 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismLongerThanData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + data.add(new String[] { + "LongerThan_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE val.longerThan(Minutes(30))", + "expected1,expected2,expected3,expected4", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + data.add(new String[] { + "LongerThan_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.join(b.val).longerThan(Days(75))", + "expected1,expected2,expected3", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)]" + }); + + //empty + data.add(new String[] { + "LongerThan_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.longerThan(Hours(1))", + "[]", + "[]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "LongerThan_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:05:00))" + + ".longerThan(val)", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + data.add(new String[] { + "LongerThan_ISO_5_default_citibike", + "MATCH (a)-[e]->(b) WHERE val.longerThan(Interval(" + + "Timestamp(1970-01-01), Timestamp(1970-01-01T00:30:00)))", + "expected1,expected2,expected3,expected4", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)]" + }); + + //empty + data.add(new String[] { + "LongerThan_ISO_6_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT b.tx.longerThan(val)", + "[]", + "[]" + }); + + //1.[(Henry St & Grand St) (Murray St & West St)] + //2.[(Henry St & Grand St) (Shevchenko Pl)] + data.add(new String[] { + "LongerThan_ISO_7_default_citibike", + "MATCH (a) (b) WHERE a.vertexId=18 AND b.val.longerThan(a.val)", + "expected1,expected2", + "expected1[(s18)(s24)], expected2[(s18)(s25)]" + }); + + + // 1.[(Greenwich St)<-(Murray St & West St)->(Shevchenko Pl)] + data.add(new String[] { + "LongerThan_ISO_8_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) WHERE e1.tx.longerThan(e2.tx)", + "expected1", + "expected1[(s26)<-[e16]-(s24)-[e15]->(s25)]" + }); + + // 1.[(Murray St & West St) -> (Shevchenko Pl) + data.add(new String[] { + "LongerThan_ISO_9_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT Interval(Timestamp(1970-01-01),Timestamp(1970-03-06))" + + ".longerThan(a.val.merge(b.val))", + "expected1", + "expected1[(s24)-[e15]->(s25)]" + }); + + // 1.[(Broadway & E14 St) -> (S 5 Pl & S 5 St)] + data.add(new String[] { + "LongerThan_ISO_10_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx.longerThan(" + + "Interval(Timestamp(2013-06-01T00:01:47), Timestamp(2013-06-01T00:35:35)))", + "expected1", + "expected1[(s8)-[e6]->(s9)]" + }); + + //1.[(E15 St) -> (Washington Park)] + data.add(new String[] { + "LongerThan_ISO_11_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(" + + "MIN(Timestamp(1970-01-01T00:00:00), tx_to), Timestamp(1970-01-01T00:05:00))" + + ".longerThan(val)", + "expected1", + "expected1[(s3)-[e3]->(s4)]" + }); + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMergeAndJoinData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMergeAndJoinData.java new file mode 100644 index 000000000000..438ee35c232a --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMergeAndJoinData.java @@ -0,0 +1,66 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismMergeAndJoinData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Fulton St) (Shevchenko Pl) + data.add(new String[] { + "MergeJoin_ISO_1_default_citibike", + "MATCH (a) (b) WHERE a.id>b.id AND a.val.merge(b.val).overlaps(" + + "Interval(Timestamp(2013-07-28T12:00), Timestamp(2013-07-30)))", + "expected1", + "expected1[(s20)(s25)]" + }); + + // empty + data.add(new String[] { + "MergeJoin_ISO_2_default_citibike", + "MATCH (a) WHERE NOT a.val.merge(a.val).contains(a.val.join(a.val))", + "[]", + "[]" + }); + // 1.[(Murray St & West St) -> (Shevchenko Pl)] + data.add(new String[] { + "MergeJoin_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.tx.join(b.tx).contains(Interval(" + + " Timestamp(2013-05-12),Timestamp(2013-07-28)))", + "expected1", + "expected1[(s24)-[e15]->(s25)]" + }); + + // do not merge/join when no overlap + // 1. [(Broadway & W 24 St) -[e1]-> (9 Ave & W 18)] + + data.add(new String[] { + "MergeJoin_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.id=444 AND Interval(Timestamp(1970-01-01),Timestamp(1970-01-02)).precedes(" + + "e.val.join(Interval(Timestamp(2013-06-01T00:11:40),Timestamp(2017-01-01))))", + "expected1", + "expected1[(s0)-[e1]->(s1)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMinMaxTest.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMinMaxTest.java new file mode 100644 index 000000000000..5f9eb87e4bb3 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismMinMaxTest.java @@ -0,0 +1,57 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismMinMaxTest implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // empty + data.add(new String[] { + "MinMax_HOM_1_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) " + + "WHERE e1.tx_from!=e2.tx_from AND MIN(a.tx_from, b.tx_from, c.tx_from)=Timestamp(2013-05-10)", + "[]", + "[]" + }); + + // 1. [ (9 Ave & W 18)<-[e0]-(Broadway & W24)-[e1]-> (9 Ave & W 18)] + // 2. [ (9 Ave & W 18)<-[e1]-(Broadway & W24)-[e0]-> (9 Ave & W 18)] + data.add(new String[] { + "MinMax_HOM_2_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(a) " + + "WHERE e1.tx_from!=e2.tx_from AND MAX(a.tx_to, b.tx_to, e1.tx_to)=Timestamp(2013-07-18)", + "expected1,expected2", + "expected1[(s1)<-[e0]-(s0)-[e1]->(s1)],expected2[(s1)<-[e1]-(s0)-[e0]->(s1)]" + }); + + data.add(new String[] { + "MinMax_HOM_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE NOT a.tx.join(b.tx).equals(" + + "Interval(MIN(a.tx_from, b.tx_from), MAX(a.tx_to, b.tx_to)))", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismOverlapsData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismOverlapsData.java new file mode 100644 index 000000000000..69dc6f847836 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismOverlapsData.java @@ -0,0 +1,60 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismOverlapsData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + //overlapping from the "right" side + + // 1. [(Greenwich St & W Houston) <- (Murray St & West) -> (Shevchenko Pl)] + data.add(new String[] { + "Overlaps_ISO_1_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) WHERE b.id=309 " + + "AND e1.val.overlaps(e2.val) AND e2.val_from.before(e1.val_from)", + "expected1", + "expected1[(s26)<-[e16]-(s24)-[e15]->(s25)]" + }); + // overlapping from the "left" side + + // 1. [ (Shevchenko Pl)<- (Murray St & West) ->(Greenwich St & W Houston) ] + data.add(new String[] { + "Overlaps_ISO_2_default_citibike", + "MATCH (a)<-[e1]-(b)-[e2]->(c) WHERE b.id=309 " + + "AND e1.val.overlaps(e2.val) AND e1.val_from.before(e2.val_from)", + "expected1", + "expected1[(s25)<-[e15]-(s24)-[e16]->(s26)]" + }); + + // 1.[(Stanton St & Chrystie St) -[e8]-> (Hancock St & Bedford Ave) + // (E15 St & Irving Pl)-[e3]->(Washington Park)] + data.add(new String[] { + "Overlaps_ISO_3_default_citibike", + "MATCH (a)-[e1]->(b) (c)-[e2]->(d) WHERE e1.edgeId=8 " + + "AND NOT e1.val.overlaps(e2.val)", + "expected1", + "expected1[(s12)-[e8]->(s13) (s3)-[e3]->(s4)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismPrecedesData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismPrecedesData.java new file mode 100644 index 000000000000..56fa524c0b28 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismPrecedesData.java @@ -0,0 +1,61 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismPrecedesData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(E 15 St & Irving)->(Washington Park) (Henry St & Grand St)->(S5 Pl & S 5 St)] + data.add(new String[] { + "Precedes_ISO_1_default_citibike", + "MATCH ()-[e1]->() ()-[e2]->(a) WHERE a.id=532 AND e1.edgeId=3" + + " AND e1.val.precedes(e2.val)", + "expected1", + "expected1[(s3)-[e3]->(s4) (s18)-[e11]->(s9)]" + }); + + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Precedes_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01T00:00:00), Timestamp(2013-06-01T00:07:00))" + + ".precedes(e.tx)", + "expected1,expected2", + "expected1[(s21)-[e19]->(s11)]," + + "expected2[(s28)-[e18]->(s29)]" + }); + + // same as above, but now testing call from timestamp + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Precedes_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Timestamp(2013-06-01T00:07:00).precedes(e.tx)", + "expected1,expected2", + "expected1[(s21)-[e19]->(s11)]," + + "expected2[(s28)-[e18]->(s29)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSelectedData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSelectedData.java new file mode 100644 index 000000000000..6c6c9b50cf9e --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSelectedData.java @@ -0,0 +1,70 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismSelectedData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(W37 St & 5 Ave) -> (Hicks St)] + // 2.[(Broadway & E 14) -[edgeId:6]-> (S 5 Pl & S 5 St)] + // 3.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Between_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.val.between(Timestamp(2013-06-01T00:35:00), " + + "Timestamp(2013-06-01T00:40:00))", + "expected1,expected2,expected3", + "expected1[(s7)-[e5]->(s2)]," + + "expected2[(s8)-[e6]->(s9)], expected3[(s28)-[e18]->(s29)]" + }); + + /* + * 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + * 2.[(Lispenard St) -> (Broadway & W 51 St)] + * 3.1.[(E15 St & Irving Pl) -> (Washington Park)] + */ + data.add(new String[] { + "Precedes_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-06-01T00:00:00), Timestamp(2013-06-01T00:07:00))" + + ".precedes(e.tx) OR (NOT " + + "e.val.between(Timestamp(2013-06-01T00:04:00), Timestamp(2013-06-01T00:08:00)) AND " + + " b.val.between(Timestamp(2013-07-22T00:00:00), Timestamp(2013-07-30)))", + "expected1,expected2,expected3", + "expected1[(s21)-[e19]->(s11)]," + + "expected2[(s28)-[e18]->(s29)],expected3[(s3)-[e3]->(s4)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + //4.[(E33 St & 2 Ave) -> (Division St & Bowery)] (!!! other than in longerThan) + data.add(new String[] { + "LengthAtLeast_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.val.join(b.val).lengthAtLeast(Days(75))", + "expected1,expected2,expected3,expected4", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)], " + + "expected4[(s22)-[e14]->(s23)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismShorterThanData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismShorterThanData.java new file mode 100644 index 000000000000..73523acf6b4c --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismShorterThanData.java @@ -0,0 +1,64 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismShorterThanData implements TemporalTestData { + + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + //1.[(Broadway & E14) -> (S 5 Pl & S 5 St)] + //2.[(Stanton St & Chrystie) -> (Hancock St & Bedford Ave)] + //3.[(Lispenard St & Broadway) -> (Broadway & W 51)] + //4.[(W 37 St & 5 Ave) -> (Hicks St & Montague St)] + data.add(new String[] { + "ShorterThan_ISO_1_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01T00:00:00), Timestamp(1970-01-01T00:30:00))" + + ".shorterThan(val)", + "expected1,expected2,expected3,expected4", + "expected1[(s8)-[e6]->(s9)], expected2[(s12)-[e8]->(s13)], " + + "expected3[(s28)-[e18]->(s29)], expected4[(s7)-[e5]->(s2)]" + }); + + //1.[(Murray St & West St) -> (Shevchenko Pl & E 7 St)] + //2.[(Murray St & West St) -> (Greenwich St & W Houston St)] + //3.[(DeKalb Ave & S Portland Ave) -> (Fulton St & Grand Ave)] + data.add(new String[] { + "ShorterThan_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(2013-05-10), Timestamp(2013-07-24))" + + ".shorterThan(a.val.join(b.val))", + "expected1,expected2,expected3", + "expected1[(s24)-[e15]->(s25)], expected2[(s24)-[e16]->(s26)], expected3[(s19)-[e12]->(s20)]" + }); + + //empty + data.add(new String[] { + "ShorterThan_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE Interval(Timestamp(1970-01-01), Timestamp(1970-01-01T01:00:00))" + + ".shorterThan(e.tx)", + "[]", + "[]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSucceedsData.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSucceedsData.java new file mode 100644 index 000000000000..666aa6750ae1 --- /dev/null +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/model/impl/operators/matching/single/cypher/testdata/isomorphism/IsomorphismSucceedsData.java @@ -0,0 +1,73 @@ +/* + * Copyright © 2014 - 2021 Leipzig University (Database Research Group) + * + * Licensed 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.gradoop.temporal.model.impl.operators.matching.single.cypher.testdata.isomorphism; + +import org.gradoop.temporal.model.impl.operators.matching.TemporalTestData; + +import java.util.ArrayList; +import java.util.Collection; + +public class IsomorphismSucceedsData implements TemporalTestData { + @Override + public Collection getData() { + ArrayList data = new ArrayList<>(); + + // 1.[(E 15 St & Irving)->(Washington Park) (Henry St & Grand St)->(S5 Pl & S 5 St)] + data.add(new String[] { + "Succeeds_ISO_1_default_citibike", + "MATCH ()-[e1]->() ()-[e2]->(a) WHERE a.id=532 AND e1.edgeId=3" + + " AND e2.val.succeeds(e1.val)", + "expected1", + "expected1[(s3)-[e3]->(s4) (s18)-[e11]->(s9)]" + }); + + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Succeeds_ISO_2_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx" + + ".succeeds(Interval(Timestamp(2013-06-01T00:00:00), Timestamp(2013-06-01T00:07:00)))", + "expected1,expected2", + "expected1[(s21)-[e19]->(s11)]," + + "expected2[(s28)-[e18]->(s29)]" + }); + + // same as above, but now testing call from timestamp + // 1.[(Broadway & W29) -[edgeId:19]->(8 Ave & W31)] + // 2.[(Lispenard St) -> (Broadway & W 51 St)] + data.add(new String[] { + "Succeeds_ISO_3_default_citibike", + "MATCH (a)-[e]->(b) WHERE e.tx_from.succeeds(" + + "Interval(Timestamp(2013-06-01T00:06:00),Timestamp(2013-06-01T00:07:00)))", + "expected1,expected2", + "expected1[(s21)-[e19]->(s11)]," + + "expected2[(s28)-[e18]->(s29)]" + }); + + // 1.[Broadway & W24) -[edgeId:0]-> (9 Ave & W18) + // 2.[Broadway & W24) -[edgeId:1]-> (9 Ave & W18) + data.add(new String[] { + "Succeeds_ISO_4_default_citibike", + "MATCH (a)-[e]->(b) WHERE a.id=444 AND " + + "Interval(Timestamp(2013-06-01T00:11:41), Timestamp(2013-06-01T00:11:50))" + + ".succeeds(e.val)", + "expected1,expected2", + "expected1[(s0)-[e0]->(s1)], expected2[(s0)-[e1]->(s1)]" + }); + + return data; + } +} diff --git a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java index c21c2f05d817..0b3bae3ef33a 100644 --- a/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java +++ b/gradoop-temporal/src/test/java/org/gradoop/temporal/util/TemporalGradoopTestBase.java @@ -15,6 +15,7 @@ */ package org.gradoop.temporal.util; +import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.tuple.Tuple2; import org.gradoop.common.model.api.entities.Edge; @@ -25,6 +26,7 @@ import org.gradoop.flink.model.GradoopFlinkTestBase; import org.gradoop.flink.model.api.epgm.BaseGraph; import org.gradoop.flink.model.api.epgm.BaseGraphCollection; +import org.gradoop.flink.model.impl.epgm.LogicalGraph; import org.gradoop.flink.util.FlinkAsciiGraphLoader; import org.gradoop.flink.util.GradoopFlinkConfig; import org.gradoop.temporal.model.api.functions.TimeIntervalExtractor; @@ -92,6 +94,12 @@ public abstract class TemporalGradoopTestBase extends GradoopFlinkTestBase { */ protected static final Long CURRENT_TIME = System.currentTimeMillis(); + /** + * Path to the Citibike Temporal-GDL file. + */ + public static final String TEMPORAL_GDL_CITIBIKE_PATH = TemporalGradoopTestBase.class + .getResource("/data/patternmatchingtest/citibikesample.gdl").getPath(); + @Override protected TemporalGradoopConfig getConfig() { if (config == null) { @@ -139,7 +147,6 @@ protected TemporalEdgeFactory getEdgeFactory() { /** * Convert some graph to a {@link TemporalGraph}. * - * @see org.gradoop.temporal.model.impl.TemporalGraphFactory#fromNonTemporalGraph(BaseGraph) * @param graph The graph. * @return The resulting temporal graph. */ @@ -364,4 +371,60 @@ protected long asMillis(String dateTimeString) { throw new IllegalArgumentException("Failed to parse date.", pe); } } + + /** + * Loads citibike sample dataset as temporal graph. + * Uses {@code start} and {@code end} edge properties to set {@code valid_from}/{@code tx_from} + * and {@code valid_to}/{@code tx_to} values. + * + * @return temporal citibike sample graph + * @throws Exception on failure + */ + public TemporalGraph loadCitibikeSample() throws Exception { + FlinkAsciiGraphLoader loader = new FlinkAsciiGraphLoader(getConfig()); + loader.initDatabaseFromFile(TEMPORAL_GDL_CITIBIKE_PATH); + return transformToTemporalGraph(loader.getLogicalGraph()); + } + + /** + * Given a logical graph, this method transforms it to a temporal graph. + * {@code start} and {@code end} values are extracted from the edges (= "trips") + * and used to set {@code valid_from}/{@code tx_from} and {@code valid_to}/{@code tx_to} + * values. + * + * @param logicalGraph the logical graph to transform + * @return logical graph transformed to temporal graph + */ + protected TemporalGraph transformToTemporalGraph(LogicalGraph logicalGraph) { + TemporalGraph tg = toTemporalGraph(logicalGraph); + return tg.getFactory().fromDataSets( + tg.getVertices().map(vertexTransform), + tg.getEdges().map(edgeTransform)); + } + + /** + * Set the edge's {@code valid_from} and {@code tx_from} according to the {@code start} + * property and the edge's {@code valid_to} and {@code tx_to} according to the + * {@code end} property. Both properties are retained. + */ + protected static final MapFunction edgeTransform = value -> { + long start = value.getPropertyValue("start").getLong(); + long end = value.getPropertyValue("end").getLong(); + value.setValidTime(new Tuple2<>(start, end)); + value.setTransactionTime(new Tuple2<>(start, end)); + return value; + }; + + /** + * Set the vertex {@code valid_from} and {@code tx_from} according to the {@code start} + * property and the vertice's {@code valid_to} and {@code tx_to} according to the + * {@code end} property. Both properties are retained. + */ + protected static final MapFunction vertexTransform = value -> { + long start = value.getPropertyValue("start").getLong(); + long end = value.getPropertyValue("end").getLong(); + value.setValidTime(new Tuple2<>(start, end)); + value.setTransactionTime(new Tuple2<>(start, end)); + return value; + }; } diff --git a/gradoop-temporal/src/test/resources/data/patternmatchingtest/citibikesample.gdl b/gradoop-temporal/src/test/resources/data/patternmatchingtest/citibikesample.gdl new file mode 100755 index 000000000000..1bd7b3149c30 --- /dev/null +++ b/gradoop-temporal/src/test/resources/data/patternmatchingtest/citibikesample.gdl @@ -0,0 +1,20 @@ +g:graph[(s0:station {name: "Broadway & W 24 St", id: 444, vertexId: 0, startdate: "2013-05-10 00:00:00", start: 1368144000000L, enddate: "2013-07-18 00:00:00", end: 1374105600000L}) -[e0:trip {edgeId: 0, start: 1370044801000L, end: 1370045496000L, startdate: "2013-06-01 00:00:01", enddate: "2013-06-01 00:11:36", bikeID: 19678, birth: 1983}]-> (s1:station {name: "9 Ave & W 18 St",id: 434, vertexId: 1, startdate: "2013-05-17 00:00:00", start: 1368748800000L, enddate: "2013-07-17 00:00:00", end: 1374019200000L}) +(s0) -[e1:trip {edgeId: 1, start: 1370044808000L, end: 1370045501000L, startdate: "2013-06-01 00:00:08", enddate: "2013-06-01 00:11:41", bikeID: 16649, birth: 1984}]-> (s1) +(s2:station {name: "Hicks St & Montague St", id: 406, vertexId: 2, startdate: "2013-05-14 00:00:00", start: 1368489600000L, enddate: "2013-07-13 00:00:00", end: 1373673600000L}) -[e2:trip {edgeId: 2, start: 1370044844000L, end: 1370046903000L, startdate: "2013-06-01 00:00:44", enddate: "2013-06-01 00:35:03", bikeID: 19599, birth: 0}]-> (s2) +(s3:station {name: "E 15 St & Irving Pl", id: 475, vertexId: 3, startdate: "2013-05-27 00:00:00", start: 1369612800000L, enddate: "2013-07-12 00:00:00", end: 1373587200000L}) -[e3:trip {edgeId: 3, start: 1370044864000L, end: 1370044987000L, startdate: "2013-06-01 00:01:04", enddate: "2013-06-01 00:03:07", bikeID: 16352, birth: 1960}]-> (s4:station {name: "Washington Park",id: 262, vertexId: 4, startdate: "2013-05-28 00:00:00", start: 1369699200000L, enddate: "2013-07-23 00:00:00", end: 1374537600000L}) +(s5:station {name: "Little West St & 1 Pl", id: 2008, vertexId: 5, startdate: "2013-05-11 00:00:00", start: 1368230400000L, enddate: "2013-07-10 00:00:00", end: 1373414400000L}) -[e4:trip {edgeId: 4, start: 1370044882000L, end: 1370046403000L, startdate: "2013-06-01 00:01:22", enddate: "2013-06-01 00:26:43", bikeID: 15567, birth: 1983}]-> (s6:station {name: "State St & Smith St",id: 310, vertexId: 6, startdate: "2013-05-12 00:00:00", start: 1368316800000L, enddate: "2013-07-16 00:00:00", end: 1373932800000L}) +(s7:station {name: "W 37 St & 5 Ave", id: 485, vertexId: 7, startdate: "2013-05-17 00:00:00", start: 1368748800000L, enddate: "2013-07-26 00:00:00", end: 1374796800000L}) -[e5:trip {edgeId: 5, start: 1370044907000L, end: 1370046935000L, startdate: "2013-06-01 00:01:47", enddate: "2013-06-01 00:35:35", bikeID: 18445, birth: 0}]-> (s2) +(s8:station {name: "Broadway & E 14 St", id: 285, vertexId: 8, startdate: "2013-05-29 00:00:00", start: 1369785600000L, enddate: "2013-07-10 00:00:00", end: 1373414400000L}) -[e6:trip {edgeId: 6, start: 1370044953000L, end: 1370047010000L, startdate: "2013-06-01 00:02:33", enddate: "2013-06-01 00:36:50", bikeID: 15693, birth: 1991}]-> (s9:station {name: "S 5 Pl & S 5 St",id: 532, vertexId: 9, startdate: "2013-05-27 00:00:00", start: 1369612800000L, enddate: "2013-07-16 00:00:00", end: 1373932800000L}) +(s10:station {name: "9 Ave & W 22 St", id: 509, vertexId: 10, startdate: "2013-05-30 00:00:00", start: 1369872000000L, enddate: "2013-07-27 00:00:00", end: 1374883200000L}) -[e7:trip {edgeId: 7, start: 1370045009000L, end: 1370045378000L, startdate: "2013-06-01 00:03:29", enddate: "2013-06-01 00:09:38", bikeID: 16100, birth: 1981}]-> (s11:station {name: "8 Ave & W 31 St N",id: 521, vertexId: 11, startdate: "2013-05-23 00:00:00", start: 1369267200000L, enddate: "2013-07-17 00:00:00", end: 1374019200000L}) +(s12:station {name: "Stanton St & Chrystie St", id: 265, vertexId: 12, startdate: "2013-05-24 00:00:00", start: 1369353600000L, enddate: "2013-07-28 00:00:00", end: 1374969600000L}) -[e8:trip {edgeId: 8, start: 1370045027000L, end: 1370046856000L, startdate: "2013-06-01 00:03:47", enddate: "2013-06-01 00:34:16", bikeID: 15234, birth: 1984}]-> (s13:station {name: "Hancock St & Bedford Ave",id: 436, vertexId: 13, startdate: "2013-05-18 00:00:00", start: 1368835200000L, enddate: "2013-07-10 00:00:00", end: 1373414400000L}) +(s14:station {name: "9 Ave & W 14 St", id: 404, vertexId: 14, startdate: "2013-05-15 00:00:00", start: 1368576000000L, enddate: "2013-07-23 00:00:00", end: 1374537600000L}) -[e9:trip {edgeId: 9, start: 1370045062000L, end: 1370045891000L, startdate: "2013-06-01 00:04:22", enddate: "2013-06-01 00:18:11", bikeID: 16400, birth: 1987}]-> (s15:station {name: "Mercer St & Spring St",id: 303, vertexId: 15, startdate: "2013-05-20 00:00:00", start: 1369008000000L, enddate: "2013-07-18 00:00:00", end: 1374105600000L}) +(s16:station {name: "W 54 St & 9 Ave", id: 423, vertexId: 16, startdate: "2013-05-14 00:00:00", start: 1368489600000L, enddate: "2013-07-16 00:00:00", end: 1373932800000L}) -[e10:trip {edgeId: 10, start: 1370045068000L, end: 1370046384000L, startdate: "2013-06-01 00:04:28", enddate: "2013-06-01 00:26:24", bikeID: 19781, birth: 1960}]-> (s17:station {name: "Cadman Plaza West & Montague St",id: 314, vertexId: 17, startdate: "2013-05-20 00:00:00", start: 1369008000000L, enddate: "2013-07-13 00:00:00", end: 1373673600000L}) +(s18:station {name: "Henry St & Grand St", id: 502, vertexId: 18, startdate: "2013-05-12 00:00:00", start: 1368316800000L, enddate: "2013-07-22 00:00:00", end: 1374451200000L}) -[e11:trip {edgeId: 11, start: 1370045081000L, end: 1370046537000L, startdate: "2013-06-01 00:04:41", enddate: "2013-06-01 00:28:57", bikeID: 18886, birth: 0}]-> (s9) +(s19:station {name: "DeKalb Ave & S Portland Ave", id: 241, vertexId: 19, startdate: "2013-05-13 00:00:00", start: 1368403200000L, enddate: "2013-07-21 00:00:00", end: 1374364800000L}) -[e12:trip {edgeId: 12, start: 1370045113000L, end: 1370045499000L, startdate: "2013-06-01 00:05:13", enddate: "2013-06-01 00:11:39", bikeID: 19039, birth: 1981}]-> (s20:station {name: "Fulton St & Grand Ave",id: 365, vertexId: 20, startdate: "2013-05-21 00:00:00", start: 1369094400000L, enddate: "2013-07-29 00:00:00", end: 1375056000000L}) +(s21:station {name: "Broadway & W 29 St", id: 486, vertexId: 21, startdate: "2013-05-18 00:00:00", start: 1368835200000L, enddate: "2013-07-11 00:00:00", end: 1373500800000L}) -[e13:trip {edgeId: 13, start: 1370045121000L, end: 1370046045000L, startdate: "2013-06-01 00:05:21", enddate: "2013-06-01 00:20:45", bikeID: 16608, birth: 0}]-> (s11) +(s22:station {name: "E 33 St & 2 Ave", id: 527, vertexId: 22, startdate: "2013-05-24 00:00:00", start: 1369353600000L, enddate: "2013-07-27 00:00:00", end: 1374883200000L}) -[e14:trip {edgeId: 14, start: 1370045204000L, end: 1370046437000L, startdate: "2013-06-01 00:06:44", enddate: "2013-06-01 00:27:17", bikeID: 14761, birth: 1987}]-> (s23:station {name: "Division St & Bowery",id: 296, vertexId: 23, startdate: "2013-05-13 00:00:00", start: 1368403200000L, enddate: "2013-07-22 00:00:00", end: 1374451200000L}) +(s24:station {name: "Murray St & West St", id: 309, vertexId: 24, startdate: "2013-05-12 00:00:00", start: 1368316800000L, enddate: "2013-07-27 00:00:00", end: 1374883200000L}) -[e15:trip {edgeId: 15, start: 1370045016000L, end: 1370045528000L, startdate: "2013-06-01 00:03:36", enddate: "2013-06-01 00:12:08", bikeID: 19080, birth: 1979}]-> (s25:station {name: "Shevchenko Pl & E 7 St",id: 300, vertexId: 25, startdate: "2013-05-19 00:00:00", start: 1368921600000L, enddate: "2013-07-30 00:00:00", end: 1375142400000L}) +(s24) -[e16:trip {edgeId: 16, start: 1370045025000L, end: 1370045530000L, startdate: "2013-06-01 00:03:45", enddate: "2013-06-01 00:12:10", bikeID: 16798, birth: 1984}]-> (s26:station {name: "Greenwich St & W Houston St",id: 347, vertexId: 26, startdate: "2013-05-29 00:00:00", start: 1369785600000L, enddate: "2013-07-21 00:00:00", end: 1374364800000L}) +(s27:station {name: "E 20 St & Park Ave", id: 503, vertexId: 27, startdate: "2013-05-28 00:00:00", start: 1369699200000L, enddate: "2013-07-16 00:00:00", end: 1373932800000L}) -[e17:trip {edgeId: 17, start: 1370045249000L, end: 1370046082000L, startdate: "2013-06-01 00:07:29", enddate: "2013-06-01 00:21:22", bikeID: 19072, birth: 0}]-> (s27) +(s28:station {name: "Lispenard St & Broadway", id: 257, vertexId: 28, startdate: "2013-05-12 00:00:00", start: 1368316800000L, enddate: "2013-07-11 00:00:00", end: 1373500800000L}) -[e18:trip {edgeId: 18, start: 1370045290000L, end: 1370047108000L, startdate: "2013-06-01 00:08:10", enddate: "2013-06-01 00:38:28", bikeID: 20349, birth: 0}]-> (s29:station {name: "Broadway & W 51 St",id: 500, vertexId: 29, startdate: "2013-05-17 00:00:00", start: 1368748800000L, enddate: "2013-07-19 00:00:00", end: 1374192000000L}) +(s21) -[e19:trip {edgeId: 19, start: 1370045333000L, end: 1370046015000L, startdate: "2013-06-01 00:08:53", enddate: "2013-06-01 00:20:15", bikeID: 20176, birth: 0}]-> (s11)] \ No newline at end of file From 9ff830397b17ff392d0dc64c14053befbca9389c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20G=C3=B3mez?= Date: Mon, 29 Mar 2021 09:25:47 +0200 Subject: [PATCH 18/19] [#1525][#1526][#1531] updated readme + removed unused test class (#1533) * [#1525][#1526][#1531] updated readme * flink version * added new publications * added related repositories * removed OperatorIntegrationTest class fixes #1525 fixes #1526 fixes #1531 --- README.md | 22 +- .../operators/OperatorIntegrationTest.java | 268 ------------------ 2 files changed, 18 insertions(+), 272 deletions(-) delete mode 100644 gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java diff --git a/README.md b/README.md index 8315ba5a37c5..3b36bb998934 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,8 @@ help getting started using Gradoop. ##### Further Information (articles and talks) -* [Graph Sampling with Distributed In-Memory Dataflow Systems, arXiv, October 2019](https://arxiv.org/pdf/1910.04493.pdf) +* [Exploration and Analysis of Temporal Property Graphs, EDBT Demo, March 2021](https://dbs.uni-leipzig.de/file/EDBT_DEMO_Rost_2021_published.pdf) +* [Graph Sampling with Distributed In-Memory Dataflow Systems, BTW, March 2021](https://dbs.uni-leipzig.de/file/A3-21.pdf) * [Evolution Analysis of Large Graphs with Gradoop, ECML PKDD LEG Workshop, September 2019](https://dbs.uni-leipzig.de/file/LEGECML-PKDD_2019_paper_9.pdf) * [Gradoop @Gridka Keynote Distributed Graph Analytics, August 2019](https://indico.scc.kit.edu/event/460/contributions/5772/attachments/2873/4171/gradoop_gridka19.pdf) * [Temporal Graph Analysis using Gradoop, BTW 2019-Workshopband, March 2019](https://dl.gi.de/bitstream/handle/20.500.12116/21797/C2-1.pdf) @@ -96,18 +97,18 @@ Latest weekly build (additional repository is required): ``` -In any case you also need Apache Flink (version 1.7.2): +In any case you also need Apache Flink (version 1.9.3): ```xml org.apache.flink flink-java - 1.7.2 + 1.9.3 org.apache.flink flink-clients_2.11 - 1.7.2 + 1.9.3 ``` @@ -182,6 +183,10 @@ Used to maintain the code style for the whole project. ## Related Repositories +### [Gradoop Tutorial](https://github.com/dbs-leipzig/gradoop-tutorial) + +Gradoop Tutorial which has been shown in [BOSS20'](https://boss-workshop.github.io/boss-2020/) Workshop of VLDB 2020 international conference. + ### [Gradoop Benchmarks](https://github.com/dbs-leipzig/gradoop-benchmarks) This repository contains sets of Gradoop operator benchmarks designed to run on a cluster to measure @@ -191,6 +196,15 @@ scalability and speedup of the operators. Demo application to show the functionalities of the grouping and query operator in an interactive web UI. + +### [Temporal Graph Explorer](https://github.com/dbs-leipzig/temporal_graph_explorer) + +Gradoop Temporal Graph Explorer Demo which showcases some operators of the Temporal Property Graph Model. + +### [Gradoop GDL](https://github.com/dbs-leipzig/gdl) + +This repository contains the definition of our Temporal Graph Definition Language (Temporal-GDL). + ### Version History See the [Changelog](https://github.com/dbs-leipzig/gradoop/wiki/Changelog) at the Wiki pages. diff --git a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java b/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java deleted file mode 100644 index c9a48a403258..000000000000 --- a/gradoop-flink/src/test/java/org/gradoop/flink/model/impl/operators/matching/single/cypher/operators/OperatorIntegrationTest.java +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright © 2014 - 2021 Leipzig University (Database Research Group) - * - * Licensed 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.gradoop.flink.model.impl.operators.matching.single.cypher.operators.physical; -// -//import com.google.common.collect.Lists; -//import com.google.common.collect.Sets; -//import org.apache.flink.api.common.operators.base.JoinOperatorBase; -//import org.apache.flink.api.java.DataSet; -//import org.gradoop.flink.model.GradoopFlinkTestBase; -//import org.gradoop.flink.model.impl.LogicalGraph; -//import org.gradoop.flink.model.impl.operators.matching.common.MatchStrategy; -//import org.gradoop.flink.model.impl.operators.matching.common.query.QueryHandler; -//import org.gradoop.flink.model.impl.operators.matching.common.query.predicates.CNF; -//import Embedding; -//import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.*; -//import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.cartesian -// .CartesianProduct; -//import org.gradoop.flink.model.impl.operators.matching.single.cypher.operators.expand.Expand; -//import org.gradoop.flink.util.FlinkAsciiGraphLoader; -//import org.junit.Before; -//import org.junit.Ignore; -//import org.junit.Test; -// -//import java.util.ArrayList; -//import java.util.HashMap; -// -//import static org.gradoop.flink.model.impl.operators.matching.single.cypher.utils.ExpandDirection.*; -// -//@Ignore -//public class OperatorIntegrationTest extends GradoopFlinkTestBase { -// -// private FlinkAsciiGraphLoader testGraphs; -// -// @Before -// public void loadGraph() throws Exception { -// this.testGraphs = getLoaderFromFile( -// OperatorIntegrationTest.class.getResource("/data/gdl/physicalOperators.gdl").getFile() -// ); -// } -// -// /** -// * MATCH (p1:Person {name: "Alice"})-[r1:worked_at]->(o) -// * WHERE r1.active=1 -// * RETURN * -// */ -// @Test -// public void simplePredicateQueryTest() throws Exception { -// QueryHandler query = new QueryHandler( -// "MATCH (p1:Person {name: \"Alice\"})-[r1:worked_at]->(o) " + -// "WHERE r1.active=1" -// ); -// -// LogicalGraph graph = testGraphs.getLogicalGraphByVariable("g"); -// -// CNF predicates = query.getPredicates(); -// CNF p1Predicate = predicates.getSubCNF(Sets.newHashSet("p1")); -// CNF r1Predicate = predicates.getSubCNF(Sets.newHashSet("r1")); -// -// DataSet p1 = -// new FilterVertices(graph.getVertices(), p1Predicate).evaluate(); -// DataSet r1 = -// new FilterEdges(graph.getEdges(), r1Predicate).evaluate(); -// -// //DataSet res = new JoinEmbeddings(p1,r1,0, ExpandDirection.OUT).evaluate(); -// -// //System.out.println("res.collect() = " + res.collect()); -// } -// -// /** -// * MATCH (a:Person)-[]->(b:Person) -// * WHERE a.age > b.age OR a.name=b.name -// * RETURN * -// */ -// @Test -// public void CrossPredicateTest() throws Exception { -// LogicalGraph graph = loadGraph("","g"); -// -// QueryHandler query = new QueryHandler( -// "MATCH (a:Person)-[]->(b:Person)" + -// "WHERE a.age > b.age OR a.name=b.name" -// ); -// -// CNF predicates = query.getPredicates(); -// -// DataSet vertices = -// new FilterAndProjectVertices( -// graph.getVertices(), -// predicates.getSubCNF(Sets.newHashSet("a")), -// Lists.newArrayList("age","name") -// ).evaluate(); -// -// DataSet edges = new ProjectEdges(graph.getEdges()).evaluate(); -// -// DataSet aExpanded = new ExpandOne(vertices,edges,0, OUT).evaluate(); -// -// DataSet ab = new JoinEmbeddings(aExpanded,vertices, 2, 0).evaluate(); -// -// HashMap mapping = new HashMap<>(); -// mapping.put("a",0); -// mapping.put("b",2); -// DataSet res = new FilterEmbeddings( -// ab, -// predicates.getSubCNF(Sets.newHashSet("a","b")), -// mapping -// ).evaluate(); -// -// System.out.println("res.collect() = " + res.collect()); -// } -// -// /** -// * MATCH (n)-[]->(m)-[]->(o) -// * RETURN * -// */ -// @Test -// public void homomorphismTest() throws Exception { -// LogicalGraph graph = loadGraph("","g"); -// -// DataSet vertices = -// new ProjectVertices(graph.getVertices()).evaluate(); -// DataSet edges = -// new ProjectEdges(graph.getEdges()).evaluate(); -// -// DataSet a = new ExpandOne( -// vertices, edges, 0, -// OUT, MatchStrategy.HOMOMORPHISM, JoinOperatorBase.JoinHint.OPTIMIZER_CHOOSES -// ).evaluate(); -// -// DataSet res = new ExpandOne(a, edges, 2, -// OUT, MatchStrategy.HOMOMORPHISM, JoinOperatorBase.JoinHint.OPTIMIZER_CHOOSES -// ).evaluate(); -// -// System.out.println("res.collect() = " + res.collect()); -// } -// -// /** -// * MATCH (n)-[]->(m)-[]->(o) -// * RETURN * -// */ -// @Test -// public void isomorphismTest() throws Exception { -// LogicalGraph graph = loadGraph("","g"); -// -// DataSet vertices = -// new ProjectVertices(graph.getVertices()).evaluate(); -// DataSet edges = -// new ProjectEdges(graph.getEdges()).evaluate(); -// -// DataSet a = new ExpandOne( -// vertices, edges, 0, -// OUT, MatchStrategy.ISOMORPHISM, JoinOperatorBase.JoinHint.OPTIMIZER_CHOOSES -// ).evaluate(); -// -// DataSet res = new ExpandOne(a, edges, 2, -// OUT, MatchStrategy.ISOMORPHISM, JoinOperatorBase.JoinHint.OPTIMIZER_CHOOSES -// ).evaluate(); -// -// System.out.println("res.collect() = " + res.collect()); -// } -// -// /** -// * MATCH (n)-[*2..3]->(m) -// * RETURN * -// */ -// @Test -// public void variableLengthPathQueryTest() throws Exception{ -// LogicalGraph graph = loadGraph("","g"); -// -// DataSet n = new ProjectVertices(graph.getVertices()).evaluate(); -// DataSet edges = new ProjectEdges(graph.getEdges()).evaluate(); -// -// DataSet res = -// new Expand(n,edges,0,2,3,OUT, new ArrayList<>(), new ArrayList<>(),-1).evaluate(); -// -// System.out.println("res.collect() = " + res.collect()); -// } -// -// /** -// * MATCH (a:Department), (b:City) -// * RETURN * -// */ -// @Test -// public void cartesianProductTest() throws Exception { -// LogicalGraph graph = loadGraph("","g"); -// QueryHandler query = new QueryHandler("MATCH (a:Department), (b:City)"); -// CNF predicates = query.getPredicates(); -// -// DataSet a = new FilterVertices( -// graph.getVertices(), -// predicates.getSubCNF(Sets.newHashSet("a")) -// ).evaluate(); -// DataSet b = new FilterVertices( -// graph.getVertices(), -// predicates.getSubCNF(Sets.newHashSet("a")) -// ).evaluate(); -// -// DataSet res = new CartesianProduct(a,b).evaluate(); -// -// System.out.println("res.collect() = " + res.collect()); -// } -// -// /** -// * ⁠MATCH (a:Department), (b)-[]->(c:Person {name: "Alice") -// * WHERE a.prop = b.prop -// * RETURN * -// */ -// @Test -// public void valueJoinTest() throws Exception { -// LogicalGraph graph = loadGraph("","g"); -// QueryHandler query = new QueryHandler( -// " MATCH (a:Department),(b)-[]->(c:Person {name: \"Alice\")" + -// " WHERE a.prop = b.prop" -// ); -// CNF predicates = query.getPredicates(); -// -// DataSet a = -// new FilterAndProjectVertices( -// graph.getVertices(), -// predicates.getSubCNF(Sets.newHashSet("a")), -// Lists.newArrayList("prop") -// ).evaluate(); -// -// DataSet c = new FilterVertices( -// graph.getVertices(), -// predicates.getSubCNF(Sets.newHashSet("c")) -// ).evaluate(); -// -// DataSet edges = new ProjectEdges(graph.getEdges()).evaluate(); -// -// DataSet cexpand = new ExpandOne(c,edges,0,IN).evaluate(); -// -// DataSet b = -// new ProjectVertices(graph.getVertices(), Lists.newArrayList("prop")).evaluate(); -// -// DataSet bc = new JoinEmbeddings(cexpand,b,2,0).evaluate(); -// -// HashMap mapping = new HashMap<>(); -// mapping.put("a",0); -// mapping.put("b",3); -// -// DataSet res = new ValueJoin( -// a, -// bc, -// predicates.getSubCNF(Sets.newHashSet("a","b")), -// mapping -// ).evaluate(); -// -// System.out.println("res.collect() = " + res.collect()); -// } -// -// private LogicalGraph loadGraph(String dataGraph, String variable) { -// FlinkAsciiGraphLoader loader = getLoaderFromString(dataGraph); -// return loader.getLogicalGraphByVariable(variable); -// } -//} From c5220df709438688ed7532a4041cd7b29dd052b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20G=C3=B3mez?= Date: Mon, 29 Mar 2021 10:31:00 +0200 Subject: [PATCH 19/19] [#1534] prepare stable release 0.6.0 (#1535) fixes #1534 --- README.md | 6 +++--- gradoop-checkstyle/pom.xml | 2 +- gradoop-common/pom.xml | 2 +- gradoop-data-integration/pom.xml | 2 +- gradoop-examples/gradoop-examples-operators/pom.xml | 2 +- gradoop-examples/gradoop-examples-temporal/pom.xml | 2 +- gradoop-examples/pom.xml | 2 +- gradoop-flink/pom.xml | 2 +- gradoop-quickstart/pom.xml | 2 +- gradoop-store/gradoop-accumulo/pom.xml | 2 +- gradoop-store/gradoop-hbase/pom.xml | 2 +- gradoop-store/gradoop-store-api/pom.xml | 2 +- gradoop-store/pom.xml | 2 +- gradoop-temporal/pom.xml | 2 +- pom.xml | 2 +- 15 files changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 3b36bb998934..a078659d2a16 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![Apache License, Version 2.0, January 2004](https://img.shields.io/github/license/apache/maven.svg?label=License)](https://www.apache.org/licenses/LICENSE-2.0) -[![Maven Central](https://img.shields.io/badge/Maven_Central-0.5.2-blue.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cgradoop) +[![Maven Central](https://img.shields.io/badge/Maven_Central-0.6.0-blue.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cgradoop) [![Build Status](https://github.com/dbs-leipzig/gradoop/workflows/Java%20CI/badge.svg)](https://github.com/dbs-leipzig/gradoop/actions?workflow=Java+CI) [![Code Quality: Java](https://img.shields.io/lgtm/grade/java/g/dbs-leipzig/gradoop.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/dbs-leipzig/gradoop/context:java) [![Total Alerts](https://img.shields.io/lgtm/alerts/g/dbs-leipzig/gradoop.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/dbs-leipzig/gradoop/alerts) @@ -73,7 +73,7 @@ Stable: org.gradoop gradoop-flink - 0.5.2 + 0.6.0 ``` @@ -93,7 +93,7 @@ Latest weekly build (additional repository is required): org.gradoop gradoop-flink - 0.6.0-SNAPSHOT + 0.7.0-SNAPSHOT ``` diff --git a/gradoop-checkstyle/pom.xml b/gradoop-checkstyle/pom.xml index 6c40e139fe9d..0eba78763dba 100644 --- a/gradoop-checkstyle/pom.xml +++ b/gradoop-checkstyle/pom.xml @@ -5,7 +5,7 @@ org.gradoop gradoop-parent - 0.6.0-SNAPSHOT + 0.6.0 gradoop-checkstyle diff --git a/gradoop-common/pom.xml b/gradoop-common/pom.xml index 877084f9d423..4602d97466a4 100644 --- a/gradoop-common/pom.xml +++ b/gradoop-common/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.6.0-SNAPSHOT + 0.6.0 gradoop-common diff --git a/gradoop-data-integration/pom.xml b/gradoop-data-integration/pom.xml index 971b02d82afb..16dc44c54bfb 100644 --- a/gradoop-data-integration/pom.xml +++ b/gradoop-data-integration/pom.xml @@ -5,7 +5,7 @@ org.gradoop gradoop-parent - 0.6.0-SNAPSHOT + 0.6.0 gradoop-data-integration diff --git a/gradoop-examples/gradoop-examples-operators/pom.xml b/gradoop-examples/gradoop-examples-operators/pom.xml index a8dbf94c745e..8f4a3200b4f2 100644 --- a/gradoop-examples/gradoop-examples-operators/pom.xml +++ b/gradoop-examples/gradoop-examples-operators/pom.xml @@ -8,7 +8,7 @@ gradoop-examples org.gradoop - 0.6.0-SNAPSHOT + 0.6.0 gradoop-examples-operators diff --git a/gradoop-examples/gradoop-examples-temporal/pom.xml b/gradoop-examples/gradoop-examples-temporal/pom.xml index d6031320ae47..d7f798ccbeeb 100644 --- a/gradoop-examples/gradoop-examples-temporal/pom.xml +++ b/gradoop-examples/gradoop-examples-temporal/pom.xml @@ -8,7 +8,7 @@ gradoop-examples org.gradoop - 0.6.0-SNAPSHOT + 0.6.0 gradoop-examples-temporal diff --git a/gradoop-examples/pom.xml b/gradoop-examples/pom.xml index fcc358d4346a..38bfb78fa3f2 100644 --- a/gradoop-examples/pom.xml +++ b/gradoop-examples/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.6.0-SNAPSHOT + 0.6.0 gradoop-examples diff --git a/gradoop-flink/pom.xml b/gradoop-flink/pom.xml index dcd984cc6176..6d17f30cd635 100644 --- a/gradoop-flink/pom.xml +++ b/gradoop-flink/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.6.0-SNAPSHOT + 0.6.0 gradoop-flink diff --git a/gradoop-quickstart/pom.xml b/gradoop-quickstart/pom.xml index a5b22676c57e..aaba3e10d5b2 100644 --- a/gradoop-quickstart/pom.xml +++ b/gradoop-quickstart/pom.xml @@ -5,7 +5,7 @@ org.gradoop gradoop-parent - 0.6.0-SNAPSHOT + 0.6.0 gradoop-quickstart diff --git a/gradoop-store/gradoop-accumulo/pom.xml b/gradoop-store/gradoop-accumulo/pom.xml index adb668a9fce4..b5099495b1ac 100644 --- a/gradoop-store/gradoop-accumulo/pom.xml +++ b/gradoop-store/gradoop-accumulo/pom.xml @@ -7,7 +7,7 @@ gradoop-store org.gradoop - 0.6.0-SNAPSHOT + 0.6.0 gradoop-accumulo diff --git a/gradoop-store/gradoop-hbase/pom.xml b/gradoop-store/gradoop-hbase/pom.xml index bb948470a870..6245baefe1e4 100644 --- a/gradoop-store/gradoop-hbase/pom.xml +++ b/gradoop-store/gradoop-hbase/pom.xml @@ -5,7 +5,7 @@ gradoop-store org.gradoop - 0.6.0-SNAPSHOT + 0.6.0 gradoop-hbase diff --git a/gradoop-store/gradoop-store-api/pom.xml b/gradoop-store/gradoop-store-api/pom.xml index ebed68f95f8a..9c20c3f1090d 100644 --- a/gradoop-store/gradoop-store-api/pom.xml +++ b/gradoop-store/gradoop-store-api/pom.xml @@ -7,7 +7,7 @@ gradoop-store org.gradoop - 0.6.0-SNAPSHOT + 0.6.0 gradoop-store-api diff --git a/gradoop-store/pom.xml b/gradoop-store/pom.xml index 64348f626dc8..2238ea4f7163 100644 --- a/gradoop-store/pom.xml +++ b/gradoop-store/pom.xml @@ -5,7 +5,7 @@ gradoop-parent org.gradoop - 0.6.0-SNAPSHOT + 0.6.0 4.0.0 diff --git a/gradoop-temporal/pom.xml b/gradoop-temporal/pom.xml index f7010e65fd2d..cc9440968d42 100644 --- a/gradoop-temporal/pom.xml +++ b/gradoop-temporal/pom.xml @@ -6,7 +6,7 @@ org.gradoop gradoop-parent - 0.6.0-SNAPSHOT + 0.6.0 gradoop-temporal diff --git a/pom.xml b/pom.xml index 94efdf9d48d7..e18b387dec4b 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ org.gradoop gradoop-parent pom - 0.6.0-SNAPSHOT + 0.6.0 Gradoop Parent http://www.gradoop.org