EN · DE · RU · FR · ES

#538: ScriptParameter.java

projectforge-business/src/main/java/org/projectforge/business/scripting/ScriptParameter.java Typ: Java · Rolle: Scripting · Quelle: projectforge-business/src/main/java/org/projectforge/business/scripting/ScriptParameter.java 323 Zeilen · 252 Code · 25 Kommentare · 46 leer
Quellcodedatei unter projectforge-business/src/main/java/org/projectforge/business/scripting/ScriptParameter.java, die Java-Code für die Scripting-Ebene enthält.

Codestruktur

Paket: org.projectforge.business.scripting

Klassen: ScriptParameter

Implementiert: Serializable

Methoden (26): getValue, setValue, getType, getParameterName, getParameterDescription, getStringValue, setStringValue, getIntValue, setIntValue, getDecimalValue, setDecimalValue, getBooleanValue, setBooleanValue, getDateValue, setDateValue, getTimePeriodValue, setTimePeriodValue, setType, setParameterName, setParameterDescription, getTask, setTask, getUser, setUser, getAsString...

Felder (10): serialVersionUID, type, parameterName, parameterDescription, stringValue, intValue, decimalValue, booleanValue, dateValue, timePeriodValue

Importe: 9 Pakete

Quellcode (gekürzt)

package org.projectforge.business.scripting;

import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.projectforge.business.task.TaskDO;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.projectforge.framework.time.TimePeriod;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;


public class ScriptParameter implements Serializable
{
  private static final long serialVersionUID = 2270347937331330184L;

  @XStreamAsAttribute
  protected ScriptParameterType type;

  @XStreamAsAttribute
  protected String parameterName;

  @XStreamOmitField
  protected String parameterDescription;

  protected String stringValue;

  /**
   * intValue ist vom Typ long.
   */
  @XStreamAsAttribute
  protected Long intValue;

  @XStreamAsAttribute
  protected BigDecimal decimalValue;

  @XStreamAsAttribute
  protected Boolean booleanValue;

  @XStreamAsAttribute
  protected LocalDate dateValue;

  protected transient TaskDO task;

  protected transient PFUserDO user;

  protected TimePeriod timePeriodValue;

  public ScriptParameter()
  {
  }

  public ScriptParameter(final String parameterName, final ScriptParameterType type)
  {
    this.parameterName = parameterName;
    this.type = type;
  }

  public ScriptParameter(final String parameterName, final ScriptParameterType type, final String description)
  {
    this(parameterName, type);
    this.parameterDescription = description;
  }

  public Object getValue()
  {
    if (type == null) {
      return null;
    } else if (type == ScriptParameterType.STRING) {
      return stringValue;
    } else if (type == ScriptParameterType.DECIMAL) {
      return decimalValue;
    } else if (type == ScriptParameterType.DATE) {
      return dateValue;
    } else if (type == ScriptParameterType.TIME_PERIOD) {
      return timePeriodValue;
    } else if (type == ScriptParameterType.INTEGER) {
      return intValue;
    } else if (type == ScriptParameterType.BOOLEAN) {
      return booleanValue;
    } else if (type == ScriptParameterType.TASK) {
      return task;
    } else if (type == ScriptParameterType.USER) {
      return user;
    }
    throw new UnsupportedOperationException("Parametertyp '" + type + "' nicht unterstützt.");
  }

  public void setValue(final Object value)
  {
    if (type == ScriptParameterType.STRING) {
      stringValue = (String) value;
    } else if (type == ScriptParameterType.DECIMAL) {
      decimalValue = (BigDecimal) value;
    } else if (type == ScriptParameterType.DATE) {
      dateValue = (LocalDate) value;
    } else if (type == ScriptParameterType.TIME_PERIOD) {
      timePeriodValue = (TimePeriod) value;
    } else if (type == ScriptParameterType.INTEGER) {
      intValue = (Long) value;
    } else if (type == ScriptParameterType.BOOLEAN) {
      booleanValue = (Boolean) value;
    } else if (type == ScriptParameterType.TASK) {
      setTask((TaskDO) value);
    } else if (type == ScriptParameterType.USER) {
      setUser((PFUserDO) value);
    } else {
      throw new UnsupportedOperationException("Parametertyp '" + type + "' nicht unterstützt.");
    }
  }

  public Class<?> getValueClass() {
     if (type == ScriptParameterType.DECIMAL) {
      return BigDecimal.class;
    } else if (type == ScriptParameterType.DATE) {
      return LocalDate.class;
    } else if (type == ScriptParameterType.TIME_PERIOD) {
// ... (gekürzt, insgesamt 301 Zeilen)

Git-Verlauf

868d6abb7 2025 -> 2026
f84a49eba Scripting: Beschreibung für Skriptparameter hinzugefügt.
63081666f Quellcodedatei-Header: 2024 -> 2025.
4c04cfd65 MAJOR-CHANGE! Migration von Integer-IDs zu Long-IDs (inkl. Fremdschlüssel etc.)
b6092df09 Copyright 2023 -> 2024