private static Profiles parseTokens(String expression, StringTokenizer tokens) { return parseTokens(expression, tokens, Context.NONE); } private static Profiles parseTokens(String expression, StringTokenizer tokens, Context context) {
private static Profiles parseExpression(String expression) { Assert.hasText(expression, () -> "Invalid profile expression [" + expression + "]: must contain text"); StringTokenizer tokens = new StringTokenizer(expression, "()&|!", true); return parseTokens(expression, tokens); }
private static Profiles parseTokens(String expression, StringTokenizer tokens) { return parseTokens(expression, tokens, Context.NONE); } private static Profiles parseTokens(String expression, StringTokenizer tokens, Context context) {
private static Profiles parseExpression(String expression) { Assert.hasText(expression, () -> "Invalid profile expression [" + expression + "]: must contain text"); StringTokenizer tokens = new StringTokenizer(expression, "()&|!", true); return parseTokens(expression, tokens); }
Profiles contents = parseTokens(expression, tokens, Context.BRACKET); if (context == Context.INVERT) { return contents; break; case "!": elements.add(not(parseTokens(expression, tokens, Context.INVERT))); break; case ")":
Profiles contents = parseTokens(expression, tokens, Context.BRACKET); if (context == Context.INVERT) { return contents; break; case "!": elements.add(not(parseTokens(expression, tokens, Context.INVERT))); break; case ")":
private static Profiles parseTokens(String expression, StringTokenizer tokens) { return parseTokens(expression, tokens, Context.NONE); } private static Profiles parseTokens(String expression, StringTokenizer tokens, Context context) {
private static Profiles parseExpression(String expression) { Assert.hasText(expression, () -> "Invalid profile expression [" + expression + "]: must contain text"); StringTokenizer tokens = new StringTokenizer(expression, "()&|!", true); return parseTokens(expression, tokens); }
private static Profiles parseExpression(String expression) { Assert.hasText(expression, () -> "Invalid profile expression [" + expression + "]: must contain text"); StringTokenizer tokens = new StringTokenizer(expression, "()&|!", true); return parseTokens(expression, tokens); }
elements.add(parseTokens(expression, tokens)); break; case "&": break; case "!": elements.add(not(parseTokens(expression, tokens))); break; case ")":
Profiles contents = parseTokens(expression, tokens, Context.BRACKET); if (context == Context.INVERT) { return contents; break; case "!": elements.add(not(parseTokens(expression, tokens, Context.INVERT))); break; case ")":