agendapoo.Model.Atividade.java Source code

Java tutorial

Introduction

Here is the source code for agendapoo.Model.Atividade.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package agendapoo.Model;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

/**
 * Classe modelo de Atividade com todos os atributos referentes a mesma.
 * @author kieckegard
 */
public class Atividade implements Serializable, Comparable<Atividade> {
    private UUID id;
    private String descricao;
    private String local;
    private LocalDate data;
    private LocalTime horaInicio;
    private LocalTime horaFim;
    private List<String> convidados;
    private final Usuario usuario;
    private TipoAtividade tipo;

    public Atividade(String descricao, String local, LocalDate data, LocalTime horaInicio, LocalTime horaFim,
            TipoAtividade tipo, Usuario u) {
        id = UUID.randomUUID();
        this.descricao = descricao;
        this.local = local;
        this.data = data;
        this.horaInicio = horaInicio;
        this.horaFim = horaFim;
        convidados = new ArrayList<>();
        this.tipo = tipo;
        this.usuario = u;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public TipoAtividade getTipo() {
        return tipo;
    }

    public void setTipo(TipoAtividade tipo) {
        this.tipo = tipo;
    }

    public String getLocal() {
        return local;
    }

    public String getId() {
        return id.toString();
    }

    public void setId(String id) {
        this.id = UUID.fromString(id);
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setLocal(String local) {
        this.local = local;
    }

    public LocalDate getData() {
        return data;
    }

    /**
     * LocalDate possui o formato da data seguindo esse modelo "yyyy-MM-dd", esse
     * mtodo tem como objetivo retornar a String da LocalDate com sua data
     * no formato "dd/MM/yyyy".
     * @return String contendo a data formatada no padro dd/MM/yyyy.
     */
    public String getFormattedDate() {
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        return this.data.format(dtf);
    }

    public void setData(LocalDate data) {
        this.data = data;
    }

    public LocalTime getHoraInicio() {
        return horaInicio;
    }

    public void setHoraInicio(LocalTime horaInicio) {
        this.horaInicio = horaInicio;
    }

    public LocalTime getHoraFim() {
        return horaFim;
    }

    public void setHoraFim(LocalTime horaFim) {
        this.horaFim = horaFim;
    }

    public List<String> getConvidados() {
        return convidados;
    }

    /**
     * Mtodo responsvel por retornar todos os convidados da atividade em String.
     * @return String contendo todos os convidados da atividade.
     */
    public String getConvidadosString() {
        String output = "";
        for (String convidado : convidados)
            output += convidado + " ";
        return output;
    }

    public void setConvidados(List<String> convidados) {
        this.convidados = convidados;
    }

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof Atividade))
            return false;
        if (o == this)
            return true;

        Atividade aux = (Atividade) o;
        return new EqualsBuilder().append(descricao, aux.getDescricao()).append(local, aux.getLocal())
                .append(data, aux.getData()).append(horaInicio, aux.getHoraInicio())
                .append(horaFim, aux.getHoraFim()).append(convidados, aux.getConvidados()).append(id, aux.getId())
                .isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 31).append(descricao).append(local).append(data).append(horaInicio)
                .append(horaFim).append(convidados).append(usuario).append(id).toHashCode();
    }

    @Override
    public int compareTo(Atividade o) {
        Period p = Period.between(o.data, data);
        if (p.getDays() == 0)
            return this.horaInicio.compareTo(o.getHoraInicio());
        return p.getDays();
    }

}