package // // This software is now distributed according to // the Lesser Gnu Public License. Please see // http://www.gnu.org/copyleft/lesser.txt for // the details. // -- Happy Computing! // com.stevesoft.pat.wrap; import com.stevesoft.pat.BasicStringBufferLike; import com.stevesoft.pat.StringLike; /** * Allows the outcome of a replaceAll() or replaceFirst() to be an array of * characters rather than a String. */ public class CharArrayBufferWrap implements BasicStringBufferLike { javajs.util.SB sb = new javajs.util.SB(); public void appendChar(char c) { sb.appendC(c); } public void appendStr(String s) { sb.append(s); } public StringLike toStringLike() { char[] ca = new char[sb.length()]; for (int i = 0; i < ca.length; i++) { ca[i] = sb.charAt(i); } try { return (StringLike) Class.forName("com.stevesoft.pat.wrap.CharArrayWrap").getConstructor(char[].class).newInstance(ca); } catch (Exception e) { return null; } } public int length() { return sb.length(); } public String toString() { return sb.toString(); } public Object unwrap() { return sb; } }