add npe check for current token
Signed-off-by: Michael Hirsch <michael.hirsch@bosch-si.com>
This commit is contained in:
@@ -122,6 +122,9 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
|
|||||||
final ParseExceptionWrapper parseExceptionWrapper = new ParseExceptionWrapper(parseException);
|
final ParseExceptionWrapper parseExceptionWrapper = new ParseExceptionWrapper(parseException);
|
||||||
final int[][] expectedTokenSequence = parseExceptionWrapper.getExpectedTokenSequence();
|
final int[][] expectedTokenSequence = parseExceptionWrapper.getExpectedTokenSequence();
|
||||||
final TokenWrapper currentToken = parseExceptionWrapper.getCurrentToken();
|
final TokenWrapper currentToken = parseExceptionWrapper.getCurrentToken();
|
||||||
|
if (currentToken == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
final TokenWrapper nextToken = currentToken.getNext();
|
final TokenWrapper nextToken = currentToken.getNext();
|
||||||
final int currentTokenKind = currentToken.getKind();
|
final int currentTokenKind = currentToken.getKind();
|
||||||
final String currentTokenImageName = currentToken.getImage();
|
final String currentTokenImageName = currentToken.getImage();
|
||||||
@@ -138,6 +141,13 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (final int[] is : expectedTokenSequence) {
|
for (final int[] is : expectedTokenSequence) {
|
||||||
|
addSuggestionOnTokenImage(listTokens, nextTokenBeginColumn, currentTokenEndColumn, is);
|
||||||
|
}
|
||||||
|
return listTokens;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addSuggestionOnTokenImage(final List<SuggestToken> listTokens, final int nextTokenBeginColumn,
|
||||||
|
final int currentTokenEndColumn, final int[] is) {
|
||||||
for (final int i : is) {
|
for (final int i : is) {
|
||||||
final Collection<String> tokenImage = TokenDescription.getTokenImage(i);
|
final Collection<String> tokenImage = TokenDescription.getTokenImage(i);
|
||||||
if (tokenImage != null && !tokenImage.isEmpty()) {
|
if (tokenImage != null && !tokenImage.isEmpty()) {
|
||||||
@@ -146,8 +156,6 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return listTokens;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Optional<List<SuggestToken>> handleFieldTokenSuggestion(final String currentTokenImageName,
|
private static Optional<List<SuggestToken>> handleFieldTokenSuggestion(final String currentTokenImageName,
|
||||||
final int nextTokenBeginColumn, final int currentTokenEndColumn) {
|
final int nextTokenBeginColumn, final int currentTokenEndColumn) {
|
||||||
|
|||||||
Reference in New Issue
Block a user