Rule dispositionField() { return Sequence( push(Disposition.builder()), "Disposition", ":", ows(), dispositionMode(), ows(), ";", ows(), dispositionType(), Optional( Sequence( ows(), "/", ows(), dispositionModifier(), ACTION(addDispositionModifier()), ZeroOrMore( Sequence( ows(), ",", dispositionModifier(), ACTION(addDispositionModifier()))))), ows(), ACTION(buildDispositionField())); }
Rule originalMessageIdField() { return Sequence("Original-Message-ID", ":", msgId(), push(new OriginalMessageId(match()))); }
boolean buildExtension() { push(this.<ExtensionField.Builder>popT().build()); return true; }
boolean buildOriginalRecipient() { push(this.<OriginalRecipient.Builder>popT().build()); return true; }
boolean buildGateway() { push(this.<Gateway.Builder>popT().build()); return true; }
boolean buildDispositionField() { push(this.<Disposition.Builder>popT().build()); return true; }
boolean buildReportingUserAgent() { push(this.<ReportingUserAgent.Builder>popT().build()); return true; }
Rule dispositionNotificationContent() { return Sequence( push(MDNReport.builder()), Optional(Sequence(reportingUaField(), ACTION(setReportingUaField()), crlf())), Optional(Sequence(mdnGatewayField(), ACTION(setMdnGatewayField()), crlf())), Optional(Sequence(originalRecipientField(), ACTION(setOriginalRecipientField()), crlf())), Sequence(finalRecipientField(), ACTION(setFinalRecipientField()), crlf()), Optional(Sequence(originalMessageIdField(), ACTION(setOriginalMessageIdField()), crlf())), Sequence(dispositionField(), ACTION(setDispositionField()), crlf()), ZeroOrMore(Sequence(errorField(), ACTION(addErrorField()), crlf())), ZeroOrMore(Sequence(extentionField(), ACTION(addExtensionField()), crlf())), ACTION(buildMDNReport())); }
boolean buildFinalRecipient() { push(this.<FinalRecipient.Builder>popT().build()); return true; }
Rule finalRecipientField() { return Sequence( push(FinalRecipient.builder()), "Final-Recipient", ":", ows(), addressType(), ACTION(setFinalAddressType()), ows(), ";", ows(), genericAddress(), ACTION(setFinalGenericAddress()), ows(), ACTION(buildFinalRecipient())); }
Rule originalRecipientField() { return Sequence( push(OriginalRecipient.builder()), "Original-Recipient", ":", ows(), addressType(), ACTION(setOriginalAddressType()), ows(), ";", ows(), genericAddress(), ACTION(setOriginalGenericAddress()), ows(), ACTION(buildOriginalRecipient())); }
Rule extentionField() { return Sequence( push(ExtensionField.builder()), extensionFieldName(), ACTION(setExtensionFieldName()), ":", ZeroOrMore(Sequence(Optional(fws()), text())), ACTION(setExtensionText()), ACTION(buildExtension())); }
Rule mdnGatewayField() { return Sequence( push(Gateway.builder()), "MDN-Gateway", ":", ows(), mtaNameType(), ACTION(setMtaNameType()), ows(), ";", ows(), mtaName(), ACTION(setMtaName()), ACTION(buildGateway())); }
Rule errorField() { return Sequence( "Error", ":", ZeroOrMore(Sequence(Optional(fws()), text())), push(new Error(Text.fromRawText(match())))); }
Rule reportingUaField() { return Sequence( push(ReportingUserAgent.builder()), "Reporting-UA", ":", ows(), uaName(), ACTION(setUserAgentName()), ows(), Optional(Sequence(";", ows(), uaProduct(), ACTION(setUserAgentProduct()), ows())), ACTION(buildReportingUserAgent()) ); }
boolean buildMDNReport() { push(this.<MDNReport.Builder>popT().build()); return true; }