public ParseRunner<Node> get(Rule rule) { return new ReportingParseRunner<Node>(rule); } };
private Unit parseUnit(String templateText) throws Exception { ParsingResult<Object> result = new ReportingParseRunner<>(parser.Unit()).run(templateText); if (result.hasErrors()) { String errors = ErrorUtils.printParseErrors(result.parseErrors); throw new Exception(errors); } return (Unit) Iterables.getOnlyElement(result.valueStack); }
public static void main(String... args) { Parser templateParser = Parboiled.createParser(Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(templateParser.Unit()).run(input2); ImmutableList<Object> copy = ImmutableList.copyOf(result.valueStack.iterator()); if (!copy.isEmpty()) { Unit unit = (Unit) copy.get(0); Unit balance = Balancing.balance(unit); System.out.println(balance); } if (result.hasErrors()) { System.err.println(ErrorUtils.printParseErrors(result.parseErrors)); } // System.out.println(ParseTreeUtils.printNodeTree(result)); } }
protected ParseRunner<String> createParserRunner(XParser parser) { Rule root = parser.schema(); if (logger.isDebugEnabled()) { return new TracingParseRunner<String>(root); } else { return new ReportingParseRunner<String>(root); } }
private ParsingResult<OpelNode> getParsingResult(String expression) { return new ReportingParseRunner<OpelNode>(parser.get().ParsingUnit()).run(expression); } }
public Optional<MDNReport> parse(String mdnReport) { Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.dispositionNotificationContent()).run(mdnReport); if (result.matched) { return Optional.of((MDNReport)result.resultValue); } return Optional.empty(); }
private Unit parseUnit(String templateText) throws Exception { ParsingResult<Object> result = new ReportingParseRunner<>(parser.Unit()).run(templateText); if (result.hasErrors()) { String errors = ErrorUtils.printParseErrors(result.parseErrors); throw new Exception(errors); } return (Unit) Iterables.getOnlyElement(result.valueStack); }
private void buildModel() { this.proxyValues = new HashMap<>(); this.parser = Parboiled.createParser(ValueExpressionParser.class, proxyValues); this.parseRunner = new ReportingParseRunner<>(parser.value()); if (values != null) { createProxies(); parseValues(); } }
private void buildModel() { this.proxyValues = new HashMap<>(); this.parser = Parboiled.createParser(RateGeneratorExpressionParser.class, proxyValues); this.parseRunner = new ReportingParseRunner<>(parser.rateGenerator()); if (rates != null) { createProxies(); parseRateGenerators(); } }
private void buildModel() { this.proxyValues = new HashMap<>(); this.parser = Parboiled.createParser(ValueExpressionParser.class, proxyValues); this.parseRunner = new ReportingParseRunner<>(parser.value()); if (values != null) { createProxies(); parseValues(); } }
private void buildModel() { this.proxyValues = new HashMap<>(); this.parser = Parboiled.createParser(RateGeneratorExpressionParser.class, proxyValues); this.parseRunner = new ReportingParseRunner<>(parser.rateGenerator()); if (rates != null) { createProxies(); parseRateGenerators(); } }
@Test public void originalMessageIdShouldParse() { String originalMessageId = "Original-Message-ID: <original@message.id>"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.originalMessageIdField()).run(originalMessageId); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(OriginalMessageId.class); assertThat((OriginalMessageId)result.resultValue).isEqualTo(new OriginalMessageId("<original@message.id>")); }
@Test public void errorFieldShouldParse() { String error = "Error: Message1"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.errorField()).run(error); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(Error.class); assertThat((Error)result.resultValue).isEqualTo(new Error(Text.fromRawText("Message1"))); }
@Test public void reportingUserAgentShouldParseWithoutProduct() { String minimal = "Reporting-UA: UA_name"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.reportingUaField()).run(minimal); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(ReportingUserAgent.class); assertThat((ReportingUserAgent)result.resultValue).isEqualTo(ReportingUserAgent.builder().userAgentName("UA_name").build()); }
@Test public void extensionFieldShouldParse() { String extension = "X-OPENPAAS-IP: 177.177.177.77"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.extentionField()).run(extension); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(ExtensionField.class); assertThat((ExtensionField)result.resultValue).isEqualTo(ExtensionField.builder().fieldName("X-OPENPAAS-IP").rawValue(" 177.177.177.77").build()); } }
@Test public void reportingUserAgentShouldParseWithProduct() { String minimal = "Reporting-UA: UA_name; UA_product"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.reportingUaField()).run(minimal); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(ReportingUserAgent.class); assertThat((ReportingUserAgent)result.resultValue).isEqualTo(ReportingUserAgent.builder().userAgentName("UA_name").userAgentProduct("UA_product").build()); }
@Test public void finalRecipientFieldShouldParse() { String finalRecipient = "Final-Recipient: rfc822; final_recipient"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.finalRecipientField()).run(finalRecipient); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(FinalRecipient.class); assertThat((FinalRecipient)result.resultValue).isEqualTo(FinalRecipient.builder().addressType(new AddressType("rfc822")).finalRecipient(Text.fromRawText("final_recipient")).build()); }
@Test public void mdnGatewayFieldShouldParse() { String gateway = "MDN-Gateway: smtp; apache.org"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.mdnGatewayField()).run(gateway); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(Gateway.class); assertThat((Gateway)result.resultValue).isEqualTo(Gateway.builder().nameType(new AddressType("smtp")).name(Text.fromRawText("apache.org")).build()); }
@Test public void dispositionFieldShouldParseWhenManualAutomaticWithDisplayedType() { String disposition = "Disposition: manual-action/MDN-sent-automatically;processed"; Disposition expected = Disposition.builder() .actionMode(DispositionActionMode.Manual) .sendingMode(DispositionSendingMode.Automatic) .type(DispositionType.Processed) .build(); Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.dispositionField()).run(disposition); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(Disposition.class); assertThat((Disposition)result.resultValue).isEqualTo(expected); }
@Test public void originalRecipientFieldShouldParse() { String originalRecipient = "Original-Recipient: rfc822; originalRecipient"; Parser parser = Parboiled.createParser(MDNReportParser.Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(parser.originalRecipientField()).run(originalRecipient); assertThat(result.matched).isTrue(); assertThat(result.resultValue).isInstanceOf(OriginalRecipient.class); assertThat((OriginalRecipient)result.resultValue).isEqualTo(OriginalRecipient.builder().addressType(new AddressType("rfc822")).originalRecipient(Text.fromRawText("originalRecipient")).build()); }