package net.sf.jasperreports.engine.design;

import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.base.JRBaseParameter;

public class JRDesignParameter extends JRBaseParameter {
  private static final long serialVersionUID = 10200L;
  
  public static final String PROPERTY_DEFAULT_VALUE_EXPRESSION = "defaultValueExpression";
  
  public static final String PROPERTY_FOR_PROMPTING = "forPrompting";
  
  public static final String PROPERTY_NAME = "name";
  
  public static final String PROPERTY_SYSTEM_DEFINED = "systemDefined";
  
  public static final String PROPERTY_VALUE_CLASS_NAME = "valueClassName";
  
  public void setName(String name) {
    Object old = this.name;
    this.name = name;
    getEventSupport().firePropertyChange("name", old, this.name);
  }
  
  public void setValueClass(Class clazz) {
    setValueClassName(clazz.getName());
  }
  
  public void setValueClassName(String className) {
    Object old = this.valueClassName;
    this.valueClassName = className;
    this.valueClass = null;
    this.valueClassRealName = null;
    getEventSupport().firePropertyChange("valueClassName", old, this.valueClassName);
  }
  
  public void setSystemDefined(boolean isSystemDefined) {
    boolean old = this.isSystemDefined;
    this.isSystemDefined = isSystemDefined;
    getEventSupport().firePropertyChange("systemDefined", old, this.isSystemDefined);
  }
  
  public void setForPrompting(boolean isForPrompting) {
    boolean old = this.isForPrompting;
    this.isForPrompting = isForPrompting;
    getEventSupport().firePropertyChange("forPrompting", old, this.isForPrompting);
  }
  
  public void setDefaultValueExpression(JRExpression expression) {
    Object old = this.defaultValueExpression;
    this.defaultValueExpression = expression;
    getEventSupport().firePropertyChange("defaultValueExpression", old, this.defaultValueExpression);
  }
}
