Skip to content

Commit 6306a04

Browse files
gdaleckaFylmTM
authored andcommitted
Filter required parameters for query execution (#26)
* filter required parameters for query execution * find query parameters in PsiTree * Extending PSI element * get parameter name from CypherParameter attributes * getParameterName - return hardcoded String instead of throwing exception
1 parent ca7860d commit 6306a04

File tree

10 files changed

+303
-232
lines changed

10 files changed

+303
-232
lines changed

language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/CypherParser.java

Lines changed: 24 additions & 64 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherParameter.java

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

language/cypher/src/main/gen/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/impl/CypherParameterImpl.java

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/lexer/Cypher.bnf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,9 @@ Variable ::= SymbolicNameString {
441441
}
442442
FunctionName ::= l_identifier
443443
ProcedureName ::= SymbolicNameString
444-
Parameter ::= NewParameter | OldParameter
444+
Parameter ::= NewParameter | OldParameter {
445+
methods=[getParameterName]
446+
}
445447
OldParameter ::= "{" (SymbolicNameString | UnsignedDecimalInteger) "}"
446448
NewParameter ::= "$" (SymbolicNameString | UnsignedDecimalInteger)
447449
NodeLabel ::= ":" LabelName

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/psi/CypherPsiImplUtil.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,30 @@ public static String getFullName(CypherProcedureInvocation element) {
6969
return element.getProcedureInvocationBody().getText();
7070
}
7171

72+
public static String getParameterName(CypherParameter element) {
73+
if (element.getNewParameter() != null) {
74+
CypherNewParameter newParameter = element.getNewParameter();
75+
if (newParameter.getSymbolicNameString() != null) {
76+
return newParameter.getSymbolicNameString().getUnescapedSymbolicNameString().getText();
77+
}
78+
if (newParameter.getUnsignedDecimalInteger() != null) {
79+
return newParameter.getUnsignedDecimalInteger().getLInteger().getText();
80+
}
81+
}
82+
83+
if (element.getOldParameter() != null) {
84+
CypherOldParameter oldParameter = element.getOldParameter();
85+
if (oldParameter.getSymbolicNameString() != null) {
86+
return oldParameter.getSymbolicNameString().getUnescapedSymbolicNameString().getText();
87+
}
88+
if (oldParameter.getUnsignedDecimalInteger() != null) {
89+
return oldParameter.getUnsignedDecimalInteger().getLInteger().getText();
90+
}
91+
}
92+
93+
return "graphbdb-plugin-invalid-parameter-name-should-never-happen";
94+
}
95+
7296
/**
7397
* Safely replaces symbolic name node with new node.
7498
* It's possible that nothing happens if newElement is invalid. No error thrown in such case.

0 commit comments

Comments
 (0)