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

org.jrimum.bopepo.Guia 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 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.domkee.banco.Arrecadacao;
import org.jrimum.domkee.banco.TipoSeguimento;
import org.jrimum.utilix.DateUtil;
import org.jrimum.utilix.Objects;
import static org.jrimum.utilix.Objects.isNotNull;
import static org.jrimum.utilix.Objects.isNull;

/**
 * 

* É a representação do documento Guia que por sua vez, representa um meio para * a arrecadação de fundos. *

* *

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

* * @author Misael Barreto * * @since 0.3 * * @version 0.3 */ public final class Guia { private static final long serialVersionUID = 4436063640418293021L; private static Logger log = Logger.getLogger(Guia.class); /** * @see Arrecadacao */ private Arrecadacao arrecadacao; /** * @see #setDataDeProcessamento(Date) */ private Date dataDeProcessamento; /** * @see CodigoDeBarras */ private CodigoDeBarras codigoDeBarras; /** * @see LinhaDigitavel */ private LinhaDigitavel linhaDigitavel; /** * @see CampoLivre */ private CampoLivre campoLivre; /** * @see #setLocalPagamento(String) */ private String localPagamento; /** * @see #setInstrucaoAoSacado(String) */ private String instrucaoAoSacado; private String instrucaoAoCaixa1; private String instrucaoAoCaixa2; private String instrucaoAoCaixa3; private String instrucaoAoCaixa4; private String instrucaoAoCaixa5; private String instrucaoAoCaixa6; private String instrucaoAoCaixa7; private String instrucaoAoCaixa8; /** * @see #setTextosExtras(Map) */ private Map textosExtras; /** *

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

*/ private Map imagensExtras; /** * Apenas cria um instâcia de guia com os dados nulos. */ public Guia() { super(); } /** * Cria uma guia pronto para ser gerada. * * @param arrecadacao * @throws NotSupportedBancoException * @throws NotSupportedCampoLivreException */ public Guia(Arrecadacao arrecadacao) throws IllegalArgumentException, NotSupportedBancoException, NotSupportedCampoLivreException { super(); try { Objects.checkNotNull(arrecadacao); Objects.checkNotNull(arrecadacao.getOrgaoRecebedor()); Objects.checkNotNull(arrecadacao.getOrgaoRecebedor().getTipoSeguimento()); } catch (Exception e) { throw new IllegalArgumentException(e); } if (isNull(arrecadacao.getConvenio()) || isNull(arrecadacao.getConvenio().getBanco())) { throw new IllegalArgumentException("Como não há um banco especificado através do convênio, a informação do CAMPO LIVRE terá de ser informado manualmente."); } if (log.isTraceEnabled()) { log.trace("Instanciando guia... "); } if (log.isDebugEnabled()) { log.debug("Arrecadacao instance : " + arrecadacao); } if (log.isDebugEnabled()) { log.debug("CampoLivre instance : " + campoLivre); } this.setArrecadacao(arrecadacao); // this.setCampoLivre(CampoLivreFactory.create(arrecadacao), arrecadacao.getOrgaoRecebedor().getTipoSeguimento()); this.load(); if (log.isDebugEnabled() || log.isTraceEnabled()) { log.trace("Guia instanciada : " + this); } if (log.isTraceEnabled()) { log.trace("Instanciando uma guia..."); } if (log.isDebugEnabled()) { log.debug("Arrecadaca instance : " + arrecadacao); } if (isNotNull(arrecadacao)) { this.setArrecadacao(arrecadacao); // this.setCampoLivre(CampoLivreFactory.create(arrecadacao), arrecadacao.getOrgaoRecebedor().getTipoSeguimento()); this.load(); if (log.isDebugEnabled()) { log.debug("Guia instance : " + this); } } else { IllegalArgumentException e = new IllegalArgumentException("Guia nula!"); log.error("Valor não permitido!", e); throw e; } if (log.isDebugEnabled() || log.isTraceEnabled()) { log.trace("Guia Instanciado : " + this); } } /** * @param arrecadacao * @param campoLivre */ public Guia(Arrecadacao arrecadacao, CampoLivre campoLivre) { super(); try { Objects.checkNotNull(arrecadacao); Objects.checkNotNull(arrecadacao.getOrgaoRecebedor()); Objects.checkNotNull(arrecadacao.getOrgaoRecebedor().getTipoSeguimento()); Objects.checkNotNull(campoLivre); } catch (Exception e) { throw new IllegalArgumentException(e); } if (log.isTraceEnabled()) { log.trace("Instanciando guia... "); } if (log.isDebugEnabled()) { log.debug("Arrecadacao instance : " + arrecadacao); } if (log.isDebugEnabled()) { log.debug("CampoLivre instance : " + campoLivre); } this.setArrecadacao(arrecadacao); this.setCampoLivre(campoLivre, arrecadacao.getOrgaoRecebedor().getTipoSeguimento()); this.load(); if (log.isDebugEnabled() || log.isTraceEnabled()) { log.trace("Guia instanciada : " + this); } } private void load() { // codigoDeBarras = new CodigoDeBarras(arrecadacao, campoLivre); linhaDigitavel = new LinhaDigitavel(codigoDeBarras); dataDeProcessamento = new Date(); log.info("Data de Processamento da Guia: " + DateUtil.FORMAT_DD_MM_YYYY.format(dataDeProcessamento)); } /** * @return the campoLivre */ public CampoLivre getCampoLivre() { return campoLivre; } /** *

* Camç *

* * @param campoLivre the campoLivre to set */ public void setCampoLivre(CampoLivre campoLivre, TipoSeguimento tipoSeguimento) { Objects.checkNotNull(campoLivre); Objects.checkNotNull(tipoSeguimento); // CampoLivreUtil.validar(campoLivre, tipoSeguimento); this.campoLivre = campoLivre; } /** * @return Arrecadacao */ public Arrecadacao getArrecadacao() { return arrecadacao; } /** * @param arrecadacao */ public void setArrecadacao(Arrecadacao arrecadacao) { this.arrecadacao = arrecadacao; } /** * @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; } /** * @return the instrucaoAoCaixa1 */ public String getInstrucaoAoCaixa1() { return instrucaoAoCaixa1; } /** * @return the instrucaoAoCaixa2 */ public String getInstrucaoAoCaixa2() { return instrucaoAoCaixa2; } /** * @return the instrucaoAoCaixa3 */ public String getInstrucaoAoCaixa3() { return instrucaoAoCaixa3; } /** * @return the instrucaoAoCaixa4 */ public String getInstrucaoAoCaixa4() { return instrucaoAoCaixa4; } /** * @return the instrucaoAoCaixa5 */ public String getInstrucaoAoCaixa5() { return instrucaoAoCaixa5; } /** * @return the instrucaoAoCaixa6 */ public String getInstrucaoAoCaixa6() { return instrucaoAoCaixa6; } /** * @return the instrucaoAoCaixa7 */ public String getInstrucaoAoCaixa7() { return instrucaoAoCaixa7; } /** * @return the instrucaoAoCaixa8 */ public String getInstrucaoAoCaixa8() { return instrucaoAoCaixa8; } /** * @param instrucaoAoCaixa1 the instrucaoAoCaixa1 to set */ public void setInstrucaoAoCaixa1(String instrucaoAoCaixa1) { this.instrucaoAoCaixa1 = instrucaoAoCaixa1; } /** * @param instrucaoAoCaixa2 the instrucaoAoCaixa2 to set */ public void setInstrucaoAoCaixa2(String instrucaoAoCaixa2) { this.instrucaoAoCaixa2 = instrucaoAoCaixa2; } /** * @param instrucaoAoCaixa3 the instrucaoAoCaixa3 to set */ public void setInstrucaoAoCaixa3(String instrucaoAoCaixa3) { this.instrucaoAoCaixa3 = instrucaoAoCaixa3; } /** * @param instrucaoAoCaixa4 the instrucaoAoCaixa4 to set */ public void setInstrucaoAoCaixa4(String instrucaoAoCaixa4) { this.instrucaoAoCaixa4 = instrucaoAoCaixa4; } /** * @param instrucaoAoCaixa5 the instrucaoAoCaixa5 to set */ public void setInstrucaoAoCaixa5(String instrucaoAoCaixa5) { this.instrucaoAoCaixa5 = instrucaoAoCaixa5; } /** * @param instrucaoAoCaixa6 the instrucaoAoCaixa6 to set */ public void setInstrucaoAoCaixa6(String instrucaoAoCaixa6) { this.instrucaoAoCaixa6 = instrucaoAoCaixa6; } /** * @param instrucaoAoCaixa7 the instrucaoAoCaixa7 to set */ public void setInstrucaoAoCaixa7(String instrucaoAoCaixa7) { this.instrucaoAoCaixa7 = instrucaoAoCaixa7; } /** * @param instrucaoAoCaixa8 the instrucaoAoCaixa8 to set */ public void setInstrucaoAoCaixa8(String instrucaoAoCaixa8) { this.instrucaoAoCaixa8 = instrucaoAoCaixa8; } /** *

* 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; } public Map getTextosExtras() { return this.textosExtras; } public void setTextosExtras(Map textosExtras) { this.textosExtras = textosExtras; } public void addTextosExtras(String nome, String valor) { if (isNull(getTextosExtras())) { setTextosExtras(new HashMap()); } getTextosExtras().put(nome, valor); } public Map getImagensExtras() { return this.imagensExtras; } public void setImagensExtras(Map imagensExtras) { this.imagensExtras = imagensExtras; } public void addImagensExtras(String fieldName, Image image) { if (isNull(getImagensExtras())) { setImagensExtras(new HashMap()); } getImagensExtras().put(fieldName, image); } @Override public String toString() { return Objects.toString(this); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy