class AttemptAuditEventResultToGrpcAttemptAuditEventResultConverter {

    public AuditProto.AttemptAuditEventResult convert(AttemptAuditEventResult source) {
        AuditProto.AttemptAuditEventResult.Builder builder = builderProvider.getNewAttemptAuditEventResultBuilder()
                .setId(source.getId())
                .setResultCode(source.getResultCode());
        doIfTrue(source.getResultMessage(), StringUtils::isNotEmpty, builder::setResultMessage);
        updateResultEventData(builder, source.getResultEventData());
        return builder.build();
    }

    public  AttemptAuditEventResultToGrpcAttemptAuditEventResultConverter(Map<Class, AttemptAuditEventResultBuilderUpdater> builderUpdaters,
                    AttemptAuditEventResultBuilderProvider builderProvider);

}