60 str = s; 61 } 62 63 public CharBuffer duplicate() { 64 return new StringCharBuffer(str, markValue(), 65 position(), limit(), capacity(), offset); 66 } 67 68 public CharBuffer asReadOnlyBuffer() { 69 return duplicate(); 70 } 71 72 public final char get() { 73 return str.charAt(nextGetIndex() + offset); 74 } 75 76 public final char get(int index) { 77 return str.charAt(checkIndex(index) + offset); 78 } 79 80 // ## Override bulk get methods for better performance 81 82 public final CharBuffer put(char c) { 83 throw new ReadOnlyBufferException(); 84 } 85 86 public final CharBuffer put(int index, char c) { 87 throw new ReadOnlyBufferException(); 88 } 89 90 public final CharBuffer compact() { 91 throw new ReadOnlyBufferException(); 92 } 93 94 public final boolean isReadOnly() { 95 return true; 96 } 97 98 final String toString(int start, int end) { 99 return str.toString().substring(start + offset, end + offset); | 60 str = s; 61 } 62 63 public CharBuffer duplicate() { 64 return new StringCharBuffer(str, markValue(), 65 position(), limit(), capacity(), offset); 66 } 67 68 public CharBuffer asReadOnlyBuffer() { 69 return duplicate(); 70 } 71 72 public final char get() { 73 return str.charAt(nextGetIndex() + offset); 74 } 75 76 public final char get(int index) { 77 return str.charAt(checkIndex(index) + offset); 78 } 79 80 char getUnchecked(int index) { 81 return str.charAt(index + offset); 82 } 83 84 // ## Override bulk get methods for better performance 85 86 public final CharBuffer put(char c) { 87 throw new ReadOnlyBufferException(); 88 } 89 90 public final CharBuffer put(int index, char c) { 91 throw new ReadOnlyBufferException(); 92 } 93 94 public final CharBuffer compact() { 95 throw new ReadOnlyBufferException(); 96 } 97 98 public final boolean isReadOnly() { 99 return true; 100 } 101 102 final String toString(int start, int end) { 103 return str.toString().substring(start + offset, end + offset); |