class AuditInfoExtractor {

    static Map<String, String> extract(Message message) {
        Map<String, String> auditInfo = new HashMap<String, String>();
        try {
            handleInMessage(auditInfo, message.getExchange().getInMessage());
            handleOutSuccessMessage(auditInfo, message.getExchange().getOutMessage());
            handleOutFaultMessage(auditInfo, message.getExchange().getOutFaultMessage());
            handleTime(auditInfo, message.getExchange().get(AuditInfo.START_TIME.getKey()));
        } catch (Exception exception) {
            LogUtils.error(LOGGER, exception, "Error obtaining auditing information.");
        }
        return auditInfo;
    }

    private  AuditInfoExtractor();

}