This is an automated email from the ASF dual-hosted git repository. jermy pushed a commit to branch unify-get-label-id in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
commit 0e4a1230ad372144505b37f95e11d13a501a6bd2 Author: Jermy Li <[email protected]> AuthorDate: Sat Feb 24 12:38:59 2024 +0800 chore: unify to call SchemaLabel.getLabelId() Change-Id: I31bcc0d1ee99f3c443f8f4f0d458e06ca89977ef --- .../main/java/org/apache/hugegraph/api/traversers/Vertices.java | 7 ++++++- .../org/apache/hugegraph/job/algorithm/AbstractAlgorithm.java | 2 +- .../job/algorithm/cent/BetweennessCentralityAlgorithmV2.java | 6 ++---- .../job/algorithm/cent/ClosenessCentralityAlgorithmV2.java | 5 +---- .../hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java | 2 +- .../hugegraph/job/algorithm/cent/StressCentralityAlgorithmV2.java | 7 ++----- .../org/apache/hugegraph/job/algorithm/comm/LpaAlgorithm.java | 2 +- .../src/main/java/org/apache/hugegraph/schema/SchemaLabel.java | 8 ++++++++ .../traversal/algorithm/FusiformSimilarityTraverser.java | 2 +- .../org/apache/hugegraph/traversal/algorithm/HugeTraverser.java | 8 ++++---- .../hugegraph/traversal/algorithm/JaccardSimilarTraverser.java | 2 +- .../apache/hugegraph/traversal/algorithm/KneighborTraverser.java | 2 +- .../org/apache/hugegraph/traversal/algorithm/KoutTraverser.java | 2 +- .../org/apache/hugegraph/traversal/algorithm/PathsTraverser.java | 2 +- .../hugegraph/traversal/algorithm/PersonalRankTraverser.java | 2 +- .../hugegraph/traversal/algorithm/SameNeighborTraverser.java | 4 ++-- .../hugegraph/traversal/algorithm/ShortestPathTraverser.java | 4 ++-- .../traversal/algorithm/SingleSourceShortestPathTraverser.java | 4 ++-- .../apache/hugegraph/traversal/algorithm/SubGraphTraverser.java | 2 +- 19 files changed, 39 insertions(+), 34 deletions(-) diff --git a/hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/traversers/Vertices.java b/hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/traversers/Vertices.java index bf231ca90..d5be69489 100644 --- a/hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/traversers/Vertices.java +++ b/hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/traversers/Vertices.java @@ -26,6 +26,7 @@ import java.util.Set; import org.apache.hugegraph.HugeGraph; import org.apache.hugegraph.backend.id.Id; import org.apache.hugegraph.backend.query.ConditionQuery; +import org.apache.hugegraph.schema.SchemaLabel; import org.apache.hugegraph.structure.HugeVertex; import org.apache.hugegraph.traversal.optimize.TraversalUtil; import org.apache.hugegraph.type.HugeType; @@ -51,6 +52,10 @@ public class Vertices { this.label == null), "No source vertices provided"); Iterator<Vertex> iterator; if (this.ids != null && !this.ids.isEmpty()) { + E.checkArgument(this.label == null, + "Just provide one of ids or label of source vertices"); + E.checkArgument(props == null || props.isEmpty(), + "Just provide one of ids or properties of source vertices"); List<Id> sourceIds = new ArrayList<>(this.ids.size()); for (Object id : this.ids) { sourceIds.add(HugeVertex.getIdValue(id)); @@ -62,7 +67,7 @@ public class Vertices { } else { ConditionQuery query = new ConditionQuery(HugeType.VERTEX); if (this.label != null) { - Id label = g.vertexLabel(this.label).id(); + Id label = SchemaLabel.getVertexLabelId(g, this.label); query.eq(HugeKeys.LABEL, label); } if (props != null && !props.isEmpty()) { diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/AbstractAlgorithm.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/AbstractAlgorithm.java index 0e249ebe2..b30d3ac83 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/AbstractAlgorithm.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/AbstractAlgorithm.java @@ -379,7 +379,7 @@ public abstract class AbstractAlgorithm implements Algorithm { ConditionQuery query = new ConditionQuery(HugeType.VERTEX); query.capacity(Query.NO_CAPACITY); query.limit(limit); - query.eq(HugeKeys.LABEL, this.getVertexLabelId(label)); + query.eq(HugeKeys.LABEL, this.getVertexLabelIdOrNull(label)); return this.graph().vertices(query); } diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithmV2.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithmV2.java index d33dc54eb..bc4c3ae37 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithmV2.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithmV2.java @@ -26,6 +26,7 @@ import org.apache.hugegraph.backend.id.Id; import org.apache.hugegraph.backend.query.Query; import org.apache.hugegraph.job.UserJob; import org.apache.hugegraph.job.algorithm.BfsTraverser; +import org.apache.hugegraph.schema.SchemaLabel; import org.apache.hugegraph.structure.HugeVertex; import org.apache.hugegraph.traversal.algorithm.HugeTraverser; import org.apache.hugegraph.type.define.Directions; @@ -80,10 +81,7 @@ public class BetweennessCentralityAlgorithmV2 extends AbstractCentAlgorithm { assert topN >= 0L || topN == NO_LIMIT; this.globalBetweennesses = new HashMap<>(); - Id edgeLabelId = null; - if (label != null) { - edgeLabelId = this.graph().edgeLabel(label).id(); - } + Id edgeLabelId = this.getEdgeLabelIdOrNull(label); // TODO: sample the startVertices Iterator<Vertex> startVertices = this.vertices(sourceLabel, diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java index e95eae587..1519a2a45 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java @@ -81,10 +81,7 @@ public class ClosenessCentralityAlgorithmV2 extends AbstractCentAlgorithm { assert degree > 0L || degree == NO_LIMIT; assert topN >= 0L || topN == NO_LIMIT; - Id edgeLabelId = null; - if (label != null) { - edgeLabelId = this.graph().edgeLabel(label).id(); - } + Id edgeLabelId = this.getEdgeLabelIdOrNull(label); // TODO: sample the startVertices Iterator<Vertex> startVertices = this.vertices(sourceLabel, diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java index 5a995d6dd..19e68c053 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java @@ -73,7 +73,7 @@ public class DegreeCentralityAlgorithm extends AbstractCentAlgorithm { JsonMap degrees = new JsonMap(); TopMap<Id> tops = new TopMap<>(topN); Id vertex = null; - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); long degree = 0L; long totalEdges = 0L; diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/StressCentralityAlgorithmV2.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/StressCentralityAlgorithmV2.java index 5817e0386..d1c3da6d8 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/StressCentralityAlgorithmV2.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/cent/StressCentralityAlgorithmV2.java @@ -60,7 +60,7 @@ public class StressCentralityAlgorithmV2 extends AbstractCentAlgorithm { private static class Traverser extends BfsTraverser<StressNode> { - private Map<Id, MutableLong> globalStresses; + private final Map<Id, MutableLong> globalStresses; private Traverser(UserJob<Object> job) { super(job); @@ -80,10 +80,7 @@ public class StressCentralityAlgorithmV2 extends AbstractCentAlgorithm { assert degree > 0L || degree == NO_LIMIT; assert topN >= 0L || topN == NO_LIMIT; - Id edgeLabelId = null; - if (label != null) { - edgeLabelId = this.graph().edgeLabel(label).id(); - } + Id edgeLabelId = this.getEdgeLabelIdOrNull(label); // TODO: sample the startVertices Iterator<Vertex> startVertices = this.vertices(sourceLabel, diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/comm/LpaAlgorithm.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/comm/LpaAlgorithm.java index 289ebca04..4b2e30db3 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/comm/LpaAlgorithm.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/job/algorithm/comm/LpaAlgorithm.java @@ -178,7 +178,7 @@ public class LpaAlgorithm extends AbstractCommAlgorithm { Directions dir, long degree) { // neighbors of source vertex v Id source = (Id) vertex.id(); - Id labelId = this.getEdgeLabelId(edgeLabel); + Id labelId = this.getEdgeLabelIdOrNull(edgeLabel); Iterator<Id> neighbors = this.adjacentVertices(source, dir, labelId, degree); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/schema/SchemaLabel.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/schema/SchemaLabel.java index e20a3f89d..09de43e2d 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/schema/SchemaLabel.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/schema/SchemaLabel.java @@ -177,4 +177,12 @@ public abstract class SchemaLabel extends SchemaElement label.getClass()); } } + + public static Id getVertexLabelId(HugeGraph graph, Object label) { + return SchemaLabel.getLabelId(graph, HugeType.VERTEX, label); + } + + public static Id getEdgeLabelId(HugeGraph graph, Object label) { + return SchemaLabel.getLabelId(graph, HugeType.EDGE, label); + } } diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/FusiformSimilarityTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/FusiformSimilarityTraverser.java index 55ee91b56..741a6ef6f 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/FusiformSimilarityTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/FusiformSimilarityTraverser.java @@ -112,7 +112,7 @@ public class FusiformSimilarityTraverser extends HugeTraverser { // Ignore current vertex if its neighbors number is not enough return ImmutableSet.of(); } - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); // Get similar nodes and counts Iterator<Edge> edges = this.edgesOfVertex(vertex.id(), direction, labelId, degree); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/HugeTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/HugeTraverser.java index e75d01635..57c7c0a31 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/HugeTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/HugeTraverser.java @@ -620,18 +620,18 @@ public class HugeTraverser { } } - protected Object getVertexLabelId(Object label) { + protected Object getVertexLabelIdOrNull(Object label) { if (label == null) { return null; } - return SchemaLabel.getLabelId(this.graph, HugeType.VERTEX, label); + return SchemaLabel.getVertexLabelId(this.graph, label); } - protected Id getEdgeLabelId(Object label) { + protected Id getEdgeLabelIdOrNull(Object label) { if (label == null) { return null; } - return SchemaLabel.getLabelId(this.graph, HugeType.EDGE, label); + return SchemaLabel.getEdgeLabelId(this.graph, label); } protected void checkVertexExist(Id vertexId, String name) { diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/JaccardSimilarTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/JaccardSimilarTraverser.java index 51c81b9e1..296e89ad4 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/JaccardSimilarTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/JaccardSimilarTraverser.java @@ -54,7 +54,7 @@ public class JaccardSimilarTraverser extends OltpTraverser { E.checkNotNull(dir, "direction"); checkDegree(degree); - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); Set<Id> sourceNeighbors = IteratorUtils.set(this.adjacentVertices( vertex, dir, labelId, degree)); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KneighborTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KneighborTraverser.java index cc2a3990a..2b284b26a 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KneighborTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KneighborTraverser.java @@ -46,7 +46,7 @@ public class KneighborTraverser extends OltpTraverser { checkDegree(degree); checkLimit(limit); - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); KneighborRecords records = new KneighborRecords(true, sourceV, true); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KoutTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KoutTraverser.java index 61ec0a4b6..8cf3c15b7 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KoutTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/KoutTraverser.java @@ -58,7 +58,7 @@ public class KoutTraverser extends OltpTraverser { capacity, limit); } - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); Set<Id> sources = newIdSet(); Set<Id> neighbors = newIdSet(); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PathsTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PathsTraverser.java index 76c2fa6a9..5746533a5 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PathsTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PathsTraverser.java @@ -59,7 +59,7 @@ public class PathsTraverser extends HugeTraverser { return PathSet.EMPTY; } - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); Traverser traverser = new Traverser(sourceV, targetV, labelId, degree, capacity, limit); // We should stop early if walk backtrace or reach limit diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PersonalRankTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PersonalRankTraverser.java index 972eff7c7..2c3bafa23 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PersonalRankTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/PersonalRankTraverser.java @@ -55,7 +55,7 @@ public class PersonalRankTraverser extends HugeTraverser { Map<Id, Double> ranks = newMap(); ranks.put(source, 1.0); - Id labelId = this.graph().edgeLabel(label).id(); + Id labelId = this.getEdgeLabelIdOrNull(label); Directions dir = this.getStartDirection(source, label); Set<Id> outSeeds = newIdSet(); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SameNeighborTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SameNeighborTraverser.java index 036ec551c..af1623101 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SameNeighborTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SameNeighborTraverser.java @@ -45,7 +45,7 @@ public class SameNeighborTraverser extends HugeTraverser { checkDegree(degree); checkLimit(limit); - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); Set<Id> sourceNeighbors = IteratorUtils.set(this.adjacentVertices( vertex, direction, labelId, degree)); @@ -80,7 +80,7 @@ public class SameNeighborTraverser extends HugeTraverser { List<Id> labelsId = new ArrayList<>(); if (labels != null) { for (String label : labels) { - labelsId.add(this.getEdgeLabelId(label)); + labelsId.add(this.getEdgeLabelIdOrNull(label)); } } diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/ShortestPathTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/ShortestPathTraverser.java index a34f87289..4a2f3259d 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/ShortestPathTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/ShortestPathTraverser.java @@ -61,7 +61,7 @@ public class ShortestPathTraverser extends HugeTraverser { Map<Id, String> labelMap = newMap(labels.size()); for (String label : labels) { - labelMap.put(this.getEdgeLabelId(label), label); + labelMap.put(this.getEdgeLabelIdOrNull(label), label); } Traverser traverser = new Traverser(sourceV, targetV, dir, labelMap, degree, skipDegree, capacity); @@ -122,7 +122,7 @@ public class ShortestPathTraverser extends HugeTraverser { Map<Id, String> labelMap = newMap(labels.size()); for (String label : labels) { - labelMap.put(this.getEdgeLabelId(label), label); + labelMap.put(this.getEdgeLabelIdOrNull(label), label); } Traverser traverser = new Traverser(sourceV, targetV, dir, labelMap, degree, skipDegree, capacity); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java index ead4365a9..0c67228ab 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java @@ -58,7 +58,7 @@ public class SingleSourceShortestPathTraverser extends HugeTraverser { checkSkipDegree(skipDegree, degree, capacity); checkLimit(limit); - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); Traverser traverser = new Traverser(sourceV, dir, labelId, weight, degree, skipDegree, capacity, limit); while (true) { @@ -94,7 +94,7 @@ public class SingleSourceShortestPathTraverser extends HugeTraverser { checkCapacity(capacity); checkSkipDegree(skipDegree, degree, capacity); - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); Traverser traverser = new Traverser(sourceV, dir, labelId, weight, degree, skipDegree, capacity, NO_LIMIT); diff --git a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SubGraphTraverser.java b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SubGraphTraverser.java index d5c49eacd..f76f3e377 100644 --- a/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SubGraphTraverser.java +++ b/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SubGraphTraverser.java @@ -81,7 +81,7 @@ public class SubGraphTraverser extends HugeTraverser { checkCapacity(capacity); checkLimit(limit); - Id labelId = this.getEdgeLabelId(label); + Id labelId = this.getEdgeLabelIdOrNull(label); Traverser traverser = new Traverser(sourceV, labelId, depth, degree, capacity, limit, rings, sourceInRing);
