BirthdayAddress.javaprojectforge-business/src/main/java/org/projectforge/business/address/BirthdayAddress.java contenant du code Java pour la couche Composant.Paquetage : org.projectforge.business.address
Classes : BirthdayAddress
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
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)
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