BirthdayAddress.javaprojectforge-business/src/main/java/org/projectforge/business/address/BirthdayAddress.java que contiene código Java para la capa de Componente.Paquete: org.projectforge.business.address
Clases: BirthdayAddress
Implementa: Comparable<BirthdayAddress>, Serializable
Métodos (16): equals, hashCode, compareTo, isSameDay, setAge, getAge, getAddress, getDateOfYear, getCompareString, isFavorite, setFavorite, getMonth, getDayOfMonth, toString, getDateOfYear, getDateOfYear
Campos (7): serialVersionUID, dateOfYear, compareString, month, dayOfMonth, isFavorite, age
Importaciones: 6 paquetes
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("¡Cumpleaños no proporcionado!");
}
final PFDateTime day = PFDateTime.from(address.getBirthday()); // no nulo
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);
}
/**
* ¡Ignora el año!
* @see #getDateOfYear(Date)
*/
public boolean isSameDay(final Date date)
{
return this.dateOfYear.equals(getDateOfYear(date));
}
/** Establece y obtiene la edad de la persona en la fecha dada. */
public int setAge(final Date date)
{
final PFDateTime dt = PFDateTime.from(date); // no nulo
final PFDateTime birthday = PFDateTime.from(address.getBirthday()); // no nulo
age = dt.getYear() - birthday.getYear();
return age;
}
/** Obtiene la edad de la persona en la fecha de la última llamada a getAge(Date). */
public int getAge()
{
return age;
}
public AddressDO getAddress()
{
return address;
}
/**
* Formato {mmdd} (mes, día del mes)
*/
public String getDateOfYear()
{
return dateOfYear;
}
/**
* Formato {mmdd nombre, apellido} (mes, día del mes, ...)
*/
public String getCompareString()
{
return compareString;
}
public boolean isFavorite()
{
return isFavorite;
}
public void setFavorite(final boolean isFavorite)
{
this.isFavorite = isFavorite;
}
public Month getMonth()
{
// ... (truncado, 155 líneas en total)
868d6abb7 2025 -> 2026 63081666f Encabezados de archivos fuente: 2024-> 2025. b6092df09 Derechos de autor 2023 -> 2024 ab45d51fa Derechos de autor 2001-2022 -> 2001-2023. 5f7ef41b8 Derechos de autor 2021 -> 2022