EN · DE · RU · FR · ES

#668: WeekHolder.java

projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java Tipo: Java · Rol: Calendario · Fuente: projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java 111 líneas · 57 código · 36 comentarios · 18 en blanco
Archivo de código fuente en projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java que contiene código Java para la capa de Calendario.

Estructura del código

Paquete: org.projectforge.framework.calendar

Clases: WeekHolder

Implementa: Serializable

Métodos (6): getWeekOfYear, getFirstDayDate, getLastDayDate, addObject, getObject, toString

Campos (2): serialVersionUID, weekOfYear

Importaciones: 6 paquetes

Código fuente (resumido)

package org.projectforge.framework.calendar;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.projectforge.framework.time.PFDay;

import java.io.Serializable;
import java.time.Month;
import java.util.HashMap;
import java.util.Map;


/**
 * @author Kai Reinhard (k.reinhard@micromata.de)
 */
public class WeekHolder implements Serializable {
  private static final long serialVersionUID = -3895513078248004222L;

  private PFDay[] days;

  private int weekOfYear;

  private Map<String, Object> objects;

  public WeekHolder(PFDay date) {
    final Month month = date.getMonth();
    weekOfYear = date.getWeekOfYear();
    days = new PFDay[7];
    PFDay day = date.getBeginOfWeek();
    // Procesar semana
    for (int i = 0; i < 7; i++) {
      if (day.getMonth() != month) {
        // TODO: Marcar este día como día del mes anterior o siguiente:
        //day.setMarker(true);
      }
      days[i] = day;
      day = day.plusDays(1);
    }
  }


  public int getWeekOfYear() {
    return weekOfYear;
  }

  public PFDay[] getDays() {
    return days;
  }

  public PFDay getFirstDayDate() {
    return days[0];
  }

  public PFDay getLastDayDate() {
    return days[days.length - 1];
  }

  /**
   * Para almacenar objetos adicionales en una semana. Utilizado por el selector de fecha para mostrar el tiempo total de trabajo del usuario.
   */
  public void addObject(String key, Object value) {
    if (this.objects == null) {
      this.objects = new HashMap<>();
    }
    this.objects.put(key, value);
  }

  /**
   * Se utiliza para obtener, por ejemplo, el tiempo total de trabajo del usuario en esta semana.
   *
   * @return los objetos almacenados para este día o null si no existen.
   */
  public Object getObject(String key) {
    if (this.objects == null) {
      return null;
    }
    return this.objects.get(key);
  }

  public Map<String, Object> getObjects() {
    return this.objects;
  }

  public String toString() {
    ToStringBuilder tos = new ToStringBuilder(this);
    tos.append("days", getDays());
    return tos.toString();
  }
}

Historial Git

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