/**
  * Returns the {@link StateObject} that represents the arithmetic primary expression.
  *
  * @param stateObject The {@link StateObject} that represents the arithmetic primary expression or
  *     <code>null</code> if none was specified
  */
 public void setStateObject(StateObject stateObject) {
   StateObject oldStateObject = this.stateObject;
   this.stateObject = parent(stateObject);
   firePropertyChanged(STATE_OBJECT_PROPERTY, oldStateObject, stateObject);
 }
 /**
  * Sets the character to trim from the string. If the character to be trimmed is not specified, it
  * is assumed to be space (or blank). It is a single-character string literal or a character-
  * valued input parameter (i.e., char or <code>Character</code>).
  *
  * @param trimCharacter The trim character or <code>null</code> to remove it
  */
 public void setTrimCharacter(StateObject trimCharacter) {
   StateObject oldTrimCharacter = this.trimCharacter;
   this.trimCharacter = parent(trimCharacter);
   firePropertyChanged(TRIM_CHARACTER_PROPERTY, oldTrimCharacter, trimCharacter);
 }
 /**
  * Sets the arithmetic sign this expression is actually representing.
  *
  * @param plusSign The single character value of the arithmetic sign: '+' (<code>true</code>) or
  *     '-' (<code>false</code>)
  */
 public void setArithmeticSign(boolean plusSign) {
   boolean oldPlusSign = plusSign;
   this.plusSign = !oldPlusSign;
   firePropertyChanged(ARITHMETIC_SIGN_PROPERTY, oldPlusSign, plusSign);
 }
 /**
  * Sets the new trim specification.
  *
  * @param specification The new trim specification; <code>null</code> is not valid
  */
 public void setSpecification(Specification specification) {
   Assert.isNotNull(specification, "The Specification cannot be null");
   Specification oldSpecification = this.specification;
   this.specification = specification;
   firePropertyChanged(SPECIFICATION_PROPERTY, oldSpecification, specification);
 }