Changeset View
Changeset View
Standalone View
Standalone View
java/src/main/java/org/softwareheritage/graph/rpc/Traversal.java
Show First 20 Lines • Show All 274 Lines • ▼ Show 20 Lines | static class SimpleTraversal extends BFSVisitor { | |||||||||||||||||||||||||||||||||||||||||||||||
public void visitNode(long node) { | public void visitNode(long node) { | |||||||||||||||||||||||||||||||||||||||||||||||
nodeBuilder = null; | nodeBuilder = null; | |||||||||||||||||||||||||||||||||||||||||||||||
if (nodeReturnChecker.allowed(node) && (!request.hasMinDepth() || depth >= request.getMinDepth())) { | if (nodeReturnChecker.allowed(node) && (!request.hasMinDepth() || depth >= request.getMinDepth())) { | |||||||||||||||||||||||||||||||||||||||||||||||
nodeBuilder = Node.newBuilder(); | nodeBuilder = Node.newBuilder(); | |||||||||||||||||||||||||||||||||||||||||||||||
NodePropertyBuilder.buildNodeProperties(g, nodeDataMask, nodeBuilder, node); | NodePropertyBuilder.buildNodeProperties(g, nodeDataMask, nodeBuilder, node); | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
super.visitNode(node); | super.visitNode(node); | |||||||||||||||||||||||||||||||||||||||||||||||
boolean nodeMatchesConstraints = true; | boolean nodeMatchesConstraints = true; | |||||||||||||||||||||||||||||||||||||||||||||||
if (request.getReturnNodes().hasMinTraversalSuccessors()) { | if (request.getReturnNodes().hasMinTraversalSuccessors()) { | |||||||||||||||||||||||||||||||||||||||||||||||
nodeMatchesConstraints &= traversalSuccessors >= request.getReturnNodes().getMinTraversalSuccessors(); | nodeMatchesConstraints &= traversalSuccessors >= request.getReturnNodes().getMinTraversalSuccessors(); | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
if (request.getReturnNodes().hasMaxTraversalSuccessors()) { | if (request.getReturnNodes().hasMaxTraversalSuccessors()) { | |||||||||||||||||||||||||||||||||||||||||||||||
nodeMatchesConstraints &= traversalSuccessors <= request.getReturnNodes().getMaxTraversalSuccessors(); | nodeMatchesConstraints &= traversalSuccessors <= request.getReturnNodes().getMaxTraversalSuccessors(); | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
if (nodeMatchesConstraints) { | if (nodeMatchesConstraints) { | |||||||||||||||||||||||||||||||||||||||||||||||
if (nodeBuilder != null) { | if (nodeBuilder != null) { | |||||||||||||||||||||||||||||||||||||||||||||||
nodeObserver.onNext(nodeBuilder.build()); | nodeObserver.onNext(nodeBuilder.build()); | |||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||
if (remainingMatches >= 0) { | if (remainingMatches >= 0) { | |||||||||||||||||||||||||||||||||||||||||||||||
remainingMatches--; | remainingMatches--; | |||||||||||||||||||||||||||||||||||||||||||||||
if (remainingMatches == 0) { | if (remainingMatches == 0) { | |||||||||||||||||||||||||||||||||||||||||||||||
// We matched as many nodes as allowed | // We matched as many nodes as allowed | |||||||||||||||||||||||||||||||||||||||||||||||
throw new StopTraversalException(); | throw new StopTraversalException(); | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||
olasdUnsubmitted Not Done Inline Actions
olasd: | ||||||||||||||||||||||||||||||||||||||||||||||||
Done Inline Actionsactually I planned an ever simpler change: using only nodebuilder because the boolean is redundant vlorentz: actually I planned an ever simpler change: using only `nodebuilder` because the boolean is… | ||||||||||||||||||||||||||||||||||||||||||||||||
Done Inline Actionsvlorentz: D8583 | ||||||||||||||||||||||||||||||||||||||||||||||||
@Override | @Override | |||||||||||||||||||||||||||||||||||||||||||||||
protected void visitEdge(long src, long dst, Label label) { | protected void visitEdge(long src, long dst, Label label) { | |||||||||||||||||||||||||||||||||||||||||||||||
super.visitEdge(src, dst, label); | super.visitEdge(src, dst, label); | |||||||||||||||||||||||||||||||||||||||||||||||
NodePropertyBuilder.buildSuccessorProperties(g, nodeDataMask, nodeBuilder, src, dst, label); | NodePropertyBuilder.buildSuccessorProperties(g, nodeDataMask, nodeBuilder, src, dst, label); | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
} | } | |||||||||||||||||||||||||||||||||||||||||||||||
▲ Show 20 Lines • Show All 240 Lines • Show Last 20 Lines |