EN · DE · RU · FR · ES

#368: BirthdayAddress.java

projectforge-business/src/main/java/org/projectforge/business/address/BirthdayAddress.java Type : Java · Rôle : Composant · Source : projectforge-business/src/main/java/org/projectforge/business/address/BirthdayAddress.java 177 lignes · 107 code · 41 commentaires · 29 vides
Fichier source à projectforge-business/src/main/java/org/projectforge/business/address/BirthdayAddress.java contenant du code Java pour la couche Composant.

Structure du code

Paquetage : org.projectforge.business.address

Classes : BirthdayAddress

Implémente : Comparable, Serializable

Méthodes (16) : equals, hashCode, compareTo, isSameDay, setAge, getAge, getAddress, getDateOfYear, getCompareString, isFavorite, setFavorite, getMonth, getDayOfMonth, toString, getDateOfYear, getDateOfYear

Champs (7) : serialVersionUID, dateOfYear, compareString, month, dayOfMonth, isFavorite, age

Importations : 6 paquetages

Code source (abrégé)

package org.projectforge.business.address;

import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.projectforge.common.StringHelper;
import org.projectforge.framework.time.PFDateTime;

import java.io.Serializable;
import java.time.Month;
import java.util.Date;


public class BirthdayAddress implements Comparable<BirthdayAddress>, Serializable
{
  private static final long serialVersionUID = -611024181799550736L;

  private final String dateOfYear;

  private final String compareString;

  private final Month month;

  private final int dayOfMonth;

  private boolean isFavorite;

  private int age = -1;

  AddressDO address;

  public BirthdayAddress(final AddressDO address)
  {
    this.address = address;
    if (address.getBirthday() == null) {
      throw new UnsupportedOperationException("Anniversaire non renseigné !");
    }
    final PFDateTime day = PFDateTime.from(address.getBirthday()); // non null
    month = day.getMonth();
    dayOfMonth = day.getDayOfMonth();
    dateOfYear = getDateOfYear(month, dayOfMonth);
    compareString = dateOfYear + " " + address.getName() + ", " + address.getFirstName();
  }

  @Override
  public boolean equals(final Object obj)
  {
    return compareString.equals(((BirthdayAddress) obj).compareString);
  }

  @Override
  public int hashCode()
  {
    final HashCodeBuilder hcb = new HashCodeBuilder();
    hcb.append(this.compareString);
    return hcb.toHashCode();
  }

  @Override
  public int compareTo(final BirthdayAddress o)
  {
    return this.compareString.compareTo(o.compareString);
  }

  /**
   * Ignore l'année !
   * @see #getDateOfYear(Date)
   */
  public boolean isSameDay(final Date date)
  {
    return this.dateOfYear.equals(getDateOfYear(date));
  }

  /** Définit et obtient l'âge de la personne à la date donnée. */
  public int setAge(final Date date)
  {
    final PFDateTime dt = PFDateTime.from(date); // non null
    final PFDateTime birthday = PFDateTime.from(address.getBirthday());  // non null
    age = dt.getYear() - birthday.getYear();
    return age;
  }

  /** Obtient l'âge de la personne à la date du dernier appel de getAge(Date). */
  public int getAge()
  {
    return age;
  }

  public AddressDO getAddress()
  {
    return address;
  }

  /**
   * Format {mmjj} (mois, jour du mois)
   */
  public String getDateOfYear()
  {
    return dateOfYear;
  }

  /**
   * Format {mmjj nom, prénom} (mois, jour du mois, ...)
   */
  public String getCompareString()
  {
    return compareString;
  }

  public boolean isFavorite()
  {
    return isFavorite;
  }

  public void setFavorite(final boolean isFavorite)
  {
    this.isFavorite = isFavorite;
  }

  public Month getMonth()
  {
// ... (tronqué, total 155 lignes)

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
5f7ef41b8 Copyright 2021 -> 2022