EN · DE · RU · FR · ES

#668: WeekHolder.java

projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java Typ: Java · Rolle: Kalender · Quelle: projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java 111 Zeilen · 57 Code · 36 Kommentare · 18 leer
Quellcodedatei unter projectforge-business/src/main/java/org/projectforge/framework/calendar/WeekHolder.java, die Java-Code für die Kalenderschicht enthält.

Codestruktur

Paket: org.projectforge.framework.calendar

Klassen: WeekHolder

Implementiert: Serializable

Methoden (6): getWeekOfYear, getFirstDayDate, getLastDayDate, addObject, getObject, toString

Felder (2): serialVersionUID, weekOfYear

Importe: 6 Pakete

Quellcode (gekürzt)

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();
    // Woche verarbeiten
    for (int i = 0; i < 7; i++) {
      if (day.getMonth() != month) {
        // TODO: Diesen Tag als Tag des vorherigen oder nächsten Monats markieren:
        //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];
  }

  /**
   * Zum Speichern zusätzlicher Objekte zu einer Woche. 
   * Wird vom Datumsauswahlfeld verwendet, um die gesamte Arbeitszeit des Benutzers anzuzeigen.
   */
  public void addObject(String key, Object value) {
    if (this.objects == null) {
      this.objects = new HashMap<>();
    }
    this.objects.put(key, value);
  }

  /**
   * Wird verwendet, um z. B. die gesamte Arbeitszeit des Benutzers in dieser Woche abzurufen.
   *
   * @return die gespeicherten Objekte zu diesem Tag oder null, falls nicht vorhanden.
   */
  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();
  }
}

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quellcode-Dateiköpfe: 2024 -> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
5f7ef41b8 Copyright 2021 -> 2022