public void write()

in core/src/main/java/org/apache/calcite/avatica/util/Base64.java [1960:2001]


    public void write(int theByte)
        throws java.io.IOException {
      // Encoding suspended?
      if( suspendEncoding ) {
        this.out.write( theByte );
        return;
      }   // end if: supsended

      // Encode?
      if( encode ) {
        buffer[ position++ ] = (byte)theByte;
        if( position >= bufferLength ) { // Enough to encode.

          this.out.write( encode3to4( b4, buffer, bufferLength, options ) );

          lineLength += 4;
          if( breakLines && lineLength >= MAX_LINE_LENGTH ) {
            this.out.write( NEW_LINE );
            lineLength = 0;
          }   // end if: end of line

          position = 0;
        }   // end if: enough to output
      }   // end if: encoding

      // Else, Decoding
      else {
        // Meaningful Base64 character?
        if( decodabet[ theByte & 0x7f ] > WHITE_SPACE_ENC ) {
          buffer[ position++ ] = (byte)theByte;
          if( position >= bufferLength ) { // Enough to output.

            int len = Base64.decode4to3( buffer, 0, b4, 0, options );
            out.write( b4, 0, len );
            position = 0;
          }   // end if: enough to output
        }   // end if: meaningful base64 character
        else if( decodabet[ theByte & 0x7f ] != WHITE_SPACE_ENC ) {
          throw new java.io.IOException( "Invalid character in Base64 data." );
        }   // end else: not white space either
      }   // end else: decoding
    }   // end write