1 jls.loader.provide('jls.io.cs.CharEncoder');
  2 
  3 jls.loader.require('jls.lang.ByteBuffer');
  4 
  5 jls.io.cs.CharEncoder = jls.lang.Class.create( /** @lends jls.io.cs.CharEncoder.prototype */
  6 {
  7     /**
  8      * Creates a character encoder.
  9      * 
 10      * @constructs
 11      * @param {jls.io.cs.Charset} charset The related charset.
 12      * @class This class represents a character encoder.
 13      */
 14     initialize : function(charset) {
 15         this._charset = charset;
 16         this._averBytes = 1.0;
 17         this._replacement = '?'.charCodeAt(0);
 18     },
 19     /**
 20      * Encodes a string and returns a buffer.
 21      *
 22      * @param {jls.lang.CharBuffer} input The character buffer to encode.
 23      * @returns {jls.lang.Buffer} The encoded buffer.
 24      */
 25     encode : function(input, buffer) {
 26     	var length = Math.round(input.remaining() * this._averBytes);
 27     	var output = buffer || jls.lang.ByteBuffer.allocate(length + 1);
 28     	while (input.remaining() > 0) {
 29     		var c = input.getChar();
 30     		if (c > 127) {
 31     			c = this._replacement;
 32     		}
 33     		output.putByte(c);
 34     	}
 35         return output;
 36     }
 37 });
 38 
 39