Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.Serializable;
- import java.time.LocalDate;
- import java.time.Period;
- /**
- *
- * @author joaop e jasonw
- */
- public abstract class Tarefa implements Serializable{
- ////////////////////////////////////////////////////////////////////////////
- //Varíaveis e construtor
- /**
- *Descriçao da tarefa
- */
- protected String descricao;
- /**
- *Responsavel da Tarefa
- */
- protected Pessoa responsavel;
- /**
- *Data Inicio da Tarefa
- */
- protected final LocalDate dataInicio;
- /**
- *Data fim da Tarefa
- */
- protected LocalDate dataFim;
- /**
- *Duracao estimada em dias da tarefa
- */
- protected int durEstimada; //Número de dias
- /**
- *Taxa de execução da tarefa
- */
- protected double taxaExecucao;
- Tarefa(String novaDescricao, LocalDate novaDataInicio, int novaDurEstimada){
- this.descricao = novaDescricao;
- this.dataInicio = novaDataInicio;
- this.durEstimada = novaDurEstimada;
- this.taxaExecucao = 0.0;
- }
- ////////////////////////////////////////////////////////////////////////////
- //Métodos abstratos, de @Override, getters e setters
- public void setResponsavel(Pessoa novaResponsavel){ this.responsavel = novaResponsavel; }
- public void setDataFim(LocalDate novaDataFim){ this.dataFim = novaDataFim; }
- public void setTaxaExecucao(double novaTaxaExecucao){
- this.taxaExecucao = novaTaxaExecucao;
- if(this.taxaExecucao == 100.0){
- setDataFim(LocalDate.now());
- }
- }
- /**
- *Metodo abstrato que deolve taxa de esforço
- * @return
- */
- public abstract double taxaEsforco();
- public String getDescricao() { return descricao; }
- public Pessoa getResponsavel() { return responsavel; }
- public LocalDate getDataInicio() { return dataInicio; }
- public LocalDate getDataFim() { return dataFim; }
- public int getDurEstimada() { return durEstimada; }
- public double getTaxaExecucao() { return taxaExecucao; }
- @Override
- public String toString(){ return this.descricao + " (a " + this.taxaExecucao + "%)"; }
- //Verifica se a tarefa está concluída
- /**
- * Metodo que verifica se a tarefa esta concluida
- * @return
- */
- public int concluido(){
- if(this.taxaExecucao == 0.0) return -1;
- else if(this.dataFim == null) return 0;
- LocalDate dataFimEstimada = this.dataInicio.plusDays(this.durEstimada);
- Period dur1 = Period.between(this.dataFim, this.dataInicio);
- Period dur2 = Period.between(this.dataFim, dataFimEstimada);
- if((dur1.getDays()-dur2.getDays()) > 0){
- return 2;
- }else{
- return 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement