EN · DE · RU · FR · ES

#668: WeekHolder.java

projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java Type : Java · Rôle : Calendrier · Source : projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java 111 lignes · 57 code · 36 commentaires · 18 vides
Fichier source à projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java contenant du code Java pour la couche Calendrier.

Structure du code

Paquetage : org.projectforge.framework.calendar

Classes : WeekHolder

Implémente : Serializable

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

Champs (2) : serialVersionUID, weekOfYear

Importations : 6 paquetages

Code source (abrégé)

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();
    // Traitement de la semaine
    for (int i = 0; i < 7; i++) {
      if (day.getMonth() != month) {
        // TODO : Marquer ce jour comme jour du mois précédent ou suivant :
        //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];
  }

  /**
   * Pour stocker des objets supplémentaires dans une semaine. Utilisé par le sélecteur de date pour afficher le temps de travail total de l'utilisateur.
   */
  public void addObject(String key, Object value) {
    if (this.objects == null) {
      this.objects = new HashMap<>();
    }
    this.objects.put(key, value);
  }

  /**
   * Utilisé pour obtenir, par exemple, le temps de travail total de l'utilisateur pour cette semaine.
   *
   * @return les objets stockés pour ce jour, ou null s'ils n'existent pas.
   */
  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();
  }
}

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