EN · DE · RU · FR · ES

#451: ReportObjective.java

projectforge-business/src/main/java/org/projectforge/business/fibu/kost/reporting/ReportObjective.java Тип: Java · Роль: Финансовый учёт · Источник: projectforge-business/src/main/java/org/projectforge/business/fibu/kost/reporting/ReportObjective.java 257 строк · 130 кода · 91 комментарий · 36 пустых
Файл исходного кода по пути projectforge-business/src/main/java/org/projectforge/business/fibu/kost/reporting/ReportObjective.java, содержащий Java-код для уровня финансового учёта.

Структура кода

Пакет: org.projectforge.business.fibu.kost.reporting

Классы: ReportObjective, Pattern, Pattern, Pattern

Методы (22): getTitle, setTitle, getId, setId, isSuppressOther, setSuppressOther, isSuppressDuplicates, setSuppressDuplicates, getHasChildren, getHasChilds, addChildReportObjective, getChildReportObjectives, getKost1IncludeRegExpList, getKost1ExcludeRegExpList, getKost2IncludeRegExpList, getKost2ExcludeRegExpList, addKost1IncludeRegExp, addKost1ExcludeRegExp, addKost2IncludeRegExp, addKost2ExcludeRegExp, getParent, addRegExp

Поля (9): title, id, suppressOther, suppressDuplicates, kost1IncludeRegExpList, kost1ExcludeRegExpList, kost2IncludeRegExpList, kost2ExcludeRegExpList, childReportObjectives

Импорты: 6 пакетов

Исходный код (сокращён)

package org.projectforge.business.fibu.kost.reporting;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import org.apache.commons.collections4.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * Объект отчёта, свойства которого могут быть проанализированы из XML-файла. Описание формата можно найти в руководстве.
 * ReportObjective привязан к отчёту. Отчёт использует ReportObjective для фильтрации проводок. <br/> ВНИМАНИЕ:
 * Дочерний ReportObjective может только дополнительно отфильтровывать проводки родительского ReportObjective, т. е. проводки
 * всегда образуют подмножество!
 * @author Thomas Landgraf (tl@micromata.de)
 * @author Kai Reinhard
 *
 */
@XStreamAlias("ReportObjective")
public class ReportObjective
{
  @XStreamAsAttribute
  private String title;

  @XStreamAsAttribute
  private String id;

  @XStreamAsAttribute
  private boolean suppressOther;

  @XStreamAsAttribute
  private boolean suppressDuplicates;

  @XStreamImplicit(itemFieldName = "kost1-include")
  private List<String> kost1IncludeRegExpList;

  @XStreamImplicit(itemFieldName = "kost1-exclude")
  private List<String> kost1ExcludeRegExpList;

  @XStreamImplicit(itemFieldName = "kost2-include")
  private List<String> kost2IncludeRegExpList;

  @XStreamImplicit(itemFieldName = "kost2-exclude")
  private List<String> kost2ExcludeRegExpList;

  @XStreamImplicit(itemFieldName = "ReportObjective")
  private List<ReportObjective> childReportObjectives;

  private transient ReportObjective parent;

  public ReportObjective()
  {
  }

  /**
   * Текстовое название
   */
  public String getTitle()
  {
    return title;
  }

  public void setTitle(String title)
  {
    this.title = title;
  }

  /**
   * Почти текстовый идентификатор, например "projekt4711", для построения структуры гиперссылок или папок
   */
  public String getId()
  {
    return id;
  }

  public void setId(String id)
  {
    this.id = id;
  }

  /**
   * @return False (по умолчанию), если прочие проводки должны учитываться как отдельный дочерний ReportObjective. Будут
   *         проанализированы дочерние ReportObjective и собраны проводки этого ReportObjective, не используемые дочерними.
   *         Сумма всех проводок / BWA дочерних элементов должна соответствовать этому ReportObjective (если нет дубликатов).
   * @see #isSupressDuplicates()
   */
  public boolean isSuppressOther()
  {
    return suppressOther;
  }

  public void setSuppressOther(boolean suppressOther)
  {
    this.suppressOther = suppressOther;
  }

  /**
   * @return False (по умолчанию), если дубликаты, т. е. проводки, многократно используемые дочерними ReportObjective, должны
   *         быть объединены в отдельный дочерний ReportObjective. С помощью этого флага и isOther можно проверить полноту и
   *         отсутствие дубликатов дочерних ReportObjective.
   * @see #isSuppressOther()
   */
  public boolean isSuppressDuplicates()
  {
    return suppressDuplicates;
  }

  public void setSuppressDuplicates(boolean suppressDuplicates)
  {
    this.suppressDuplicates = suppressDuplicates;
  }

  /**
   * @return True, если существуют дочерние ReportObjective, иначе false.
   */
  public boolean getHasChildren()
  {
// ... (сокращено, всего 235 строк)

История Git

868d6abb7 2025 -> 2026
ee32b3e3a Устаревание кода.
63081666f Заголовки исходных файлов: 2024 -> 2025.
b6092df09 Авторские права 2023 -> 2024
ab45d51fa Авторские права 2001-2022 -> 2001-2023.