Skip to content

Commit c16901a

Browse files
author
Psilo
committed
final fix interceptor generator syntax and tests
1 parent 6dc0bda commit c16901a

File tree

20 files changed

+1109
-273
lines changed

20 files changed

+1109
-273
lines changed

antlr4/.antlr/Rql.interp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ null
77
null
88
null
99
null
10+
null
1011
'('
1112
')'
1213
null
@@ -19,8 +20,9 @@ null
1920
Operator
2021
Like
2122
NLike
22-
NullOp
23-
NotNullOp
23+
Null
24+
Is
25+
Not
2426
And
2527
Or
2628
ParOpen
@@ -41,8 +43,17 @@ or
4143
parOpen
4244
parClose
4345
optTerm
46+
optTerm1
47+
optOperator
48+
optTerm2
4449
term
50+
term1
51+
nullOperator1
52+
nullOperator2
53+
nullOperator
54+
operator
55+
term2
4556

4657

4758
atn:
48-
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 15, 72, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 31, 10, 3, 12, 3, 14, 3, 34, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 40, 10, 4, 12, 4, 14, 4, 43, 11, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 50, 10, 5, 3, 6, 3, 6, 5, 6, 54, 10, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 2, 2, 13, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 2, 2, 2, 64, 2, 24, 3, 2, 2, 2, 4, 26, 3, 2, 2, 2, 6, 35, 3, 2, 2, 2, 8, 49, 3, 2, 2, 2, 10, 53, 3, 2, 2, 2, 12, 55, 3, 2, 2, 2, 14, 57, 3, 2, 2, 2, 16, 59, 3, 2, 2, 2, 18, 61, 3, 2, 2, 2, 20, 63, 3, 2, 2, 2, 22, 67, 3, 2, 2, 2, 24, 25, 5, 4, 3, 2, 25, 3, 3, 2, 2, 2, 26, 32, 5, 6, 4, 2, 27, 28, 5, 14, 8, 2, 28, 29, 5, 6, 4, 2, 29, 31, 3, 2, 2, 2, 30, 27, 3, 2, 2, 2, 31, 34, 3, 2, 2, 2, 32, 30, 3, 2, 2, 2, 32, 33, 3, 2, 2, 2, 33, 5, 3, 2, 2, 2, 34, 32, 3, 2, 2, 2, 35, 41, 5, 8, 5, 2, 36, 37, 5, 12, 7, 2, 37, 38, 5, 8, 5, 2, 38, 40, 3, 2, 2, 2, 39, 36, 3, 2, 2, 2, 40, 43, 3, 2, 2, 2, 41, 39, 3, 2, 2, 2, 41, 42, 3, 2, 2, 2, 42, 7, 3, 2, 2, 2, 43, 41, 3, 2, 2, 2, 44, 50, 5, 10, 6, 2, 45, 46, 5, 16, 9, 2, 46, 47, 5, 4, 3, 2, 47, 48, 5, 18, 10, 2, 48, 50, 3, 2, 2, 2, 49, 44, 3, 2, 2, 2, 49, 45, 3, 2, 2, 2, 50, 9, 3, 2, 2, 2, 51, 54, 5, 20, 11, 2, 52, 54, 5, 22, 12, 2, 53, 51, 3, 2, 2, 2, 53, 52, 3, 2, 2, 2, 54, 11, 3, 2, 2, 2, 55, 56, 7, 8, 2, 2, 56, 13, 3, 2, 2, 2, 57, 58, 7, 9, 2, 2, 58, 15, 3, 2, 2, 2, 59, 60, 7, 10, 2, 2, 60, 17, 3, 2, 2, 2, 61, 62, 7, 11, 2, 2, 62, 19, 3, 2, 2, 2, 63, 64, 7, 13, 2, 2, 64, 65, 7, 3, 2, 2, 65, 66, 7, 14, 2, 2, 66, 21, 3, 2, 2, 2, 67, 68, 7, 12, 2, 2, 68, 69, 7, 3, 2, 2, 69, 70, 7, 14, 2, 2, 70, 23, 3, 2, 2, 2, 6, 32, 41, 49, 53]
59+
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 16, 113, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 49, 10, 3, 12, 3, 14, 3, 52, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 58, 10, 4, 12, 4, 14, 4, 61, 11, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 68, 10, 5, 3, 6, 3, 6, 5, 6, 72, 10, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 5, 19, 105, 10, 19, 3, 20, 3, 20, 5, 20, 109, 10, 20, 3, 21, 3, 21, 3, 21, 2, 2, 22, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 2, 3, 4, 2, 6, 6, 15, 15, 2, 98, 2, 42, 3, 2, 2, 2, 4, 44, 3, 2, 2, 2, 6, 53, 3, 2, 2, 2, 8, 67, 3, 2, 2, 2, 10, 71, 3, 2, 2, 2, 12, 73, 3, 2, 2, 2, 14, 75, 3, 2, 2, 2, 16, 77, 3, 2, 2, 2, 18, 79, 3, 2, 2, 2, 20, 81, 3, 2, 2, 2, 22, 85, 3, 2, 2, 2, 24, 87, 3, 2, 2, 2, 26, 89, 3, 2, 2, 2, 28, 91, 3, 2, 2, 2, 30, 95, 3, 2, 2, 2, 32, 97, 3, 2, 2, 2, 34, 99, 3, 2, 2, 2, 36, 104, 3, 2, 2, 2, 38, 108, 3, 2, 2, 2, 40, 110, 3, 2, 2, 2, 42, 43, 5, 4, 3, 2, 43, 3, 3, 2, 2, 2, 44, 50, 5, 6, 4, 2, 45, 46, 5, 14, 8, 2, 46, 47, 5, 6, 4, 2, 47, 49, 3, 2, 2, 2, 48, 45, 3, 2, 2, 2, 49, 52, 3, 2, 2, 2, 50, 48, 3, 2, 2, 2, 50, 51, 3, 2, 2, 2, 51, 5, 3, 2, 2, 2, 52, 50, 3, 2, 2, 2, 53, 59, 5, 8, 5, 2, 54, 55, 5, 12, 7, 2, 55, 56, 5, 8, 5, 2, 56, 58, 3, 2, 2, 2, 57, 54, 3, 2, 2, 2, 58, 61, 3, 2, 2, 2, 59, 57, 3, 2, 2, 2, 59, 60, 3, 2, 2, 2, 60, 7, 3, 2, 2, 2, 61, 59, 3, 2, 2, 2, 62, 68, 5, 10, 6, 2, 63, 64, 5, 16, 9, 2, 64, 65, 5, 4, 3, 2, 65, 66, 5, 18, 10, 2, 66, 68, 3, 2, 2, 2, 67, 62, 3, 2, 2, 2, 67, 63, 3, 2, 2, 2, 68, 9, 3, 2, 2, 2, 69, 72, 5, 20, 11, 2, 70, 72, 5, 28, 15, 2, 71, 69, 3, 2, 2, 2, 71, 70, 3, 2, 2, 2, 72, 11, 3, 2, 2, 2, 73, 74, 7, 9, 2, 2, 74, 13, 3, 2, 2, 2, 75, 76, 7, 10, 2, 2, 76, 15, 3, 2, 2, 2, 77, 78, 7, 11, 2, 2, 78, 17, 3, 2, 2, 2, 79, 80, 7, 12, 2, 2, 80, 19, 3, 2, 2, 2, 81, 82, 5, 22, 12, 2, 82, 83, 5, 24, 13, 2, 83, 84, 5, 26, 14, 2, 84, 21, 3, 2, 2, 2, 85, 86, 7, 14, 2, 2, 86, 23, 3, 2, 2, 2, 87, 88, 7, 3, 2, 2, 88, 25, 3, 2, 2, 2, 89, 90, 7, 15, 2, 2, 90, 27, 3, 2, 2, 2, 91, 92, 5, 30, 16, 2, 92, 93, 5, 38, 20, 2, 93, 94, 5, 40, 21, 2, 94, 29, 3, 2, 2, 2, 95, 96, 7, 13, 2, 2, 96, 31, 3, 2, 2, 2, 97, 98, 7, 7, 2, 2, 98, 33, 3, 2, 2, 2, 99, 100, 7, 7, 2, 2, 100, 101, 7, 8, 2, 2, 101, 35, 3, 2, 2, 2, 102, 105, 5, 32, 17, 2, 103, 105, 5, 34, 18, 2, 104, 102, 3, 2, 2, 2, 104, 103, 3, 2, 2, 2, 105, 37, 3, 2, 2, 2, 106, 109, 5, 36, 19, 2, 107, 109, 7, 3, 2, 2, 108, 106, 3, 2, 2, 2, 108, 107, 3, 2, 2, 2, 109, 39, 3, 2, 2, 2, 110, 111, 9, 2, 2, 2, 111, 41, 3, 2, 2, 2, 8, 50, 59, 67, 71, 104, 108]

antlr4/.antlr/RqlLexer.interp

Lines changed: 10 additions & 8 deletions
Large diffs are not rendered by default.

antlr4/Rql.g4

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,46 @@ grammar Rql;
33
/*
44
* Parser Rules start with lower-case characters.
55
*/
6-
eval : orExpression ;
6+
eval : orExpression;
77

8-
orExpression : andExpression (or andExpression)* ;
8+
orExpression : andExpression (or andExpression)*;
99

10-
andExpression : atomExpression (and atomExpression)* ;
10+
andExpression : atomExpression (and atomExpression)*;
1111

12-
atomExpression : atomTerm | (parOpen orExpression parClose) ;
12+
atomExpression : atomTerm | (parOpen orExpression parClose);
1313

14-
atomTerm : optTerm | term ;
14+
atomTerm : optTerm | term;
1515

16-
and : And ;
16+
and : And;
1717

18-
or : Or ;
18+
or : Or;
1919

20-
parOpen : ParOpen ;
20+
parOpen : ParOpen;
2121

22-
parClose : ParClose ;
22+
parClose : ParClose;
2323

24-
optTerm : OptIdentifier Operator JpqlIdentifier ;
25-
term : Identifier Operator JpqlIdentifier ;
24+
optTerm : optTerm1 optOperator optTerm2;
25+
optTerm1 : OptIdentifier;
26+
optOperator : Operator;
27+
optTerm2 : JpqlIdentifier;
28+
29+
term : term1 operator term2;
30+
term1 : Identifier;
31+
nullOperator1 : Is;
32+
nullOperator2 : Is Not;
33+
nullOperator : nullOperator1 | nullOperator2;
34+
operator : nullOperator | Operator;
35+
term2 : Null | JpqlIdentifier;
2636

2737
/*
2838
* Lexer Rules start with upper-case characters.
2939
*/
30-
Operator : ST | SEQ | GT | GEQ | EQ | NEQ | Like | NLike | NullOp | NotNullOp;
40+
Operator : ST | SEQ | GT | GEQ | EQ | EQAlt | NEQ | NEQAlt | Like | NLike;
3141
Like : L I K E;
3242
NLike : Not L I K E;
33-
NullOp : Is Null;
34-
NotNullOp : Is Not Null;
43+
Null : N U L L;
44+
Is : I S;
45+
Not : N O T;
3546
And : A N D;
3647
Or : O R;
3748
ParOpen : '(';
@@ -63,10 +74,9 @@ fragment GT : '>';
6374
fragment SEQ : '<=';
6475
fragment GEQ : '>=';
6576
fragment EQ : '=';
77+
fragment EQAlt : '==';
6678
fragment NEQ : '<>';
67-
fragment Null : N U L L;
68-
fragment Is : I S;
69-
fragment Not : N O T;
79+
fragment NEQAlt : '!=';
7080
fragment UCaseAlpha : 'A'..'Z';
7181
fragment LCaseAlpha : 'a'..'z';
7282
fragment Alpha : LCaseAlpha | UCaseAlpha;

antlr4/testInput.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
userId = :userId[long] AND (?timeFrom <= :timeFrom[datetime] OR timeTo > :timeTo[~MyEnum])
1+
blummi IS NOT NULL AND userId == :userId[long] AND (?timeFrom <= :timeFrom[datetime] OR timeTo > :timeTo[~MyEnum]) OR blubb != :blubb[bool] OR blah <> :blah[int]

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<modelVersion>4.0.0</modelVersion>
1919
<artifactId>http-server</artifactId>
20-
<version>0.1.7</version>
20+
<version>0.1.8</version>
2121
<name>HttpServer</name>
2222
<packaging>jar</packaging>
2323

src/main/java/info/unterrainer/commons/httpserver/GenericHandlerGroup.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ private void getList(final Context ctx) {
127127
DaoTransaction<E> transaction = daoTransactionManager.beginTransaction();
128128

129129
ListJson<P> bList = dao.getList(transaction.getManager(), offset, size, interceptorResult.getSelectClause(),
130-
interceptorResult.getJoinClause(), interceptorResult.getWhereClause(), interceptorResult.getParams());
130+
interceptorResult.getJoinClause(), interceptorResult.getWhereClause(), interceptorResult.getParams(),
131+
interceptorResult.getOrderByClause());
131132
ListJson<J> jList = new ListJson<>();
132133
for (P entry : bList.getEntries())
133134
jList.getEntries().add(orikaMapper.map(entry, jsonType));

src/main/java/info/unterrainer/commons/httpserver/antlr/RqlBaseListener.java

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,42 @@ public class RqlBaseListener implements RqlListener {
131131
* <p>The default implementation does nothing.</p>
132132
*/
133133
@Override public void exitOptTerm(RqlParser.OptTermContext ctx) { }
134+
/**
135+
* {@inheritDoc}
136+
*
137+
* <p>The default implementation does nothing.</p>
138+
*/
139+
@Override public void enterOptTerm1(RqlParser.OptTerm1Context ctx) { }
140+
/**
141+
* {@inheritDoc}
142+
*
143+
* <p>The default implementation does nothing.</p>
144+
*/
145+
@Override public void exitOptTerm1(RqlParser.OptTerm1Context ctx) { }
146+
/**
147+
* {@inheritDoc}
148+
*
149+
* <p>The default implementation does nothing.</p>
150+
*/
151+
@Override public void enterOptOperator(RqlParser.OptOperatorContext ctx) { }
152+
/**
153+
* {@inheritDoc}
154+
*
155+
* <p>The default implementation does nothing.</p>
156+
*/
157+
@Override public void exitOptOperator(RqlParser.OptOperatorContext ctx) { }
158+
/**
159+
* {@inheritDoc}
160+
*
161+
* <p>The default implementation does nothing.</p>
162+
*/
163+
@Override public void enterOptTerm2(RqlParser.OptTerm2Context ctx) { }
164+
/**
165+
* {@inheritDoc}
166+
*
167+
* <p>The default implementation does nothing.</p>
168+
*/
169+
@Override public void exitOptTerm2(RqlParser.OptTerm2Context ctx) { }
134170
/**
135171
* {@inheritDoc}
136172
*
@@ -143,6 +179,78 @@ public class RqlBaseListener implements RqlListener {
143179
* <p>The default implementation does nothing.</p>
144180
*/
145181
@Override public void exitTerm(RqlParser.TermContext ctx) { }
182+
/**
183+
* {@inheritDoc}
184+
*
185+
* <p>The default implementation does nothing.</p>
186+
*/
187+
@Override public void enterTerm1(RqlParser.Term1Context ctx) { }
188+
/**
189+
* {@inheritDoc}
190+
*
191+
* <p>The default implementation does nothing.</p>
192+
*/
193+
@Override public void exitTerm1(RqlParser.Term1Context ctx) { }
194+
/**
195+
* {@inheritDoc}
196+
*
197+
* <p>The default implementation does nothing.</p>
198+
*/
199+
@Override public void enterNullOperator1(RqlParser.NullOperator1Context ctx) { }
200+
/**
201+
* {@inheritDoc}
202+
*
203+
* <p>The default implementation does nothing.</p>
204+
*/
205+
@Override public void exitNullOperator1(RqlParser.NullOperator1Context ctx) { }
206+
/**
207+
* {@inheritDoc}
208+
*
209+
* <p>The default implementation does nothing.</p>
210+
*/
211+
@Override public void enterNullOperator2(RqlParser.NullOperator2Context ctx) { }
212+
/**
213+
* {@inheritDoc}
214+
*
215+
* <p>The default implementation does nothing.</p>
216+
*/
217+
@Override public void exitNullOperator2(RqlParser.NullOperator2Context ctx) { }
218+
/**
219+
* {@inheritDoc}
220+
*
221+
* <p>The default implementation does nothing.</p>
222+
*/
223+
@Override public void enterNullOperator(RqlParser.NullOperatorContext ctx) { }
224+
/**
225+
* {@inheritDoc}
226+
*
227+
* <p>The default implementation does nothing.</p>
228+
*/
229+
@Override public void exitNullOperator(RqlParser.NullOperatorContext ctx) { }
230+
/**
231+
* {@inheritDoc}
232+
*
233+
* <p>The default implementation does nothing.</p>
234+
*/
235+
@Override public void enterOperator(RqlParser.OperatorContext ctx) { }
236+
/**
237+
* {@inheritDoc}
238+
*
239+
* <p>The default implementation does nothing.</p>
240+
*/
241+
@Override public void exitOperator(RqlParser.OperatorContext ctx) { }
242+
/**
243+
* {@inheritDoc}
244+
*
245+
* <p>The default implementation does nothing.</p>
246+
*/
247+
@Override public void enterTerm2(RqlParser.Term2Context ctx) { }
248+
/**
249+
* {@inheritDoc}
250+
*
251+
* <p>The default implementation does nothing.</p>
252+
*/
253+
@Override public void exitTerm2(RqlParser.Term2Context ctx) { }
146254

147255
/**
148256
* {@inheritDoc}

src/main/java/info/unterrainer/commons/httpserver/antlr/RqlBaseVisitor.java

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,74 @@ public class RqlBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements Rq
8181
* {@link #visitChildren} on {@code ctx}.</p>
8282
*/
8383
@Override public T visitOptTerm(RqlParser.OptTermContext ctx) { return visitChildren(ctx); }
84+
/**
85+
* {@inheritDoc}
86+
*
87+
* <p>The default implementation returns the result of calling
88+
* {@link #visitChildren} on {@code ctx}.</p>
89+
*/
90+
@Override public T visitOptTerm1(RqlParser.OptTerm1Context ctx) { return visitChildren(ctx); }
91+
/**
92+
* {@inheritDoc}
93+
*
94+
* <p>The default implementation returns the result of calling
95+
* {@link #visitChildren} on {@code ctx}.</p>
96+
*/
97+
@Override public T visitOptOperator(RqlParser.OptOperatorContext ctx) { return visitChildren(ctx); }
98+
/**
99+
* {@inheritDoc}
100+
*
101+
* <p>The default implementation returns the result of calling
102+
* {@link #visitChildren} on {@code ctx}.</p>
103+
*/
104+
@Override public T visitOptTerm2(RqlParser.OptTerm2Context ctx) { return visitChildren(ctx); }
84105
/**
85106
* {@inheritDoc}
86107
*
87108
* <p>The default implementation returns the result of calling
88109
* {@link #visitChildren} on {@code ctx}.</p>
89110
*/
90111
@Override public T visitTerm(RqlParser.TermContext ctx) { return visitChildren(ctx); }
112+
/**
113+
* {@inheritDoc}
114+
*
115+
* <p>The default implementation returns the result of calling
116+
* {@link #visitChildren} on {@code ctx}.</p>
117+
*/
118+
@Override public T visitTerm1(RqlParser.Term1Context ctx) { return visitChildren(ctx); }
119+
/**
120+
* {@inheritDoc}
121+
*
122+
* <p>The default implementation returns the result of calling
123+
* {@link #visitChildren} on {@code ctx}.</p>
124+
*/
125+
@Override public T visitNullOperator1(RqlParser.NullOperator1Context ctx) { return visitChildren(ctx); }
126+
/**
127+
* {@inheritDoc}
128+
*
129+
* <p>The default implementation returns the result of calling
130+
* {@link #visitChildren} on {@code ctx}.</p>
131+
*/
132+
@Override public T visitNullOperator2(RqlParser.NullOperator2Context ctx) { return visitChildren(ctx); }
133+
/**
134+
* {@inheritDoc}
135+
*
136+
* <p>The default implementation returns the result of calling
137+
* {@link #visitChildren} on {@code ctx}.</p>
138+
*/
139+
@Override public T visitNullOperator(RqlParser.NullOperatorContext ctx) { return visitChildren(ctx); }
140+
/**
141+
* {@inheritDoc}
142+
*
143+
* <p>The default implementation returns the result of calling
144+
* {@link #visitChildren} on {@code ctx}.</p>
145+
*/
146+
@Override public T visitOperator(RqlParser.OperatorContext ctx) { return visitChildren(ctx); }
147+
/**
148+
* {@inheritDoc}
149+
*
150+
* <p>The default implementation returns the result of calling
151+
* {@link #visitChildren} on {@code ctx}.</p>
152+
*/
153+
@Override public T visitTerm2(RqlParser.Term2Context ctx) { return visitChildren(ctx); }
91154
}

0 commit comments

Comments
 (0)