private void executeNegativeCase(String exp) { try { parser.parse(exp); fail("Expected ParseException for expression " + exp); } catch (ParseException e) { } } }
switch (b) { case OPEN_PARAN: processOpenParan(expStack, expS, index); index = skipSpaces(exp, index); break; case CLOSE_PARAN: processCloseParan(expStack, expS, index); index = skipSpaces(exp, index); break; case AND: case OR: processANDorOROp(getOperator(b), expStack, expS, index); index = skipSpaces(exp, index); break; case NOT: processNOTOp(expStack, expS, index); break; case DOUBLE_QUOTES: while (index < endPos && !endDoubleQuotesFound(exp[index])) { if (exp[index] == '\\') { index++; processLabelExpNode(new LeafExpressionNode(leafExp), expStack, expS, index); index = skipSpaces(exp, index); break; default: } while (index < endPos && !isEndOfLabel(exp[index]));
switch (b) { case OPEN_PARAN: processOpenParan(expStack, expS, index); index = skipSpaces(exp, index); break; case CLOSE_PARAN: processCloseParan(expStack, expS, index); index = skipSpaces(exp, index); break; case AND: case OR: processANDorOROp(getOperator(b), expStack, expS, index); index = skipSpaces(exp, index); break; case NOT: processNOTOp(expStack, expS, index); break; case DOUBLE_QUOTES: while (index < endPos && !endDoubleQuotesFound(exp[index])) { if (exp[index] == '\\') { index++; processLabelExpNode(new LeafExpressionNode(leafExp), expStack, expS, index); index = skipSpaces(exp, index); break; default: } while (index < endPos && !isEndOfLabel(exp[index]));
ExpressionNode node = null; try { node = EXP_PARSER.parse(visExpression); } catch (ParseException e) { throw new IOException(e);
@Override public List<Tag> createVisibilityExpTags(String visExpression, boolean withSerializationFormat, boolean checkAuths) throws IOException { ExpressionNode node = null; try { node = this.expressionParser.parse(visExpression); } catch (ParseException e) { throw new IOException(e); } node = this.expressionExpander.expand(node); List<Tag> tags = new ArrayList<>(); if (withSerializationFormat) { tags.add(STRING_SERIALIZATION_FORMAT_TAG); } if (node instanceof NonLeafExpressionNode && ((NonLeafExpressionNode) node).getOperator() == Operator.OR) { for (ExpressionNode child : ((NonLeafExpressionNode) node).getChildExps()) { tags.add(createTag(child)); } } else { tags.add(createTag(node)); } return tags; }
ExpressionNode node = null; try { node = parser.parse("\u0027&\"|\u002b&\u003f"); fail("Excpetion must be thrown as there are special characters without quotes"); } catch (ParseException e) { node = parser.parse(CellVisibility.quote("\u0027") + "&" + CellVisibility.quote("\"") + "|" + CellVisibility.quote("\u002b" + "&" + "\u003f")); assertTrue(node instanceof NonLeafExpressionNode); assertEquals("\u0027", ((LeafExpressionNode) nlNode.getChildExps().get(0)).getIdentifier()); try { node = parser.parse(CellVisibility.quote("\u0027&\\") + "|" + CellVisibility.quote("\u002b" + "&" + "\\") + CellVisibility.quote("$$\"")); fail("Excpetion must be thrown as there is not operator"); } catch (ParseException e) { node = parser.parse(CellVisibility.quote("\u0027" + "&" + "\\") + "|" + CellVisibility.quote("\u003f" + "&" + "\\") + "&" + CellVisibility.quote("$$\"")); assertTrue(node instanceof NonLeafExpressionNode); ((LeafExpressionNode) nlNode.getChildExps().get(1)).getIdentifier()); try { node = parser.parse(CellVisibility.quote("\u002b&\\") + "|" + CellVisibility.quote("\u0027&\\") + "&" + "\"$$"); fail("Excpetion must be thrown as there is no end quote");
@Test public void testNonAsciiCases() throws Exception { ExpressionNode node = parser.parse(CellVisibility.quote("\u0027") + "&" + CellVisibility.quote("\u002b") + "|" + CellVisibility.quote("\u002d") + "&" + CellVisibility.quote("\u003f")); assertEquals("\u0027", ((LeafExpressionNode) nlNode.getChildExps().get(0)).getIdentifier()); node = parser.parse(CellVisibility.quote("\u0027") + "&" + CellVisibility.quote("\u002b") + "|" + CellVisibility.quote("\u002d") + "&" + CellVisibility.quote("\u003f")); assertTrue(node instanceof NonLeafExpressionNode);
ExpressionNode node = parser.parse("abc"); assertTrue(node instanceof LeafExpressionNode); assertEquals("abc", ((LeafExpressionNode) node).getIdentifier()); node = parser.parse("a&b|c&d"); assertTrue(node instanceof NonLeafExpressionNode); NonLeafExpressionNode nlNode = (NonLeafExpressionNode) node; node = parser.parse("(a)"); assertTrue(node instanceof LeafExpressionNode); assertEquals("a", ((LeafExpressionNode) node).getIdentifier()); node = parser.parse(" ( a & b )"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("((((a&b))))"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("( a | b ) & (cc|def)"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("a&(cc|de)"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("(a&b)|c");
private void executeNegativeCase(String exp) { try { parser.parse(exp); fail("Expected ParseException for expression " + exp); } catch (ParseException e) { } } }
ExpressionNode node = null; try { node = EXP_PARSER.parse(visExpression); } catch (ParseException e) { throw new IOException(e);
@Override public List<Tag> createVisibilityExpTags(String visExpression, boolean withSerializationFormat, boolean checkAuths) throws IOException { ExpressionNode node = null; try { node = this.expressionParser.parse(visExpression); } catch (ParseException e) { throw new IOException(e); } node = this.expressionExpander.expand(node); List<Tag> tags = new ArrayList<>(); if (withSerializationFormat) { tags.add(STRING_SERIALIZATION_FORMAT_TAG); } if (node instanceof NonLeafExpressionNode && ((NonLeafExpressionNode) node).getOperator() == Operator.OR) { for (ExpressionNode child : ((NonLeafExpressionNode) node).getChildExps()) { tags.add(createTag(child)); } } else { tags.add(createTag(node)); } return tags; }
ExpressionNode node = null; try { node = parser.parse("\u0027&\"|\u002b&\u003f"); fail("Excpetion must be thrown as there are special characters without quotes"); } catch (ParseException e) { node = parser.parse(CellVisibility.quote("\u0027") + "&" + CellVisibility.quote("\"") + "|" + CellVisibility.quote("\u002b" + "&" + "\u003f")); assertTrue(node instanceof NonLeafExpressionNode); assertEquals("\u0027", ((LeafExpressionNode) nlNode.getChildExps().get(0)).getIdentifier()); try { node = parser.parse(CellVisibility.quote("\u0027&\\") + "|" + CellVisibility.quote("\u002b" + "&" + "\\") + CellVisibility.quote("$$\"")); fail("Excpetion must be thrown as there is not operator"); } catch (ParseException e) { node = parser.parse(CellVisibility.quote("\u0027" + "&" + "\\") + "|" + CellVisibility.quote("\u003f" + "&" + "\\") + "&" + CellVisibility.quote("$$\"")); assertTrue(node instanceof NonLeafExpressionNode); ((LeafExpressionNode) nlNode.getChildExps().get(1)).getIdentifier()); try { node = parser.parse(CellVisibility.quote("\u002b&\\") + "|" + CellVisibility.quote("\u0027&\\") + "&" + "\"$$"); fail("Excpetion must be thrown as there is no end quote");
@Test public void testNonAsciiCases() throws Exception { ExpressionNode node = parser.parse(CellVisibility.quote("\u0027") + "&" + CellVisibility.quote("\u002b") + "|" + CellVisibility.quote("\u002d") + "&" + CellVisibility.quote("\u003f")); assertEquals("\u0027", ((LeafExpressionNode) nlNode.getChildExps().get(0)).getIdentifier()); node = parser.parse(CellVisibility.quote("\u0027") + "&" + CellVisibility.quote("\u002b") + "|" + CellVisibility.quote("\u002d") + "&" + CellVisibility.quote("\u003f")); assertTrue(node instanceof NonLeafExpressionNode);
ExpressionNode node = parser.parse("abc"); assertTrue(node instanceof LeafExpressionNode); assertEquals("abc", ((LeafExpressionNode) node).getIdentifier()); node = parser.parse("a&b|c&d"); assertTrue(node instanceof NonLeafExpressionNode); NonLeafExpressionNode nlNode = (NonLeafExpressionNode) node; node = parser.parse("(a)"); assertTrue(node instanceof LeafExpressionNode); assertEquals("a", ((LeafExpressionNode) node).getIdentifier()); node = parser.parse(" ( a & b )"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("((((a&b))))"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("( a | b ) & (cc|def)"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("a&(cc|de)"); assertTrue(node instanceof NonLeafExpressionNode); nlNode = (NonLeafExpressionNode) node; node = parser.parse("(a&b)|c");