All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jrimum.bopepo.BancosSuportados Maven / Gradle / Ivy

Go to download

This is a fork and merge from JRimum ( http://www.jrimum.org ), - Bopepo: https://github.com/jrimum/bopepo - Texgit: https://github.com/jrimum/texgit - Valia: https://github.com/jrimum/vallia - Utilix: https://github.com/jrimum/utilix - Domkee: https://github.com/jrimum/domkee For Brazillian Boleto Payment Method. So much thanks for original authors: Gilmar P. S. L, Misael Barreto and Rômulo Augusto.

The newest version!
/*
 * Copyright 2008 JRimum Project
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
 * applicable law or agreed to in writing, software distributed under the
 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
 * OF ANY KIND, either express or implied. See the License for the specific
 * language governing permissions and limitations under the License.
 * 
 * Created at: 30/03/2008 - 19:08:39
 * 
 * ================================================================================
 * 
 * Direitos autorais 2008 JRimum Project
 * 
 * Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
 * esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
 * cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
 * haja exigência legal ou acordo por escrito, a distribuição de software sob
 * esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
 * TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
 * reger permissões e limitações sob esta LICENÇA.
 * 
 * Criado em: 30/03/2008 - 19:08:39
 * 
 */
package org.jrimum.bopepo;

import java.util.HashMap;
import java.util.Map;

import org.jrimum.domkee.pessoa.CNPJ;
import org.jrimum.domkee.banco.Banco;
import org.jrimum.domkee.banco.CodigoDeCompensacaoBACEN;

/**
 * 

* Enumeração dos bancos segundo o supervisão da BACEN em * funcionamento no país e que possuem pelo menos uma implementação de * ICampoLivre. *

* *

* A partir de um EnumBanco específico, como o * BANCO_DO_BRASIL, você pode solicitar um nova instância de um * banco representado por IBanco ou utilizar as costantes * enumeradas e não enumeradas como melhor for o caso. *

* *
EXEMPLOS:
* *

* Para uma nova instância do Banco do Brasil faça: * * * IBanco bancoDoBrasil = EnumBancos.BANCO_DO_BRASIL.newInstance(); * *

* *

* Para utilizar somento o código de compensação: * * * EnumBancos.BANCO_DO_BRASIL.getCodigoDeCompensacao(); * *

* *

* Para saber se um banco é suportado pelo componete, veja a lista antes * (LinkParaLista) ou faça: * * * EnumBancos.isSuportado(banco.getCodigoDeCompensacao) * *

* * @author Gilmar P.S.L. * @author Misael Barreto * @author Rômulo Augusto * @author Samuel Valério * @author Lukas * Antunes - Colaborador com o banco Intermedium (077) * @author Fernando Dias - * Colaborador com o banco Rural (453) * @author Paulo Porto - Colaborador com o * Banco do Nordeste do Brasil (004). * @author Fabiano Carrijo - * Colaborador com o Banco Citibank (756). * @author Douglas Ramiro - * Colaborador com o Banco de Brasília (070). * * @see org.jrimum.bopepo.campolivre.CampoLivre * @see org.jrimum.domkee.banco.Banco * * @since 0.2 * * @version 0.2 */ public enum BancosSuportados { /* * <=====================================================================> * Observe que toda a enumeração segue a ORDEM dos códigos de compensação. * Caso queira modificar alguma coisa, leve sempre em consideração essa * ORDEM. * <=====================================================================> */ /** * Tipo enumerado que representa o Banco do Brasil, código * de compensação 001 site. * * @since 0.2 */ BANCO_DO_BRASIL("001", "00000000000191", "BANCO DO BRASIL S.A.", "Banco do Brasil - Banco Múltiplo"), /** * Tipo enumerado que representa o Banco do Nordeste do * Brasil, código de compensação 004 * (site). * * @since 0.2-Helio */ BANCO_DO_NORDESTE_DO_BRASIL("004", "07237373000120", "BANCO DO NORDESTE DO BRASIL S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Banestes, Banco do Estado do * Espírito Santo, código de compensação * 021 * * site. * * @since 0.2 */ BANCO_DO_ESTADO_DO_ESPIRITO_SANTO("021", "28127603000178", "BANCO DO ESTADO DO ESPIRITO SANTO S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Santander Banco Santander * (Brasil) S. A., código de compensação 033 * site. * * @since 0.2 */ BANCO_SANTANDER("033", "90400888000142", "BANCO SANTANDER (BRASIL) S. A.", "Banco Mútiplo"), /** * Tipo enumerado que representa o Banrisul, Banco do Estado do Rio * Grande do Sul, código de compensação * 041 * site. * * @since 0.2 */ BANCO_DO_ESTADO_DO_RIO_GRANDE_DO_SUL("041", "92702067000196", "BANCO DO ESTADO DO RIO GRANDE DO SUL S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Banco BRB - Banco de * Brasília, código de compensação 070 site. * * @since 0.2 */ BANCO_DE_BRASILIA("070", "00000208000100", "BRB- Banco de Brasília S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o BANISA, Banco * Intermedium, código de compensação * 077 * * site. * * @since 0.2 */ BANCO_INTEMEDIUM("077", "00416968000101", "BANCO INTERMEDIUM S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o CECRED, Cooperativa Central de * Crédito Urbano, código de compensação * 085 * site. * * @since 0.2 */ CECRED("085", "05.463.212/0001-29", "COOPERATIVA CENTRAL DE CRÉDITO URBANO - CECRED", "Cooperativa de Crédito"), /** * Tipo enumerado que representa o Banco Caixa Econômica * Federal, código de compensação 104 site. * * @since 0.2 */ CAIXA_ECONOMICA_FEDERAL("104", "00360305000104", "CAIXA ECONOMICA FEDERAL", "Caixa Econômica Federal"), /** * Tipo enumerado que representa o Banco Bradesco, código * de compensação 237 * site. * * @since 0.2 */ BANCO_BRADESCO("237", "60746948000112", "BANCO BRADESCO S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Banco Itaú, código de * compensação 341 * site. * * @since 0.2 */ BANCO_ITAU("341", "60701190000104", "BANCO ITAÚ S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Banco ABN AMRO Real * (http://www.bancoreal.com.br), * código de compensação 356.
*

* Obs: Os bancos Sudameris e Bandepe * foram incorporados ao Banco Real, portanto para gerar boletos bancários * dos bancos citados utilize este tipo enumerado. *

* * @since 0.2 */ BANCO_ABN_AMRO_REAL("356", "33066408000115", "BANCO ABN AMRO REAL S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Banco Mercantil do * Brasil * (http://www.mercantildobrasil.com.br), * código de compensação 389. * * @since 0.2 */ MERCANTIL_DO_BRASIL("389", "17184037000110", "BANCO MERCANTIL DO BRASIL S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o HSBC, código de * compensação 399 site. * * @since 0.2 */ HSBC("399", "01701201000189", "HSBC BANK BRASIL S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Unibanco, código de * compensação 409 site. * * @since 0.2 */ UNIBANCO("409", "33700394000140", "UNIBANCO-UNIAO DE BANCOS BRASILEIROS S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Unibanco, código de * compensação 422 site. * * @since 0.2 */ BANCO_SAFRA("422", "58160789000128", "BANCO SAFRA S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Citibank, código de * compensação 756 site. * * @since 0.2 */ CITIBANK("745", "33479023000180", "BANCO CITIBANK S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Banco Sicredi, código de * compensação 748 site. * * @since 0.2 */ BANCO_SICREDI("748", "01181521000155", "BANCO COOPERATIVO SICREDI S.A.", "Banco Mútiplo Cooperativo"), /** * Tipo enumerado que representa o Banco Rural, código de * compensação 453 site. * * @since 0.2 */ BANCO_RURAL("453", "58160789000128", "BANCO RURAL S.A.", "Banco Múltiplo"), /** * Tipo enumerado que representa o Bancoob, código de * compensação 756 site. * * @since 0.2 */ BANCOOB("756", "02038232000164", "BANCO COOPERATIVO DO BRASIL S.A. - BANCOOB", "Banco Comercial Cooperativo"); /** * Singleton Map para pesquisa por bancos suportados no * componente. * * @since 0.2 */ public static final Map suportados = new HashMap( BancosSuportados.values().length); static { suportados.put(BANCO_DO_BRASIL.codigoDeCompensacaoBACEN, BANCO_DO_BRASIL); suportados.put(BANCO_DO_NORDESTE_DO_BRASIL.codigoDeCompensacaoBACEN, BANCO_DO_NORDESTE_DO_BRASIL); suportados.put(CAIXA_ECONOMICA_FEDERAL.codigoDeCompensacaoBACEN, CAIXA_ECONOMICA_FEDERAL); suportados.put(BANCO_BRADESCO.codigoDeCompensacaoBACEN, BANCO_BRADESCO); suportados.put(BANCO_ABN_AMRO_REAL.codigoDeCompensacaoBACEN, BANCO_ABN_AMRO_REAL); suportados.put(UNIBANCO.codigoDeCompensacaoBACEN, UNIBANCO); suportados.put(HSBC.codigoDeCompensacaoBACEN, HSBC); suportados.put(BANCO_ITAU.codigoDeCompensacaoBACEN, BANCO_ITAU); suportados.put(BANCO_SAFRA.codigoDeCompensacaoBACEN, BANCO_SAFRA); suportados.put(BANCO_DO_ESTADO_DO_RIO_GRANDE_DO_SUL.codigoDeCompensacaoBACEN, BANCO_DO_ESTADO_DO_RIO_GRANDE_DO_SUL); suportados.put(MERCANTIL_DO_BRASIL.codigoDeCompensacaoBACEN, MERCANTIL_DO_BRASIL); suportados.put(BANCO_DO_ESTADO_DO_ESPIRITO_SANTO.codigoDeCompensacaoBACEN, BANCO_DO_ESTADO_DO_ESPIRITO_SANTO); suportados.put(BANCO_RURAL.codigoDeCompensacaoBACEN, BANCO_RURAL); suportados.put(BANCO_SANTANDER.codigoDeCompensacaoBACEN, BANCO_SANTANDER); suportados.put(BANCO_INTEMEDIUM.codigoDeCompensacaoBACEN, BANCO_INTEMEDIUM); suportados.put(BANCO_SICREDI.codigoDeCompensacaoBACEN, BANCO_SICREDI); suportados.put(BANCOOB.codigoDeCompensacaoBACEN, BANCOOB); suportados.put(CITIBANK.codigoDeCompensacaoBACEN, CITIBANK); suportados.put(BANCO_DE_BRASILIA.codigoDeCompensacaoBACEN, BANCO_DE_BRASILIA); suportados.put(CECRED.codigoDeCompensacaoBACEN, CECRED); } /** * Códigos de instituições bancárias na compensação - COMPE BACEN. * * @since 0.2 */ private String codigoDeCompensacaoBACEN; /** * CNPJ registrado na * BACEN. * * @since 0.2 */ private String cNPJ; /** * Nome da instituição registrado na BACEN. * * @since 0.2 */ private String instituicao; /** * Segmento bancário da instituição registrado na BACEN. * * @since 0.2 */ private String segmento; /** *

* Construtor naturalmente private responsável por criar uma * única instância para cada banco. *

* * @param codigoDeCompensacaoBACEN * @param cNPJ * @param instituicao * @param segmento * * @see java.lang.Enum * @see Enum * Guide * * @since 0.2 * */ private BancosSuportados(String codigoDeCompensacaoBACEN, String cnpj, String instituicao, String segmento) { this.codigoDeCompensacaoBACEN = codigoDeCompensacaoBACEN; this.cNPJ = cnpj; this.instituicao = instituicao; this.segmento = segmento; } /** *

* Verifica se exite suporte (implementação) de "Campos Livres" para o banco * representado pelo codigoDeCompensacao. *

* * @param codigoDeCompensacao * @return verdadeiro se existe implementação para o banco em questão. * * @since 0.2 */ public static boolean isSuportado(String codigoDeCompensacao) { return suportados.containsKey(codigoDeCompensacao); } /** *

* Cria uma instância para o banco representado pelo tipo enumerado. *

*

* Cada instância retornada por este método contém: *

    *
  • Código de componsação
  • *
  • Nome da instituição
  • *
  • CNPJ da instituição
  • *
  • Segmento da instituição bancária
  • *
*

* * @return Uma instância do respectivo banco. * * @see * org.jrimum.domkee.financeiro.banco.febraban.Banco#Banco(CodigoDeCompensacaoBACEN, * String, CNPJ, String) * @see Bancos supervisionados * pela BACEN * * @since 0.2 */ public Banco create() { return new Banco(new CodigoDeCompensacaoBACEN(this.codigoDeCompensacaoBACEN), this.instituicao, new CNPJ( this.cNPJ), this.segmento); } /** * @return the codigoDeCompensacaoBACEN * * @since 0.2 */ public String getCodigoDeCompensacao() { return codigoDeCompensacaoBACEN; } /** * @return the cNPJ * * @since 0.2 */ public String getCNPJ() { return cNPJ; } /** * @return the instituicao * * @since 0.2 */ public String getInstituicao() { return instituicao; } /** * @return the segmento * * @since 0.2 */ public String getSegmento() { return segmento; } private static final Map CACHE_INSTANCE = new HashMap<>(); public static Banco instancia(String numero) { Banco banco = CACHE_INSTANCE.get(numero); if (banco == null) { BancosSuportados suportado = suportados.get(numero); if (suportado != null) { banco = suportado.create(); } CACHE_INSTANCE.put(numero, banco); } return banco; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy