Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package br.eti.danielcamargo.backend.common.utils; import br.eti.danielcamargo.backend.common.exceptions.ValidationOccurrence; import br.eti.danielcamargo.backend.common.rest.transfer.Mensagem; import br.eti.danielcamargo.backend.common.rest.transfer.Mensagem.NivelMensagem; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import org.springframework.context.i18n.LocaleContextHolder; /** * * @author Daniel */ public class MessageUtils { private static final Map<String, String> MAPA_RECURSOS = new HashMap<>(); private static final String MENSAGENS_APLICACAO = "ApplicationMessages"; private static String buscarChave(String modulo, String chave) { return buscarChave(modulo, chave, new Serializable[] {}); } private static String buscarChave(String modulo, String chave, Serializable... params) { Locale locale = LocaleContextHolder.getLocale(); if (!MAPA_RECURSOS.containsKey(modulo)) { StringBuilder caminho = new StringBuilder(); caminho.append("i18n.").append(modulo).append(".").append(MENSAGENS_APLICACAO); MAPA_RECURSOS.put(modulo, caminho.toString()); } String caminhoBundle = MAPA_RECURSOS.get(modulo); String valor = ResourceBundleUtils.getFromKeyOnly(locale, caminhoBundle, chave, params); return valor; } public static Mensagem criarMensagemSucesso() { String detalhe = buscarChave("common", "common.successfull-operation"); return new Mensagem(detalhe, NivelMensagem.SUCESSO); } public static Mensagem criarMensagemSucesso(String modulo, String chave, Serializable... params) { String detalhe = buscarChave(modulo, chave, params); return new Mensagem(detalhe, NivelMensagem.SUCESSO, Arrays.asList(params)); } public static Mensagem criarMensagemViolacaoUnicidade(String modulo, String chave) { String detalhe = buscarChave(modulo, chave); return new Mensagem(detalhe, NivelMensagem.ERRO); } public static Mensagem criarMensagemViolacaoChavePrimaria(String modulo, String chave) { String detalhe = buscarChave(modulo, chave); return new Mensagem(detalhe, NivelMensagem.ERRO); } public static Mensagem criarMensagemViolacaoChaveEstrangeira(String modulo, String chave) { String detalhe = buscarChave(modulo, chave); return new Mensagem(detalhe, NivelMensagem.ERRO); } public static Mensagem criarMensagemErro(String modulo, ValidationOccurrence occurrence) { String param1 = occurrence.getMessageKey(); String msg = buscarChave(modulo, param1, occurrence.getParams()); Serializable[] params = occurrence.getParams(); List<Serializable> list = new ArrayList<>(); if (params != null) { list.addAll(Arrays.asList(params)); } return new Mensagem(msg, NivelMensagem.ERRO, list); } public static Mensagem criarMensagemErroValidacao(String modulo, ValidationOccurrence occurrence) { String param1 = occurrence.getMessageKey(); String campo = buscarChave(modulo, param1, occurrence.getParams()); String detalhe = buscarChave(modulo, "common.validation-error", param1, campo); Serializable[] params = occurrence.getParams(); List<Serializable> list = new ArrayList<>(); if (params != null) { list.addAll(Arrays.asList(params)); } return new Mensagem(detalhe, NivelMensagem.ERRO, list); } }