/** {@inheritDoc} */
 @Override
 protected void toTextInternal(Appendable writer) throws IOException {
   writer.append(getArithmeticSign());
   if (stateObject != null) {
     writer.append(SPACE);
     stateObject.toString(writer);
   }
 }
  /** {@inheritDoc} */
  @Override
  protected void toTextEncapsulatedExpression(Appendable writer) throws IOException {

    // Specification
    if (specification != Specification.DEFAULT) {
      writer.append(specification.name());
      writer.append(SPACE);
    }

    // Trim character
    if (hasTrimCharacter()) {
      trimCharacter.toString(writer);
      writer.append(SPACE);
    }

    // FROM
    if ((specification != Specification.DEFAULT) || hasTrimCharacter()) {
      writer.append(FROM);
      writer.append(SPACE);
    }

    // String primary
    super.toTextEncapsulatedExpression(writer);
  }