class interface UT_INTEGER_FORMATTER

feature(s) from KL_IMPORTED_STRING_ROUTINES
   --  Access

   STRING_: KL_STRING_ROUTINES
      --  Routines that ought to be in class STRING

      ensure
         string_routines_not_void: Result /= Void

feature(s) from KL_IMPORTED_OUTPUT_STREAM_ROUTINES
   --  Access

   OUTPUT_STREAM_: KL_OUTPUT_STREAM_ROUTINES
      --  Routines that ought to be in class OUTPUT_STREAM

      ensure
         output_stream_routines_not_void: Result /= Void

feature(s) from KL_IMPORTED_OUTPUT_STREAM_ROUTINES
   --  Type anchors

   OUTPUT_STREAM_TYPE: OUTPUT_STREAM

feature(s) from UT_INTEGER_FORMATTER
   --  Access

   decimal_integer_out (an_int: INTEGER): STRING
      --  Decimal representation of an_int;
      --  Return a new string at each call.
      --  Regexp: 0|(-?[1-9][0-9]*)

      ensure
         decimal_integer_out_not_void: Result /= Void

   octal_integer_out (an_int: INTEGER): STRING
      --  Octal representation of an_int;
      --  Return a new string at each call.
      --  Regexp: 0|[1-7][0-7]*

      require
         an_int_positive: an_int >= 0
      ensure
         octal_integer_out_not_void: Result /= Void

feature(s) from UT_INTEGER_FORMATTER
   --  String handling

   append_decimal_integer (a_string: STRING; an_int: INTEGER)
      --  Append decimal representation of an_int to a_string.

      require
         a_string_not_void: a_string /= Void

   append_octal_integer (a_string: STRING; an_int: INTEGER)
      --  Append octal representation of an_int to a_string.

      require
         a_string_not_void: a_string /= Void;
         an_int_positive: an_int >= 0

feature(s) from UT_INTEGER_FORMATTER
   --  File handling

   put_decimal_integer (a_file: like OUTPUT_STREAM_TYPE; an_int: INTEGER)
      --  Write decimal representation of an_int to a_file.

      require
         a_file_not_void: a_file /= Void;
         a_file_is_open_write: OUTPUT_STREAM_.is_open_write(a_file)

   put_octal_integer (a_file: like OUTPUT_STREAM_TYPE; an_int: INTEGER)
      --  Write octal representation of an_int to a_file.

      require
         a_file_not_void: a_file /= Void;
         a_file_is_open_write: OUTPUT_STREAM_.is_open_write(a_file);
         an_int_positive: an_int >= 0


end of UT_INTEGER_FORMATTER