Github user ottobackwards commented on a diff in the pull request: https://github.com/apache/metron/pull/1184#discussion_r223837103 --- Diff: metron-platform/metron-parsers/src/main/java/org/apache/metron/parsers/interfaces/MessageParser.java --- @@ -31,23 +35,41 @@ /** * Take raw data and convert it to a list of messages. * - * @param rawMessage + * @param rawMessage the raw bytes of the message * @return If null is returned, this is treated as an empty list. */ List<T> parse(byte[] rawMessage); /** * Take raw data and convert it to an optional list of messages. - * @param parseMessage + * @param parseMessage the raw bytes of the message * @return If null is returned, this is treated as an empty list. */ default Optional<List<T>> parseOptional(byte[] parseMessage) { return Optional.ofNullable(parse(parseMessage)); } + /** + * Take raw data and convert it to messages. Each raw message may produce multiple messages and therefore + * multiple errors. A {@link MessageParserResult} is returned, which will have both the messages produced + * and the errors. + * @param parseMessage the raw bytes of the message + * @return Optional of {@link MessageParserResult} + */ + default Optional<MessageParserResult<T>> parseOptionalResult(byte[] parseMessage) { --- End diff -- Right, the Optional interface is the newer, so I 'built' on that approach.
---