1 /* 2 * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /* 27 ******************************************************************************* 28 * (C) Copyright IBM Corp. 1996-2005 - All Rights Reserved * 29 * * 30 * The original version of this source code and documentation is copyrighted * 31 * and owned by IBM, These materials are provided under terms of a License * 32 * Agreement between IBM and Sun. This technology is protected by multiple * 33 * US and International patents. This notice and attribution to IBM may not * 34 * to removed. * 35 ******************************************************************************* 36 */ 37 38 package sun.text.normalizer; 39 40 /** 41 * <code>ReplaceableString</code> is an adapter class that implements the 42 * <code>Replaceable</code> API around an ordinary <code>StringBuffer</code>. 43 * 44 * <p><em>Note:</em> This class does not support attributes and is not 45 * intended for general use. Most clients will need to implement 46 * {@link Replaceable} in their text representation class. 47 * 48 * <p>Copyright © IBM Corporation 1999. All rights reserved. 49 * 50 * @see Replaceable 51 * @author Alan Liu 52 * @stable ICU 2.0 53 */ 54 public class ReplaceableString implements Replaceable { 55 56 private StringBuffer buf; 57 58 /** 59 * Construct a new object with the given initial contents. 60 * @param str initial contents 61 * @stable ICU 2.0 62 */ 63 public ReplaceableString(String str) { 64 buf = new StringBuffer(str); 65 } 66 67 //// for StringPrep 68 /** 69 * Construct a new object using <code>buf</code> for internal 70 * storage. The contents of <code>buf</code> at the time of 71 * construction are used as the initial contents. <em>Note! 72 * Modifications to <code>buf</code> will modify this object, and 73 * vice versa.</em> 74 * @param buf object to be used as internal storage 75 * @stable ICU 2.0 76 */ 77 public ReplaceableString(StringBuffer buf) { 78 this.buf = buf; 79 } 80 81 /** 82 * Return the number of characters contained in this object. 83 * <code>Replaceable</code> API. 84 * @stable ICU 2.0 85 */ 86 public int length() { 87 return buf.length(); 88 } 89 90 /** 91 * Return the character at the given position in this object. 92 * <code>Replaceable</code> API. 93 * @param offset offset into the contents, from 0 to 94 * <code>length()</code> - 1 95 * @stable ICU 2.0 96 */ 97 public char charAt(int offset) { 98 return buf.charAt(offset); 99 } 100 101 //// for StringPrep 102 /** 103 * Copies characters from this object into the destination 104 * character array. The first character to be copied is at index 105 * <code>srcStart</code>; the last character to be copied is at 106 * index <code>srcLimit-1</code> (thus the total number of 107 * characters to be copied is <code>srcLimit-srcStart</code>). The 108 * characters are copied into the subarray of <code>dst</code> 109 * starting at index <code>dstStart</code> and ending at index 110 * <code>dstStart + (srcLimit-srcStart) - 1</code>. 111 * 112 * @param srcStart the beginning index to copy, inclusive; 113 * {@code 0 <= start <= limit}. 114 * @param srcLimit the ending index to copy, exclusive; 115 * {@code start <= limit <= length()}. 116 * @param dst the destination array. 117 * @param dstStart the start offset in the destination array. 118 * @stable ICU 2.0 119 */ 120 public void getChars(int srcStart, int srcLimit, char dst[], int dstStart) { 121 Utility.getChars(buf, srcStart, srcLimit, dst, dstStart); 122 } 123 } | 1 /* 2 * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /* 27 ******************************************************************************* 28 * Copyright (C) 1996-2009, International Business Machines Corporation and * 29 * others. All Rights Reserved. * 30 ******************************************************************************* 31 */ 32 33 package sun.text.normalizer; 34 35 /** 36 * <code>ReplaceableString</code> is an adapter class that implements the 37 * <code>Replaceable</code> API around an ordinary <code>StringBuffer</code>. 38 * 39 * <p><em>Note:</em> This class does not support attributes and is not 40 * intended for general use. Most clients will need to implement 41 * {@link Replaceable} in their text representation class. 42 * 43 * <p>Copyright © IBM Corporation 1999. All rights reserved. 44 * 45 * @see Replaceable 46 * @author Alan Liu 47 * @stable ICU 2.0 48 */ 49 class ReplaceableString implements Replaceable { 50 51 private StringBuffer buf; 52 53 /** 54 * Construct a new object with the given initial contents. 55 * @param str initial contents 56 * @stable ICU 2.0 57 */ 58 public ReplaceableString(String str) { 59 buf = new StringBuffer(str); 60 } 61 62 /** 63 * Construct a new object using <code>buf</code> for internal 64 * storage. The contents of <code>buf</code> at the time of 65 * construction are used as the initial contents. <em>Note! 66 * Modifications to <code>buf</code> will modify this object, and 67 * vice versa.</em> 68 * @param buf object to be used as internal storage 69 * @stable ICU 2.0 70 */ 71 public ReplaceableString(StringBuffer buf) { 72 this.buf = buf; 73 } 74 75 /** 76 * Return the number of characters contained in this object. 77 * <code>Replaceable</code> API. 78 * @stable ICU 2.0 79 */ 80 public int length() { 81 return buf.length(); 82 } 83 84 /** 85 * Return the character at the given position in this object. 86 * <code>Replaceable</code> API. 87 * @param offset offset into the contents, from 0 to 88 * <code>length()</code> - 1 89 * @stable ICU 2.0 90 */ 91 public char charAt(int offset) { 92 return buf.charAt(offset); 93 } 94 95 /** 96 * Copies characters from this object into the destination 97 * character array. The first character to be copied is at index 98 * <code>srcStart</code>; the last character to be copied is at 99 * index <code>srcLimit-1</code> (thus the total number of 100 * characters to be copied is <code>srcLimit-srcStart</code>). The 101 * characters are copied into the subarray of <code>dst</code> 102 * starting at index <code>dstStart</code> and ending at index 103 * <code>dstStart + (srcLimit-srcStart) - 1</code>. 104 * 105 * @param srcStart the beginning index to copy, inclusive; 106 * {@code 0 <= start <= limit}. 107 * @param srcLimit the ending index to copy, exclusive; 108 * {@code start <= limit <= length()}. 109 * @param dst the destination array. 110 * @param dstStart the start offset in the destination array. 111 * @stable ICU 2.0 112 */ 113 public void getChars(int srcStart, int srcLimit, char dst[], int dstStart) { 114 if (srcStart != srcLimit) { 115 buf.getChars(srcStart, srcLimit, dst, dstStart); 116 } 117 } 118 } |