TINKERPOP-1878 Minor javadoc and code cleanup
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/3f77129f Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/3f77129f Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/3f77129f Branch: refs/heads/TINKERPOP-1878 Commit: 3f77129f72ca1c2cf8e94d5c55aa1459a42ca8f2 Parents: 01cd9a3 Author: Stephen Mallette <sp...@genoprime.com> Authored: Thu Jan 25 15:36:53 2018 -0500 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Mon Apr 23 14:21:04 2018 -0400 ---------------------------------------------------------------------- .../process/traversal/dsl/sparql/SparqlTraversal.java | 12 +++--------- .../traversal/dsl/sparql/SparqlTraversalSource.java | 8 +++++++- .../process/traversal/strategy/SparqlStrategy.java | 11 ++++++++--- 3 files changed, 18 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3f77129f/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversal.java ---------------------------------------------------------------------- diff --git a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversal.java b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversal.java index efa9489..843267d 100644 --- a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversal.java +++ b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversal.java @@ -22,6 +22,9 @@ import org.apache.tinkerpop.gremlin.process.traversal.Step; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; /** + * The {@code SparqlTraversal} has no additional traversal steps. The only step available for "SPARQL" is the + * {@link SparqlTraversalSource#sparql(String)} start step. + * * @author Stephen Mallette (http://stephen.genoprime.com) */ public interface SparqlTraversal<S, E> extends Traversal<S, E> { @@ -56,13 +59,4 @@ public interface SparqlTraversal<S, E> extends Traversal<S, E> { Traversal.super.iterate(); return this; } - - public static final class Symbols { - - private Symbols() { - // static fields only - } - - public static final String sparql = "sparql"; - } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3f77129f/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java ---------------------------------------------------------------------- diff --git a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java index 3596716..b156ed1 100644 --- a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java +++ b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java @@ -25,12 +25,15 @@ import org.apache.tinkerpop.gremlin.process.traversal.Bytecode; import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies; import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy; +import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.step.map.ConstantStep; import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.Transaction; import org.apache.tinkerpop.gremlin.structure.util.StringFactory; /** + * A {@link TraversalSource} implementation that spawns {@link SparqlTraversal} instances. + * * @author Stephen Mallette (http://stephen.genoprime.com) */ public class SparqlTraversalSource implements TraversalSource { @@ -115,9 +118,12 @@ public class SparqlTraversalSource implements TraversalSource { return (SparqlTraversalSource) clone; } + /** + * The start step for a SPARQL based traversal that accepts a string representation of the query to execute. + */ public <S> SparqlTraversal<S,String> sparql(final String query) { final SparqlTraversalSource clone = this.clone(); - clone.bytecode.addStep(SparqlTraversal.Symbols.sparql, query); + clone.bytecode.addStep(GraphTraversal.Symbols.constant, query); final SparqlTraversal.Admin<S, S> traversal = new DefaultSparqlTraversal<>(clone); return traversal.addStep(new ConstantStep<S,String>(traversal, query)); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3f77129f/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java ---------------------------------------------------------------------- diff --git a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java index 07ac4cf..bb0b326 100644 --- a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java +++ b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/strategy/SparqlStrategy.java @@ -22,17 +22,22 @@ import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decorati import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy; import org.apache.tinkerpop.gremlin.process.traversal.step.map.ConstantStep; -import org.apache.tinkerpop.gremlin.process.traversal.step.map.TraversalMapStep; import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep; import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy; import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper; import org.apache.tinkerpop.gremlin.sparql.SparqlToGremlinCompiler; +import org.apache.tinkerpop.gremlin.sparql.process.traversal.dsl.sparql.SparqlTraversalSource; import org.apache.tinkerpop.gremlin.structure.Vertex; import java.util.Collections; import java.util.Set; /** + * This {@link TraversalStrategy} is used in conjunction with the {@link SparqlTraversalSource} which has a single + * {@code sparql()} start step. That step adds a {@link ConstantStep} to the traversal with the SPARQL query within + * it as a string value. This strategy finds that step and transpiles it to a Gremlin traversal which then replaces + * the {@link ConstantStep}. + * * @author Stephen Mallette (http://stephen.genoprime.com) */ public class SparqlStrategy extends AbstractTraversalStrategy<TraversalStrategy.DecorationStrategy> @@ -69,11 +74,11 @@ public class SparqlStrategy extends AbstractTraversalStrategy<TraversalStrategy. sparqlTraversal.asAdmin().getSteps().forEach(s -> traversal.addStep(s)); } else { // The ConstantStep expects a string value - throw new IllegalStateException("SparqlStrategy cannot be applied to this traversal"); + throw new IllegalStateException("SparqlStrategy cannot be applied to a traversal that does not consist of a single ConstantStep<?,String>"); } } else { // SparqlStrategy requires that there be one step and it be a ConstantStep that contains some SPARQL - throw new IllegalStateException("SparqlStrategy cannot be applied to this traversal"); + throw new IllegalStateException("SparqlStrategy cannot be applied to a traversal that does not consist of a single ConstantStep<?,String>"); } } }