Node parse(byte[] expression) { if (expression.length > 0) { Node node = parse_(expression); if (node == null) { throw new BadArgumentException("operator or missing parens", new String(expression, Constants.UTF8), index - 1); } if (parens != 0) { throw new BadArgumentException("parenthesis mis-match", new String(expression, Constants.UTF8), index - 1); } return node; } return null; }
switch (expression[index++]) { case '&': { expr = processTerm(subtermStart, index - 1, expr, expression); if (result != null) { if (!result.type.equals(NodeType.AND)) expr = processTerm(subtermStart, index - 1, expr, expression); if (result != null) { if (!result.type.equals(NodeType.OR)) if (subtermStart != index - 1 || expr != null) throw new BadArgumentException("expression needs & or |", new String(expression, Constants.UTF8), index - 1); expr = parse_(expression); subtermStart = index; subtermComplete = false; Node child = processTerm(subtermStart, index - 1, expr, expression); if (child == null && result == null) throw new BadArgumentException("empty expression not allowed", new String(expression, Constants.UTF8), index); Node child = processTerm(subtermStart, index, expr, expression); if (result != null) { result.add(child);
switch (expression[index++]) { case '&': { expr = processTerm(subtermStart, index - 1, expr, expression); if (result != null) { if (!result.type.equals(NodeType.AND)) expr = processTerm(subtermStart, index - 1, expr, expression); if (result != null) { if (!result.type.equals(NodeType.OR)) if (subtermStart != index - 1 || expr != null) throw new BadArgumentException("expression needs & or |", new String(expression, Constants.UTF8), index - 1); expr = parse_(expression); subtermStart = index; subtermComplete = false; Node child = processTerm(subtermStart, index - 1, expr, expression); if (child == null && result == null) throw new BadArgumentException("empty expression not allowed", new String(expression, Constants.UTF8), index); Node child = processTerm(subtermStart, index, expr, expression); if (result != null) { result.add(child);
private void validate(byte[] expression) { if (expression != null && expression.length > 0) { ColumnVisibilityParser p = new ColumnVisibilityParser(); node = p.parse(expression); } else { node = EMPTY_NODE; } this.expression = expression; }
Node parse(byte[] expression) { if (expression.length > 0) { Node node = parse_(expression); if (node == null) { throw new BadArgumentException("operator or missing parens", new String(expression, Constants.UTF8), index - 1); } if (parens != 0) { throw new BadArgumentException("parenthesis mis-match", new String(expression, Constants.UTF8), index - 1); } return node; } return null; }
private void validate(byte[] expression) { if (expression != null && expression.length > 0) { ColumnVisibilityParser p = new ColumnVisibilityParser(); node = p.parse(expression); } else { node = EMPTY_NODE; } this.expression = expression; }