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

org.jrimum.bopepo.Boleto 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 - 18:04:06
 * 
 * ================================================================================
 * 
 * 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 - 18:04:06
 * 
 */
package org.jrimum.bopepo;

import static org.jrimum.utilix.Objects.isNotNull;
import static org.jrimum.utilix.Objects.isNull;
import static org.jrimum.utilix.DateFormat.DDMMYYYY_B;

import java.awt.Image;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;
import org.jrimum.bopepo.campolivre.CampoLivre;
import org.jrimum.bopepo.campolivre.CampoLivreFactory;
import org.jrimum.bopepo.campolivre.NotSupportedBancoException;
import org.jrimum.bopepo.campolivre.NotSupportedCampoLivreException;
import org.jrimum.bopepo.view.BoletoCampo;
import org.jrimum.domkee.banco.Titulo;
import org.jrimum.utilix.Exceptions;
import org.jrimum.utilix.Objects;

/**
 * 

* É a representação do documento Boleto que por sua vez, representa títulos em * cobrança. *

* *

* A classe encapsula os atributos integrantes e as funcionalidades inerentes à * construção de tal documento. *

* * * @author Gilmar P.S.L * @author Misael Barreto * @author Rômulo Augusto * @author Nordeste Fomento * Mercantil * @author Samuel Valério * * @since 0.2 * * @version 0.2 */ public class Boleto { protected static Logger log = Logger.getLogger(Boleto.class); /** * @see Titulo */ protected Titulo titulo; /** * @see #setDataDeProcessamento(Date) */ protected Date dataDeProcessamento; /** * @see CodigoDeBarras */ protected CodigoDeBarras codigoDeBarras; /** * @see LinhaDigitavel */ protected LinhaDigitavel linhaDigitavel; /** * @see CampoLivre */ protected CampoLivre campoLivre; /** * @see #setLocalPagamento(String) */ protected String localPagamento; /** * @see #setInstrucaoAoSacado(String) */ protected String instrucaoAoSacado; protected String instrucao1; protected String instrucao2; protected String instrucao3; protected String instrucao4; protected String instrucao5; protected String instrucao6; protected String instrucao7; protected String instrucao8; /** * @see #setTextosExtras(Map) */ protected Map textosExtras; /** *

* Map com nome do campo e imagem para este campo. *

*/ protected Map imagensExtras; /** * Apenas cria um instâcia do boleto com os dados nulos. */ public Boleto() { super(); } /** * Cria um boleto pronto para ser gerado. * * @param titulo * @throws NotSupportedBancoException * @throws NotSupportedCampoLivreException */ public Boleto(Titulo titulo) throws IllegalArgumentException, NotSupportedBancoException, NotSupportedCampoLivreException { processFromTitulo(titulo); } protected void processFromTitulo(Titulo titulo1) throws NotSupportedCampoLivreException, NotSupportedBancoException { if (log.isTraceEnabled()) { log.trace("Instanciando boleto"); } if (log.isDebugEnabled()) { log.debug("titulo instance : " + titulo1); } if (isNotNull(titulo1)) { this.setTitulo(titulo1); this.setCampoLivre(CampoLivreFactory.create(titulo1)); this.load(); if (log.isDebugEnabled()) { log.debug("boleto instance : " + this); } } else { if (log.isDebugEnabled()) { log.debug("Título Nulo - Valor Não Permitido!"); } Exceptions.throwIllegalArgumentException("Título nulo!"); } if (log.isDebugEnabled() || log.isTraceEnabled()) { log.trace("Boleto Instanciado : " + this); } } /** * @param titulo * @param campoLivre */ public Boleto(Titulo titulo, CampoLivre campoLivre) { super(); if (log.isTraceEnabled()) { log.trace("Instanciando boleto"); } if (log.isDebugEnabled()) { log.debug("titulo instance : " + titulo); } if (log.isDebugEnabled()) { log.debug("campoLivre instance : " + campoLivre); } if (isNotNull(titulo)) { this.setTitulo(titulo); this.setCampoLivre(campoLivre); this.load(); if (log.isDebugEnabled()) { log.debug("boleto instance : " + this); } } else { IllegalArgumentException e = new IllegalArgumentException("Título nulo!"); log.error("Valor Não Permitido!", e); throw e; } if (log.isDebugEnabled() || log.isTraceEnabled()) { log.trace("Boleto Instanciado : " + this); } } protected void load() { codigoDeBarras = new CodigoDeBarras(titulo, campoLivre); linhaDigitavel = new LinhaDigitavel(codigoDeBarras); dataDeProcessamento = new Date(); if (log.isInfoEnabled()) { log.info("Data de Processamento do Boleto : " + DDMMYYYY_B.format(dataDeProcessamento)); } } /** * @return O campoLivre da isntância. */ public CampoLivre getCampoLivre() { return campoLivre; } /** * @param campoLivre the campoLivre to set */ private void setCampoLivre(CampoLivre campoLivre) { Objects.checkNotNull(campoLivre); int length = campoLivre.write().length(); if (length == CampoLivre.STRING_LENGTH) { this.campoLivre = campoLivre; } else { if (length > CampoLivre.STRING_LENGTH) { Exceptions.throwIllegalArgumentException("O tamanho da String [" + length + "] é maior que o especificado [" + CampoLivre.STRING_LENGTH + "]!"); } else { Exceptions.throwIllegalArgumentException("O tamanho da String [" + length + "] é menor que o especificado [" + CampoLivre.STRING_LENGTH + "]!"); } } } /** * @return the titulo */ public Titulo getTitulo() { return titulo; } /** * @param titulo the titulo to set */ public void setTitulo(Titulo titulo) { this.titulo = titulo; } /** * @see #getDataDeProcessamento() * * @return the dataDeProcessamento */ public Date getDataDeProcessamento() { return dataDeProcessamento; } /** *

* Data de emissão do boleto de cobrança. *

* * @param dataDeProcessamento the dataDeProcessamento to set */ public void setDataDeProcessamento(Date dataDeProcessamento) { this.dataDeProcessamento = dataDeProcessamento; } /** * @return the codigoDeBarras */ public CodigoDeBarras getCodigoDeBarras() { return codigoDeBarras; } /** * @param codigoDeBarras the codigoDeBarras to set */ public void setCodigoDeBarras(CodigoDeBarras codigoDeBarras) { this.codigoDeBarras = codigoDeBarras; } /** * @return the linhaDigitavel */ public LinhaDigitavel getLinhaDigitavel() { return linhaDigitavel; } /** * @param linhaDigitavel the linhaDigitavel to set */ public void setLinhaDigitavel(LinhaDigitavel linhaDigitavel) { this.linhaDigitavel = linhaDigitavel; } /** * @see #setLocalPagamento(String) * * @return String local de pagamento */ public String getLocalPagamento() { return localPagamento; } /** *

* Possíveis locais para pagamento. *

*

* Exemplo: Pagável preferencialmente na Rede X ou em qualquer Banco até * o Vencimento. *

* * @param localPagamento1 the localPagamento1 to set */ public void setLocalPagamento(String localPagamento1) { this.localPagamento = localPagamento1; } /** * @see #setInstrucaoAoSacado(String) * * @return the instrucaoAoSacado */ public String getInstrucaoAoSacado() { return instrucaoAoSacado; } /** *

* Instrução adicional ao sacado, para visualizar o conceito de negócio de * sacado consultar o * glossário. *

* * @param insturcaoAoSacado the insturcaoAoSacado to set */ public void setInstrucaoAoSacado(String insturcaoAoSacado) { this.instrucaoAoSacado = insturcaoAoSacado; } /** * @return the instrucao1 */ public String getInstrucao1() { return instrucao1; } /** * @param instrucao1 the instrucao1 to set */ public void setInstrucao1(String instrucao1) { this.instrucao1 = instrucao1; } /** * @return the instrucao2 */ public String getInstrucao2() { return instrucao2; } /** * @param instrucao2 the instrucao2 to set */ public void setInstrucao2(String instrucao2) { this.instrucao2 = instrucao2; } /** * @return the instrucao3 */ public String getInstrucao3() { return instrucao3; } /** * @param instrucao3 the instrucao3 to set */ public void setInstrucao3(String instrucao3) { this.instrucao3 = instrucao3; } /** * @return the instrucao4 */ public String getInstrucao4() { return instrucao4; } /** * @param instrucao4 the instrucao4 to set */ public void setInstrucao4(String instrucao4) { this.instrucao4 = instrucao4; } /** * @return the instrucao5 */ public String getInstrucao5() { return instrucao5; } /** * @param instrucao5 the instrucao5 to set */ public void setInstrucao5(String instrucao5) { this.instrucao5 = instrucao5; } /** * @return the instrucao6 */ public String getInstrucao6() { return instrucao6; } /** * @param instrucao6 the instrucao6 to set */ public void setInstrucao6(String instrucao6) { this.instrucao6 = instrucao6; } /** * @return the instrucao7 */ public String getInstrucao7() { return instrucao7; } /** * @param instrucao7 the instrucao7 to set */ public void setInstrucao7(String instrucao7) { this.instrucao7 = instrucao7; } /** * @return the instrucao8 */ public String getInstrucao8() { return instrucao8; } /** * @param instrucao8 the instrucao8 to set */ public void setInstrucao8(String instrucao8) { this.instrucao8 = instrucao8; } /** * Sobrescreve um campo padrão do boleto. * * @param campo Nome do campo no template * @param conteudo Texto a ser adicionado ao campo no template */ public void sobrescrevaCampo(BoletoCampo campo, String conteudo) { addTextosExtras(campo.name(), conteudo); } /** * @return Todas os campos de texto usados como extra ou sobrescrita no * template. */ public Map getTextosExtras() { return this.textosExtras; } /** * Substitui todos os campos extra da instância caso exista. * * @param textosExtras Campos atribuídos */ public void setTextosExtras(Map textosExtras) { this.textosExtras = textosExtras; } /** * Adiciona um campo de texto no boleto caso o campo informado tenha o mesmo * nome no template da instância. * * @param campo Nome do campo no template * @param conteudo Texto a ser adicionado ao campo no template */ public void addTextosExtras(String campo, String conteudo) { if (isNull(getTextosExtras())) { setTextosExtras(new HashMap()); } getTextosExtras().put(campo, conteudo); } /** * @return Todas os campos de imagem usados como extra ou sobrescrita no * template. */ public Map getImagensExtras() { return this.imagensExtras; } /** * Substitui todos os campos extra da instância caso exista. * * @param imagensExtras Campos atribuídos */ public void setImagensExtras(Map imagensExtras) { this.imagensExtras = imagensExtras; } /** * Adiciona um campo de imagem no boleto caso o campo informado tenha o * mesmo nome no template da instância. * * @param campo Nome do campo no template * @param conteudo Imagem a ser adicionada ao campo no template */ public void addImagensExtras(String campo, Image conteudo) { if (isNull(getImagensExtras())) { setImagensExtras(new HashMap()); } getImagensExtras().put(campo, conteudo); } @Override public String toString() { return Objects.toString(this); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy