Skip to content

Commit f8f7076

Browse files
TINKERPOP-3023 Expand type syntax in grammar - Remove Vertex - TP4 (#3138)
This is a followup to #3133 with changes exclusively for TP4. The primary difference in TP4 is that bytecode has been replaced with GremlinLang, which means that the use of Vertex in V(), from(), and to() is now sugar added by GraphTraversal. These vertices must be converted to their ids when passed into GremlinLang. --------- Co-authored-by: Peter Tribe <peter.tribe@improving.com>
1 parent 5d38595 commit f8f7076

54 files changed

Lines changed: 742 additions & 554 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.asciidoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
9494
9595
This release also includes changes from <<release-3-7-XXX, 3.7.XXX>>.
9696
97+
* Removed Vertex/ReferenceVertex from grammar. Use vertex id in traversals now instead.
9798
* Modified mathematical operators to prevent overflows in steps such as `sum()` and 'sack()' to prefer promotion to the next highest number type.
9899
* Added `DateTime` ontop of the existing 'datetime' grammar.
99100
* Added UUID() + UUID(value) to grammar

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,6 @@ public Object parseObject(final GremlinParser.GenericArgumentContext ctx) {
8181
return visitGenericArgument(ctx);
8282
}
8383

84-
/**
85-
* Wrapper for visit function for {@link Vertex} types.
86-
*/
87-
public Vertex parseVertex(final GremlinParser.StructureVertexArgumentContext ctx) {
88-
return (Vertex) visitStructureVertexArgument(ctx);
89-
}
90-
9184
/**
9285
* Wrapper for visit function for {@code Map} types.
9386
*/
@@ -223,15 +216,6 @@ public Object visitGenericArgument(final GremlinParser.GenericArgumentContext ct
223216
}
224217
}
225218

226-
@Override
227-
public Object visitStructureVertexArgument(final GremlinParser.StructureVertexArgumentContext ctx) {
228-
if (ctx.structureVertexLiteral() != null) {
229-
return antlr.structureVisitor.visitStructureVertexLiteral(ctx.structureVertexLiteral());
230-
} else {
231-
return visitVariable(ctx.variable());
232-
}
233-
}
234-
235219
@Override
236220
public Object visitGenericMapArgument(final GremlinParser.GenericMapArgumentContext ctx) {
237221
if (ctx.genericMapLiteral() != null) {

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -414,11 +414,14 @@ protected void notImplemented(final ParseTree ctx) {
414414
/**
415415
* {@inheritDoc}
416416
*/
417-
@Override public T visitTraversalMethod_from_Vertex(final GremlinParser.TraversalMethod_from_VertexContext ctx) { notImplemented(ctx); return null; }
417+
@Override public T visitTraversalMethod_from_GenricArgument(GremlinParser.TraversalMethod_from_GenricArgumentContext ctx) { return null; }
418418
/**
419419
* {@inheritDoc}
420420
*/
421-
@Override public T visitTraversalMethod_from_Traversal(final GremlinParser.TraversalMethod_from_TraversalContext ctx) { notImplemented(ctx); return null; }
421+
@Override
422+
public T visitTraversalMethod_from_Traversal(GremlinParser.TraversalMethod_from_TraversalContext ctx) {
423+
return null;
424+
}
422425
/**
423426
* {@inheritDoc}
424427
*/
@@ -858,11 +861,11 @@ protected void notImplemented(final ParseTree ctx) {
858861
/**
859862
* {@inheritDoc}
860863
*/
861-
@Override public T visitTraversalMethod_to_Vertex(final GremlinParser.TraversalMethod_to_VertexContext ctx) { notImplemented(ctx); return null; }
864+
@Override public T visitTraversalMethod_to_Traversal(final GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); return null; }
862865
/**
863866
* {@inheritDoc}
864867
*/
865-
@Override public T visitTraversalMethod_to_Traversal(final GremlinParser.TraversalMethod_to_TraversalContext ctx) { notImplemented(ctx); return null; }
868+
@Override public T visitTraversalMethod_to_GenricArgument(final GremlinParser.TraversalMethod_to_GenricArgumentContext ctx) { notImplemented(ctx); return null; }
866869
/**
867870
* {@inheritDoc}
868871
*/
@@ -1379,10 +1382,6 @@ protected void notImplemented(final ParseTree ctx) {
13791382
* {@inheritDoc}
13801383
*/
13811384
@Override public T visitIoOptionsStringConstant(final GremlinParser.IoOptionsStringConstantContext ctx) { notImplemented(ctx); return null; }
1382-
/**
1383-
* {@inheritDoc}
1384-
*/
1385-
@Override public T visitStructureVertexLiteral(final GremlinParser.StructureVertexLiteralContext ctx) { notImplemented(ctx); return null; }
13861385
/**
13871386
* {@inheritDoc}
13881387
*/
@@ -1695,8 +1694,4 @@ protected void notImplemented(final ParseTree ctx) {
16951694
* {@inheritDoc}
16961695
*/
16971696
@Override public T visitNakedKey(final GremlinParser.NakedKeyContext ctx) { notImplemented(ctx); return null;}
1698-
/**
1699-
* {@inheritDoc}
1700-
*/
1701-
@Override public T visitStructureVertexArgument(final GremlinParser.StructureVertexArgumentContext ctx) { notImplemented(ctx); return null; }
17021697
}

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -386,11 +386,6 @@ public Object visitNestedTraversal(final GremlinParser.NestedTraversalContext ct
386386
return antlr.tvisitor.visitNestedTraversal(ctx);
387387
}
388388

389-
@Override
390-
public Object visitStructureVertexLiteral(final GremlinParser.StructureVertexLiteralContext ctx) {
391-
return antlr.structureVisitor.visitStructureVertexLiteral(ctx);
392-
}
393-
394389
/**
395390
* {@inheritDoc}
396391
*/

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinAntlrToJava.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,6 @@ public class GremlinAntlrToJava extends DefaultGremlinBaseVisitor<Object> {
9999
*/
100100
final TraversalPredicateVisitor traversalPredicateVisitor;
101101

102-
/**
103-
* Parses structure instances like {@link Vertex}.
104-
*/
105-
final StructureElementVisitor structureVisitor;
106-
107102
/**
108103
* Constructs a new instance and is bound to an {@link EmptyGraph}. This form of construction is helpful for
109104
* generating {@link GremlinLang} or for various forms of testing. {@link Traversal} instances constructed from this
@@ -196,7 +191,6 @@ protected GremlinAntlrToJava(final String traversalSourceName, final Graph graph
196191
this.txVisitor = new TraversalSourceTxVisitor(g, this);
197192
this.traversalPredicateVisitor = new TraversalPredicateVisitor(this);
198193
this.traversalStrategyVisitor = new TraversalStrategyVisitor(this);
199-
this.structureVisitor = new StructureElementVisitor(this);
200194
this.genericVisitor = new GenericLiteralVisitor(this);
201195
this.argumentVisitor = new ArgumentVisitor(variableResolver, this);
202196
}

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/StructureElementVisitor.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -698,18 +698,6 @@ public Traversal visitTraversalMethod_from_String(final GremlinParser.TraversalM
698698
return graphTraversal.from(antlr.genericVisitor.parseString(ctx.stringLiteral()));
699699
}
700700

701-
/**
702-
* {@inheritDoc}
703-
*/
704-
@Override
705-
public Traversal visitTraversalMethod_from_Vertex(final GremlinParser.TraversalMethod_from_VertexContext ctx) {
706-
final Object literalOrVar = antlr.argumentVisitor.visitStructureVertexArgument(ctx.structureVertexArgument());
707-
if (GValue.valueInstanceOf(literalOrVar, GType.VERTEX))
708-
return graphTraversal.from((GValue<Vertex>) literalOrVar);
709-
else
710-
return graphTraversal.from((Vertex) literalOrVar);
711-
}
712-
713701
/**
714702
* {@inheritDoc}
715703
*/
@@ -1819,18 +1807,6 @@ public Traversal visitTraversalMethod_to_String(final GremlinParser.TraversalMet
18191807
return graphTraversal.to(antlr.genericVisitor.parseString(ctx.stringLiteral()));
18201808
}
18211809

1822-
/**
1823-
* {@inheritDoc}
1824-
*/
1825-
@Override
1826-
public Traversal visitTraversalMethod_to_Vertex(final GremlinParser.TraversalMethod_to_VertexContext ctx) {
1827-
final Object literalOrVar = antlr.argumentVisitor.visitStructureVertexArgument(ctx.structureVertexArgument());
1828-
if (GValue.valueInstanceOf(literalOrVar, GType.VERTEX))
1829-
return graphTraversal.to((GValue<Vertex>) literalOrVar);
1830-
else
1831-
return graphTraversal.to((Vertex) literalOrVar);
1832-
}
1833-
18341810
/**
18351811
* {@inheritDoc}
18361812
*/
@@ -1967,6 +1943,22 @@ public Traversal visitTraversalMethod_option_Predicate_Traversal(final GremlinPa
19671943
antlr.tvisitor.visitNestedTraversal(ctx.nestedTraversal()));
19681944
}
19691945

1946+
/**
1947+
* {@inheritDoc}
1948+
*/
1949+
@Override
1950+
public GraphTraversal visitTraversalMethod_from_GenricArgument(final GremlinParser.TraversalMethod_from_GenricArgumentContext ctx) {
1951+
return graphTraversal.from(antlr.argumentVisitor.visitGenericArgument(ctx.genericArgument()));
1952+
}
1953+
1954+
/**
1955+
* {@inheritDoc}
1956+
*/
1957+
@Override
1958+
public Traversal visitTraversalMethod_to_GenricArgument(final GremlinParser.TraversalMethod_to_GenricArgumentContext ctx) {
1959+
return graphTraversal.to(antlr.argumentVisitor.visitGenericArgument(ctx.genericArgument()));
1960+
}
1961+
19701962
/**
19711963
* {@inheritDoc}
19721964
*/

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/GoTranslateVisitor.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,6 @@ public Void visitNullLiteral(final GremlinParser.NullLiteralContext ctx) {
199199
return null;
200200
}
201201

202-
@Override
203-
public Void visitStructureVertexLiteral(final GremlinParser.StructureVertexLiteralContext ctx) {
204-
sb.append(GO_PACKAGE_NAME).append("Vertex{Element{");
205-
visit(ctx.getChild(3)); // id
206-
sb.append(", ");
207-
visit(ctx.getChild(5)); // label
208-
sb.append("}}");
209-
return null;
210-
}
211-
212202
@Override
213203
public Void visitTraversalStrategy(final GremlinParser.TraversalStrategyContext ctx) {
214204
if (ctx.getChildCount() == 1)

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/GroovyTranslateVisitor.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,6 @@ public GroovyTranslateVisitor(final String graphTraversalSourceName) {
4646
super(graphTraversalSourceName);
4747
}
4848

49-
@Override
50-
public Void visitStructureVertexLiteral(final GremlinParser.StructureVertexLiteralContext ctx) {
51-
sb.append("new ");
52-
sb.append(vertexClassName);
53-
sb.append("(");
54-
visit(ctx.getChild(3)); // id
55-
sb.append(", ");
56-
visit(ctx.getChild(5)); // label
57-
sb.append(")");
58-
return null;
59-
}
60-
6149
@Override
6250
public Void visitIntegerLiteral(final GremlinParser.IntegerLiteralContext ctx) {
6351
final String integerLiteral = ctx.getText().toLowerCase();

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/JavaTranslateVisitor.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,6 @@ public JavaTranslateVisitor(final String graphTraversalSourceName) {
5252
super(graphTraversalSourceName);
5353
}
5454

55-
@Override
56-
public Void visitStructureVertexLiteral(final GremlinParser.StructureVertexLiteralContext ctx) {
57-
sb.append("new ");
58-
sb.append(vertexClassName);
59-
sb.append("(");
60-
visit(ctx.getChild(3)); // id
61-
sb.append(", ");
62-
visit(ctx.getChild(5)); // label
63-
sb.append(")");
64-
return null;
65-
}
66-
6755
@Override
6856
public Void visitTraversalStrategy(final GremlinParser.TraversalStrategyContext ctx) {
6957
if (ctx.getChildCount() == 1)

0 commit comments

Comments
 (0)