vmm.core
Class ComplexParam

java.lang.Object
  extended by vmm.core.Parameter
      extended by vmm.core.ComplexParam
Direct Known Subclasses:
ComplexParamAnimateable, ComplexVariableParam

public class ComplexParam
extends Parameter

A parameter of type Complex. The value object for a paremeter of this type belongs to the class Complex.


Constructor Summary
ComplexParam()
          Creates a ComplexParam that initially has no name and has value and default value equal to 0.
ComplexParam(java.lang.String name, Complex initialValue)
          Create a ComplexParam with a specified name and initial value.
ComplexParam(java.lang.String name, java.lang.String valueAsString)
          Create a ComplexParam with a specified name and initial value.
 
Method Summary
 Complex getDefaultValue()
          Returns the default value of this parameter.
 Complex getMaximumValueForInput()
          Returns the maximum value that is allowed for this parameter when its value is input.
 Complex getMinimumValueForInput()
          Returns the minimum value that is allowed for this parameter when its value is input.
 Complex getValue()
          Returns the value of this object as a number of type Complex.
 void reset(Complex value)
          Sets both the default value and the value of this parameter to the specified number.
 void setDefaultValue(double val)
          Sets the default value of the parameter to a specified complex value.
 void setMaximumValueForInput(Complex maximumValueForInput)
          Set the maximum value that is allowed for this parameter when its value is input.
 void setMinimumValueForInput(Complex minimumValueForInput)
          Set the minimum value that is allowed for this parameter when its value is input.
 void setValue(Complex val)
          Set the value of this parameter to a specified value of type Complex.
 void setValueAndDefault(Complex val)
          Set both the value and the default value of this parameter to a specified int.
protected  java.lang.Object stringToValueObject(java.lang.String str)
          Converts a string to an object of type Complex.
protected  java.lang.String valueObjectToString(java.lang.Object obj)
          Returns a string representation of a value object of this Parameters.
 
Methods inherited from class vmm.core.Parameter
createParameterInput, getDefaultValueAsString, getDefaultValueObject, getHint, getName, getOwner, getTitle, getValueAsString, getValueObject, reset, reset, setDefaultValueFromString, setDefaultValueObject, setName, setOwner, setValueAndDefaultFromString, setValueFromString, setValueObject, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ComplexParam

public ComplexParam()
Creates a ComplexParam that initially has no name and has value and default value equal to 0.


ComplexParam

public ComplexParam(java.lang.String name,
                    Complex initialValue)
Create a ComplexParam with a specified name and initial value.

Parameters:
name - The name of the Parameter, which can be null but ordinarily should not be. The name shoud identify the Parameter uniquely among parameters associated with a given Parameterizeable object. The name is for internal use in VMM. A human-readable name is returned by Parameter.getTitle().
initialValue - the initial value of the parameter. A null value is treated as 0

ComplexParam

public ComplexParam(java.lang.String name,
                    java.lang.String valueAsString)
             throws java.lang.NumberFormatException
Create a ComplexParam with a specified name and initial value.

Parameters:
name - The name of the Parameter.
valueAsString - The initial value of the parameter, given as a constant complex expression that represents a legal value of type Complex. If this is not the case, a NumberFormatException is thrown. This also becomes its default value.
Throws:
java.lang.NumberFormatException
Method Detail

reset

public void reset(Complex value)
Sets both the default value and the value of this parameter to the specified number. This is primarily meant to be called in the constructor of an Exhibit when it wants to change the value of a parameter that is inherited from a superclass.

The version in this class is essentially the same as setValueAndDefault(Complex), but for animated parameters (defined by subclasses of this class), the animation start and end values are also set.

Parameters:
value - the new value and default value. A null value is treated as zero.
See Also:
Parameter.reset(String)

setValue

public void setValue(Complex val)
Set the value of this parameter to a specified value of type Complex.

Parameters:
val - the new value. A null value is treated as zero.
See Also:
Parameter.setValueObject(Object)

getValue

public Complex getValue()
Returns the value of this object as a number of type Complex.

See Also:
Parameter.getValueObject()

setDefaultValue

public void setDefaultValue(double val)
Sets the default value of the parameter to a specified complex value. The default value is used when the user clicks the "Defaults" button in an AnimationLimitsDialog.

Parameters:
val - the default value. A null value is treated as zero.
See Also:
Parameter.setDefaultValueObject(Object)

setValueAndDefault

public void setValueAndDefault(Complex val)
Set both the value and the default value of this parameter to a specified int.

Parameters:
val - the default value. A null value is treated as zero.

getDefaultValue

public Complex getDefaultValue()
Returns the default value of this parameter.

See Also:
Parameter.getDefaultValueObject()

getMaximumValueForInput

public Complex getMaximumValueForInput()
Returns the maximum value that is allowed for this parameter when its value is input. In the VMM core, this limit is only enforced when the value is input into a ParameterInput.

Returns:
a Complex whose real part is the maximum allowed for the real part of the value of this parameter and whose imaginary part is the maximum allowed for the imaginary part of this parameter.
See Also:
setMaximumValueForInput(Complex)

setMaximumValueForInput

public void setMaximumValueForInput(Complex maximumValueForInput)
Set the maximum value that is allowed for this parameter when its value is input. In the VMM core, this limit is only enforced when the value is input into a ParameterInput. The default value is Double.POSITIVE_INFINITY + i*Double.POSITIVE_INFINITY, which means that there is no limit.

Parameters:
maximumValueForInput - a Complex whose real part is the maximum allowed for the real part of the value of this parameter and whose imaginary part is the maximum allowed for the imaginary part of this parameter. A null value is changed to the default value, Double.POSITIVE_INFINITY + i*Double.POSITIVE_INFINITY

getMinimumValueForInput

public Complex getMinimumValueForInput()
Returns the minimum value that is allowed for this parameter when its value is input. In the VMM core, this limit is only enforced when the value is input into a ParameterInput.

Returns:
a Complex whose real part is the minimum allowed for the real part of the value of this parameter and whose imaginary part is the minimum allowed for the imaginary part of this parameter.
See Also:
setMinimumValueForInput(Complex)

setMinimumValueForInput

public void setMinimumValueForInput(Complex minimumValueForInput)
Set the minimum value that is allowed for this parameter when its value is input. In the VMM core, this limit is only enforced when the value is input into a ParameterInput. The default value is Double.NEGATIVE_INFINITY + i*Double.NEGATIVE_INFINITY, which means that there is no limit. If you want to allow only strictly positive numbers, set the value to Double.MIN_VALUE, which is the smallest positive number that can be represented as a value of type double.

Parameters:
minimumValueForInput - a Complex whose real part is the minimum allowed for the real part of the value of this parameter and whose imaginary part is the minimum allowed for the imaginary part of this parameter. A null value is changed to the default value, Double.NEGATIVE_INFINITY + i*Double.NEGATIVE_INFINITY

stringToValueObject

protected java.lang.Object stringToValueObject(java.lang.String str)
                                        throws java.lang.NumberFormatException
Converts a string to an object of type Complex. This is used for converting strings to object that can be used as this Parameter's value object or default value object. A NumberFormatException is thrown if the string does not represent a legal constant complex expression that has a defined, finite Complex value.

Exceptions to this are the special strings "##NAN##", "##INF##", "##NEGINF##", and ##EPSILON## which represent the numbers Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, and Double.MIN_VALUE. These strings are used when the parameter is written to an XML settings file. They are necessary since it is always possible to set a value programmatically to one of these numbers. These numbers are just not allowed as the value of an ordinary expression.

Specified by:
stringToValueObject in class Parameter
Parameters:
str - A string representation of a value for the parameter, possibly as a constant expression such as "2*pi"
Returns:
An object representing the value, presumably of type Integer, Double, or Complex.
Throws:
java.lang.NumberFormatException

valueObjectToString

protected java.lang.String valueObjectToString(java.lang.Object obj)
Returns a string representation of a value object of this Parameters. In this class, the value object is of type Complex, with a null value interpreted as zero. The conversion is actually done by Util.toExternalString(Object).

Overrides:
valueObjectToString in class Parameter
Parameters:
obj - A parameter value represented as an object.
Returns:
A string representation of the value.
See Also:
Parameter.stringToValueObject(String)