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 setOriginalMessageIdField() { this.<MDNReport.Builder>peekParent().originalMessageIdField(this.<OriginalMessageId>popT()); return true; }
boolean setReportingUaField() { this.<MDNReport.Builder>peekParent().reportingUserAgentField(popT()); return true; }
boolean setDispositionField() { this.<MDNReport.Builder>peekParent().dispositionField(popT()); return true; }
boolean setOriginalRecipientField() { this.<MDNReport.Builder>peekParent().originalRecipientField(this.<OriginalRecipient>popT()); return true; }
boolean setFinalRecipientField() { this.<MDNReport.Builder>peekParent().finalRecipientField(this.<FinalRecipient>popT()); return true; }
boolean addExtensionField() { this.<MDNReport.Builder>peekParent().withExtensionField(this.<ExtensionField>popT()); return true; }
boolean setMdnGatewayField() { this.<MDNReport.Builder>peekParent().gatewayField(popT()); return true; }
boolean addErrorField() { this.<MDNReport.Builder>peekParent().addErrorField(this.<Error>popT()); return true; }
Rule sendingMode() { return FirstOf( Sequence("MDN-sent-manually", ACTION(setSendingMode(DispositionSendingMode.Manual))), Sequence("MDN-sent-automatically", ACTION(setSendingMode(DispositionSendingMode.Automatic)))); }
@SuppressWarnings("unchecked") <T> T peekT() { return (T) peek(); } }