Skip to content

Commit

Permalink
adiciona javadocs nos metodos publicos
Browse files Browse the repository at this point in the history
  • Loading branch information
Douglas Campos authored and elo7-developer committed Jun 8, 2017
1 parent 94f577b commit 41b21c3
Show file tree
Hide file tree
Showing 9 changed files with 209 additions and 1 deletion.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=0.0.16-BETA
version=0.0.17-BETA
6 changes: 6 additions & 0 deletions src/main/java/br/com/correios/Cep.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

import java.util.regex.Pattern;

/**
* Classe que representa o <b>CEP</b><br>
* Sua formatacao deve ser de apenas 8 numeros. Ex: 99999999
*
* @since 0.0.17-BETA
*/
public class Cep {

private final String value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@
import br.com.correios.estimativa.EstimativaComPrecoEPrazo;
import br.com.correios.webservice.estimativa.CalcPrecoPrazoWS;

/**
* Responsavel por chamar a API de estimativa do Correios para calcular
* precos e prazos
*
* @since 0.0.17-BETA
*/
public class CorreiosEstimativaAPI {

private CorreiosServicoEstimativaAPI correiosServicoEstimativaAPI;
Expand All @@ -19,10 +25,16 @@ public CorreiosEstimativaAPI(CorreiosCredenciais correiosCredenciais) {
this.correiosServicoEstimativaAPI = new SoapCorreiosServicoEstimativaAPI(new CalcPrecoPrazoWS(), correiosCredenciais, precoEPrazoConverter, prazoConverter);
}

/**
* @return Um builder para montar a requisicao para calcular preco e prazo
*/
public RequisicaoEstimativaDePrecoEPrazoBuilder estimaPrecoEPrazo() {
return new RequisicaoEstimativaDePrecoEPrazoBuilder(correiosServicoEstimativaAPI);
}

/**
* @return Um builder para montar a requisicao para calcular somente prazo
*/
public RequisicaoEstimativaDePrazoBuilder estimaPrazo() {
return new RequisicaoEstimativaDePrazoBuilder(correiosServicoEstimativaAPI);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,20 @@
import br.com.correios.estimativa.EstimativaComPrazo;
import br.com.correios.estimativa.EstimativaComPrecoEPrazo;

/**
* Servico responsavel por acessar o servico do Correios
*
* @since 0.0.17-BETA
*/
public interface CorreiosServicoEstimativaAPI {

/**
* @return estimativas com preco e prazo
*/
List<EstimativaComPrecoEPrazo> calculaPrecoEPrazo(Set<String> codigosServico, Cep cepOrigem, Cep cepDestino, DimensoesPacoteEstimado dimensoesPacoteEstimado, BigDecimal valorDeclarado, boolean adicionaServicoMaoPropria, boolean adicionaServicoAvisoRecebimento);

/**
* @return estimativas somente com prazo
*/
List<EstimativaComPrazo> calculaPrazo(Set<String> codigosServico, Cep cepOrigem, Cep cepDestino);
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
import br.com.correios.Cep;
import br.com.correios.estimativa.EstimativaComPrazo;

/**
* Builder para construir a requisicao para estimativa de prazo.
*
* @since 0.0.17-BETA
*/
public class RequisicaoEstimativaDePrazoBuilder {

private CorreiosServicoEstimativaAPI correiosServicoEstimativaAPI;
Expand All @@ -19,6 +24,9 @@ public class RequisicaoEstimativaDePrazoBuilder {
this.correiosServicoEstimativaAPI = correiosServicoEstimativaAPI;
}

/**
* Informa o CEP de origem
*/
public RequisicaoEstimativaDePrazoComCepOrigem de(Cep cepOrigem) {
this.cepOrigem = cepOrigem;
return new RequisicaoEstimativaDePrazoComCepOrigem(this);
Expand All @@ -32,6 +40,9 @@ private RequisicaoEstimativaDePrazoComCepOrigem(RequisicaoEstimativaDePrazoBuild
this.requisicaoEstimativaDePrazoBuilder = requisicaoEstimativaDePrazoBuilder;
}

/**
* Informa o CEP de destino
*/
public RequisicaoEstimativaDePrazoComCepDestino para(Cep cepDestino) {
requisicaoEstimativaDePrazoBuilder.cepDestino = cepDestino;
return new RequisicaoEstimativaDePrazoComCepDestino(requisicaoEstimativaDePrazoBuilder);
Expand All @@ -46,6 +57,9 @@ private RequisicaoEstimativaDePrazoComCepDestino(RequisicaoEstimativaDePrazoBuil
this.requisicaoEstimativaDePrazoBuilder = requisicaoEstimativaDePrazoBuilder;
}

/**
* Informa os codigos dos servicos que serao calculados
*/
public RequisicaoEstimativaDePrazoComServico comServicos(String...codigosServico) {
requisicaoEstimativaDePrazoBuilder.codigosServico = Sets.newHashSet(codigosServico);
return new RequisicaoEstimativaDePrazoComServico();
Expand All @@ -54,6 +68,9 @@ public RequisicaoEstimativaDePrazoComServico comServicos(String...codigosServico

public class RequisicaoEstimativaDePrazoComServico {

/**
* @return as estimativas calculadas somente com prazo
*/
public List<EstimativaComPrazo> calcula() {
return correiosServicoEstimativaAPI.calculaPrazo(codigosServico, cepOrigem, cepDestino);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
import br.com.correios.estimativa.DimensoesPacoteEstimado;
import br.com.correios.estimativa.EstimativaComPrecoEPrazo;

/**
* Builder para construir a requisicao para estimativa de preco e prazo.
*
* @since 0.0.17-BETA
*/
public class RequisicaoEstimativaDePrecoEPrazoBuilder {

private CorreiosServicoEstimativaAPI correiosServicoEstimativaAPI;
Expand All @@ -27,6 +32,9 @@ public class RequisicaoEstimativaDePrecoEPrazoBuilder {
this.adicionaServicoAvisoRecebimento = false;
}

/**
* Informa o CEP de origem
*/
public RequisicaoEstimativaDePrecoEPrazoComCepOrigem de(Cep cepOrigem) {
this.cepOrigem = cepOrigem;
return new RequisicaoEstimativaDePrecoEPrazoComCepOrigem(this);
Expand All @@ -40,6 +48,9 @@ private RequisicaoEstimativaDePrecoEPrazoComCepOrigem(RequisicaoEstimativaDePrec
this.requisicaoEstimativaDePrecoEPrazoBuilder = requisicaoEstimativaDePrecoEPrazoBuilder;
}

/**
* Informa o CEP de destino
*/
public RequisicaoEstimativaDePrecoEPrazoComCepDestino para(Cep cepDestino) {
requisicaoEstimativaDePrecoEPrazoBuilder.cepDestino = cepDestino;
return new RequisicaoEstimativaDePrecoEPrazoComCepDestino(requisicaoEstimativaDePrecoEPrazoBuilder);
Expand All @@ -54,6 +65,9 @@ private RequisicaoEstimativaDePrecoEPrazoComCepDestino(RequisicaoEstimativaDePre
this.requisicaoEstimativaDePrecoEPrazoBuilder = requisicaoEstimativaDePrecoEPrazoBuilder;
}

/**
* Informa os codigos dos servicos que serao calculados
*/
public RequisicaoEstimativaDePrecoEPrazoComServico comServicos(String...codigosServico) {
requisicaoEstimativaDePrecoEPrazoBuilder.codigosServico = Sets.newHashSet(codigosServico);
return new RequisicaoEstimativaDePrecoEPrazoComServico(requisicaoEstimativaDePrecoEPrazoBuilder);
Expand All @@ -68,6 +82,9 @@ private RequisicaoEstimativaDePrecoEPrazoComServico(RequisicaoEstimativaDePrecoE
this.requisicaoEstimativaDePrecoEPrazoBuilder = requisicaoEstimativaDePrecoEPrazoBuilder;
}

/**
* Informa as dimensoes do pacote a ser estimado
*/
public RequisicaoEstimativaDePrecoEPrazoComDimensoesDoPacote comDimensoesDePacote(DimensoesPacoteEstimado dimensoesPacoteEstimado) {
requisicaoEstimativaDePrecoEPrazoBuilder.dimensoesPacoteEstimado = dimensoesPacoteEstimado;
return new RequisicaoEstimativaDePrecoEPrazoComDimensoesDoPacote(requisicaoEstimativaDePrecoEPrazoBuilder);
Expand All @@ -83,6 +100,10 @@ private RequisicaoEstimativaDePrecoEPrazoComDimensoesDoPacote(RequisicaoEstimati
this.requisicaoEstimativaDePrecoEPrazoBuilder = requisicaoEstimativaDePrecoEPrazoBuilder;
}

/**
* Informa o valor declarado do objeto que fara parte da encomenda.
* Esse valor interfere no calculo porque serve como base do calculo do seguro da encomenda
*/
public RequisicaoEstimativaDePrecoEPrazoComValorDeclarado comValorDeclarado(BigDecimal valorDeclarado) {
requisicaoEstimativaDePrecoEPrazoBuilder.valorDeclarado = valorDeclarado;
return new RequisicaoEstimativaDePrecoEPrazoComValorDeclarado(requisicaoEstimativaDePrecoEPrazoBuilder);
Expand All @@ -97,16 +118,25 @@ private RequisicaoEstimativaDePrecoEPrazoComValorDeclarado(RequisicaoEstimativaD
this.requisicaoEstimativaDePrecoEPrazoBuilder = requisicaoEstimativaDePrecoEPrazoBuilder;
}

/**
* Indica se a encomenda sera entregue com o servico adicional mao propria.
*/
public RequisicaoEstimativaDePrecoEPrazoComServicoMaoPropria adicionandoServicoMaoPropria() {
requisicaoEstimativaDePrecoEPrazoBuilder.adicionaServicoMaoPropria = true;
return new RequisicaoEstimativaDePrecoEPrazoComServicoMaoPropria(requisicaoEstimativaDePrecoEPrazoBuilder);
}

/**
* Indica se a encomenda sera entregue com o servico adicional aviso de recebimento.
*/
public RequisicaoEstimativaDePrecoEPrazoComServicoAvisoDeRecebimento adicionandoServicoAvisoDeRecebimento() {
requisicaoEstimativaDePrecoEPrazoBuilder.adicionaServicoAvisoRecebimento = true;
return new RequisicaoEstimativaDePrecoEPrazoComServicoAvisoDeRecebimento();
}

/**
* @return as estimativas calculadas com preco e prazo
*/
public List<EstimativaComPrecoEPrazo> calcula() {
return correiosServicoEstimativaAPI.calculaPrecoEPrazo(codigosServico, cepOrigem, cepDestino, dimensoesPacoteEstimado, valorDeclarado, adicionaServicoMaoPropria, adicionaServicoAvisoRecebimento);
}
Expand All @@ -120,18 +150,27 @@ private RequisicaoEstimativaDePrecoEPrazoComServicoMaoPropria(RequisicaoEstimati
this.requisicaoEstimativaDePrecoEPrazoBuilder = requisicaoEstimativaDePrecoEPrazoBuilder;
}

/**
* Indica se a encomenda sera entregue com o servico adicional aviso de recebimento.
*/
public RequisicaoEstimativaDePrecoEPrazoComServicoAvisoDeRecebimento adicionandoServicoAvisoDeRecebimento() {
requisicaoEstimativaDePrecoEPrazoBuilder.adicionaServicoAvisoRecebimento = true;
return new RequisicaoEstimativaDePrecoEPrazoComServicoAvisoDeRecebimento();
}

/**
* @return as estimativas calculadas com preco e prazo
*/
public List<EstimativaComPrecoEPrazo> calcula() {
return correiosServicoEstimativaAPI.calculaPrecoEPrazo(codigosServico, cepOrigem, cepDestino, dimensoesPacoteEstimado, valorDeclarado, adicionaServicoMaoPropria, adicionaServicoAvisoRecebimento);
}
}

public class RequisicaoEstimativaDePrecoEPrazoComServicoAvisoDeRecebimento {

/**
* @return as estimativas calculadas com preco e prazo
*/
public List<EstimativaComPrecoEPrazo> calcula() {
return correiosServicoEstimativaAPI.calculaPrecoEPrazo(codigosServico, cepOrigem, cepDestino, dimensoesPacoteEstimado, valorDeclarado, adicionaServicoMaoPropria, adicionaServicoAvisoRecebimento);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,46 @@

import br.com.correios.api.postagem.dimensao.DimensoesDoObjeto.TipoDoObjetoSendoEnviado;

/**
* Classe que representa as dimensoes de um pacote a ser estimado
*
* @since 0.0.17-BETA
*/
public class DimensoesPacoteEstimado {

/**
* Formato da encomenda (incluindo embalagem)
*/
private TipoDoObjetoSendoEnviado tipoDoObjetoSendoEnviado;

/**
* Peso da encomenda, incluindo sua embalagem.
* O peso deve ser informado em quilogramas.
* Se o formato for Envelope, o valor maximo permitido sera 1 kg.
*
* @see {@link TipoDoObjetoSendoEnviado}
*/
private BigDecimal peso;

/**
* Comprimento da encomenda (incluindo embalagem), em centimetros.
*/
private BigDecimal comprimento;

/**
* Altura da encomenda (incluindo embalagem), em centimetros.
* Se o formato for envelope, informar zero (0).
*/
private BigDecimal altura;

/**
* Largura da encomenda (incluindo embalagem), em centimetros.
*/
private BigDecimal largura;

/**
* Diametro da encomenda (incluindo embalagem), em centimetros.
*/
private BigDecimal diametro;

// Construtor privado para obrigar o uso do builder
Expand Down
37 changes: 37 additions & 0 deletions src/main/java/br/com/correios/estimativa/EstimativaComPrazo.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,46 @@
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
* Classe que representa uma estimativa calculada pelo servico do Correios
* que possui <b>somente o prazo</b> da encomenda
*
* @since 0.0.17-BETA
*/
public class EstimativaComPrazo {

/**
* Codigo do Servico de Entrega.
*/
private String codigoServico;

/**
* Prazo estimado em dias para entrega do produto.
* Se o valor retornado for 0 (zero), indica que o prazo nao foi retornado corretamente.
* Mas nesso modelo use {@link #isEstimativaValida()} para validar se a estimativa esta valida
*/
private Integer prazoEntrega;

/**
* Informa se a localidade informada possui entrega domiciliaria.
* Se o prazo nao for retornado corretamente, o retorno deste parametro sera vazio.
*/
private boolean entregaDomiciliar;

/**
* Informa se a localidade informada possui entrega domiciliaria aos sabados.
* Se o prazo nao for retornado corretamente, o retorno deste parametro sera vazio.
*/
private boolean entregaAosSabados;

/**
* Codigo do Erro retornado pelo calculador
*/
private String codigoErro;

/**
* Descricao do erro gerado.
*/
private String mensagemErro;

public String getCodigoServico() {
Expand Down Expand Up @@ -61,6 +94,10 @@ public void setMensagemErro(String mensagemErro) {
this.mensagemErro = mensagemErro;
}

/**
* @return se uma estimativa esta valida, ou seja, nao possui nenhum erro
* retornado pelo calculador
*/
public boolean isEstimativaValida() {
return StringUtils.isBlank(codigoErro) || "0".equals(codigoErro);
}
Expand Down
Loading

0 comments on commit 41b21c3

Please sign in to comment.