Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /* ************************************************************************
 #
 #  DivConq
 #
 #  http://divconq.com/
 #
 #  Copyright:
 #    Copyright 2014 eTimeline, LLC. All rights reserved.
 #
#  License:
#    See the license.txt file in the project's top-level directory for details.
#  Authors:
#    * Andy White
************************************************************************ */
package divconq.lang;
// TODO convert to use Memory
public class StringBuilder32 implements CharSequence {
	protected StringBuilder sb = new StringBuilder();
    public int length() {
        return this..length(); 
    }
    public String toString() {
    	return this..toString();
    }
	public void reset() {
		this. = new StringBuilder();
	}
	public void append(CharSequence str) {
		if (str != null)
			this..append(str);
	}
	public void appendLine(CharSequence str) {
		if (str != null)
			this..append(str);
		this..append('\n');
	}
	public void appendLine() {
		this..append('\n');
	}
	public void append(char c) {
		this..append(c);
	}
    
    // appends a utf32 character or surrogate pair
    public void append(int valuethrows Exception {
        if (value < 0 || value > 0x10FFFF)
            throw new Exception("UTF builder error: The argument must be from 0 to 0x10FFFF.");
        if (0xD800 <= value && value <= 0xDFFF)
            throw new Exception("UTF builder error: The argument must not be in surrogate pair range.");
        if (value < 0x10000) {
            this..append((char)value);
        }
        else {
            value -= 0x10000;  // we have a surrogate pair
            this..append((char)((value >> 10) + 0xD800));
            this..append((char)(value % 0x0400 + 0xDC00));
        }
    }
	public char charAt(int index) {
		return this..charAt(index);
	}
	public CharSequence subSequence(int startint end) {
		return this..subSequence(startend);
	}
New to GrepCode? Check out our FAQ X