Refactoring after review

Signed-off-by: Jonathan Philip Knoblauch <JonathanPhilip.Knoblauch@bosch-si.com>
This commit is contained in:
Jonathan Philip Knoblauch
2016-09-30 13:04:58 +02:00
parent eccce5cc5b
commit fa3cee62bf

View File

@@ -112,7 +112,9 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
private static List<SuggestToken> getNextTokens(final Exception e) { private static List<SuggestToken> getNextTokens(final Exception e) {
final ParseException parseException = findParseException(e); final ParseException parseException = findParseException(e);
if (parseException != null) { if (parseException == null) {
return Collections.emptyList();
}
final List<SuggestToken> listTokens = new ArrayList<>(); final List<SuggestToken> listTokens = new ArrayList<>();
final ParseExceptionWrapper parseExceptionWrapper = new ParseExceptionWrapper(parseException); final ParseExceptionWrapper parseExceptionWrapper = new ParseExceptionWrapper(parseException);
final int[][] expectedTokenSequence = parseExceptionWrapper.getExpectedTokenSequence(); final int[][] expectedTokenSequence = parseExceptionWrapper.getExpectedTokenSequence();
@@ -143,9 +145,6 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
} }
return listTokens; return listTokens;
} }
return Collections.emptyList();
}
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) {
@@ -193,9 +192,9 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
} }
private static ParseException findParseException(final Throwable e) { private static ParseException findParseException(final Throwable e) {
if (e != null && e instanceof ParseException) { if (e instanceof ParseException) {
return (ParseException) e; return (ParseException) e;
} else if (e != null && e.getCause() != null) { } else if (e.getCause() != null) {
return findParseException(e.getCause()); return findParseException(e.getCause());
} }
return null; return null;
@@ -203,12 +202,17 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
private static String getCustomMessage(final String message, final List<SuggestToken> expectedTokens) { private static String getCustomMessage(final String message, final List<SuggestToken> expectedTokens) {
String builder = message; String builder = message;
if (message.contains(":")) {
if (!message.contains(":")) {
return builder;
}
builder = message.substring(message.indexOf(':') + 1, message.length()); builder = message.substring(message.indexOf(':') + 1, message.length());
if (builder.indexOf("Was expecting") != -1) { if (builder.indexOf("Was expecting") != -1) {
builder = builder.substring(0, builder.lastIndexOf("Was expecting")); builder = builder.substring(0, builder.lastIndexOf("Was expecting"));
} }
if (null != expectedTokens && !expectedTokens.isEmpty()) {
if (expectedTokens != null && !expectedTokens.isEmpty()) {
final StringBuilder tokens = new StringBuilder(); final StringBuilder tokens = new StringBuilder();
expectedTokens.stream().forEach(value -> tokens.append(value.getSuggestion() + ",")); expectedTokens.stream().forEach(value -> tokens.append(value.getSuggestion() + ","));
builder = builder.concat("Was expecting :" + tokens.toString().substring(0, tokens.length() - 1)); builder = builder.concat("Was expecting :" + tokens.toString().substring(0, tokens.length() - 1));
@@ -217,10 +221,12 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
builder = builder.replace('\n', ' '); builder = builder.replace('\n', ' ');
builder = builder.replaceAll(">", " "); builder = builder.replaceAll(">", " ");
builder = builder.replaceAll("<", " "); builder = builder.replaceAll("<", " ");
}
return builder; return builder;
} }
// Token map with logical and comparator operator that are used for context
// sensitive help on search query.
private static final class TokenDescription { private static final class TokenDescription {
private static final Multimap<Integer, String> TOKEN_MAP = ArrayListMultimap.create(); private static final Multimap<Integer, String> TOKEN_MAP = ArrayListMultimap.create();
@@ -264,18 +270,17 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
} }
private static boolean hasSubEntries(final String tokenImageName) { private static boolean hasSubEntries(final String tokenImageName) {
final String tmpTokenName; String tmpTokenName = tokenImageName;
if (tokenImageName.contains(".")) { if (tokenImageName.contains(".")) {
final String[] split = tokenImageName.split("\\."); final String[] split = tokenImageName.split("\\.");
if (split.length > 0) { if (split.length <= 0) {
tmpTokenName = split[0];
} else {
return false; return false;
} }
} else { tmpTokenName = split[0];
tmpTokenName = tokenImageName;
} }
return Arrays.stream(TargetFields.values()).filter(field -> field.toString().equalsIgnoreCase(tmpTokenName)) final String finalTmpTokenName = tmpTokenName;
return Arrays.stream(TargetFields.values())
.filter(field -> field.toString().equalsIgnoreCase(finalTmpTokenName))
.map(field -> field.getSubEntityAttributes()).flatMap(subentities -> subentities.stream()) .map(field -> field.getSubEntityAttributes()).flatMap(subentities -> subentities.stream())
.count() > 0; .count() > 0;
} }
@@ -296,16 +301,18 @@ public class RsqlParserValidationOracle implements RsqlValidationOracle {
} }
private static boolean containsValue(final String imageName) { private static boolean containsValue(final String imageName) {
if (imageName.contains(".")) { if (!imageName.contains(".")) {
return FIELD_NAMES.stream().filter(value -> value.equalsIgnoreCase(imageName)).count() > 0;
}
final String[] split = imageName.split("\\."); final String[] split = imageName.split("\\.");
if (split.length > 1 && FIELD_NAMES.contains(split[0].toLowerCase())) { if (split.length > 1 && FIELD_NAMES.contains(split[0].toLowerCase())) {
return SUB_NAMES.get(split[0].toLowerCase()).stream() return SUB_NAMES.get(split[0].toLowerCase()).stream()
.filter(subname -> new String(split[0] + "." + subname).equalsIgnoreCase(imageName)) .filter(subname -> new String(split[0] + "." + subname).equalsIgnoreCase(imageName))
.count() > 0; .count() > 0;
} }
}
return FIELD_NAMES.stream().filter(value -> value.equalsIgnoreCase(imageName)).count() > 0; return FIELD_NAMES.stream().filter(value -> value.equalsIgnoreCase(imageName)).count() > 0;
} }
} }
} }