Changeset 7062
- Timestamp:
- 2004-03-16T16:45:35+13:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/util/AppendLineOnlyFileDocument.java
r7054 r7062 137 137 public void appendLine(String str) { 138 138 // Ensure the string ends in a newline 139 if(!str.endsWith("\n")) {140 str = str + "\n";141 }142 139 try { 143 int str_length = str.length(); 140 if (!str.endsWith("\n")) { 141 str = str + "\n"; 142 } 143 int str_length = str.getBytes("UTF-8").length; 144 144 long start_offset = length; 145 145 long end_offset = start_offset + (long) str_length; 146 146 length = length + str_length; 147 //write(start_offset, end_offset, str, str_length);148 147 // Create a new element to represent this line 149 148 AppendLineOnlyFileDocumentElement new_line_element = new AppendLineOnlyFileDocumentElement(start_offset, end_offset, str); … … 246 245 public String getText(int offset, int l) 247 246 throws BadLocationException { 248 String request = "getText(" + offset + ", " + l + ")"; 249 ///ystem.err.println(request); 250 String text = null; 251 if(text == null || text.length() < l) { 252 try { 253 int file_length = (int) file.length(); 254 ///ystem.err.println("file_length = " + file_length + ", length = " + length); 255 if(l == 0) { 256 text = StaticStrings.EMPTY_STR; 257 } 258 else if(0 <= offset && offset < length && (offset + l) <= length) { 259 if(offset < file_length) { 260 text = read((long)offset, l); 261 if(text.length() != l) { 262 ///ystem.err.println("Asked for " + l + " characters of text. But only read " + text.length()); 263 throw new BadLocationException("AppendLineOnlyDocument.getText(" + offset + ", " + l + ")", offset); 264 } 265 } 266 else { 267 int index = root_element.getElementIndex(offset); 268 if(index < root_element.getElementCount()) { 269 AppendLineOnlyFileDocumentElement element = (AppendLineOnlyFileDocumentElement) root_element.getElement(index); 270 text = element.getContent(); 271 } 272 else { 273 ///ystem.err.println("Index is " + index + " but there are only " + root_element.getElementCount() + " children."); 274 throw new BadLocationException("AppendLineOnlyDocument.getText(" + offset + ", " + l + ")", offset); 275 } 276 } 247 248 if (l == 0) { 249 return ""; 250 } 251 252 try { 253 return read((long) offset, l); 254 } 255 catch (Exception ex) { 256 } 257 258 return ""; 259 260 // // System.err.println("AppendLineOnlyFileDocument::getText() request..."); 261 // String request = "getText(" + offset + ", " + l + ")"; 262 // ///ystem.err.println(request); 263 // String text = null; 264 // if(text == null || text.length() < l) { 265 // try { 266 // int file_length = (int) file.length(); 267 // ///ystem.err.println("file_length = " + file_length + ", length = " + length); 268 // if(l == 0) { 269 // text = StaticStrings.EMPTY_STR; 270 // } 271 // else if(0 <= offset && offset < length && (offset + l) <= length) { 272 // if(offset < file_length) { 273 // text = read((long)offset, l); 274 // if(text.length() != l) { 275 // ///ystem.err.println("Asked for " + l + " characters of text. But only read " + text.length()); 276 // throw new BadLocationException("AppendLineOnlyDocument.getText(" + offset + ", " + l + ")", offset); 277 // } 278 // } 279 // else { 280 // int index = root_element.getElementIndex(offset); 281 // if(index < root_element.getElementCount()) { 282 // AppendLineOnlyFileDocumentElement element = (AppendLineOnlyFileDocumentElement) root_element.getElement(index); 283 // text = element.getContent(); 284 // } 285 // else { 286 // ///ystem.err.println("Index is " + index + " but there are only " + root_element.getElementCount() + " children."); 287 // throw new BadLocationException("AppendLineOnlyDocument.getText(" + offset + ", " + l + ")", offset); 288 // } 289 // } 277 290 278 }279 }280 catch (IOException error) {281 Gatherer.printStackTrace(error);282 }283 if(text == null) {284 ///ystem.err.println("Text is null.");285 throw new BadLocationException("AppendLineOnlyDocument.getText(" + offset + ", " + l + ")", offset);286 }287 }288 request = null;289 return text;291 // } 292 // } 293 // catch (IOException error) { 294 // Gatherer.printStackTrace(error); 295 // } 296 // if(text == null) { 297 // ///ystem.err.println("Text is null."); 298 // throw new BadLocationException("AppendLineOnlyDocument.getText(" + offset + ", " + l + ")", offset); 299 // } 300 // } 301 // request = null; 302 // return text; 290 303 } 291 304 … … 375 388 file.seek(start_offset); 376 389 int result = file.read(buffer, 0, l); 390 return new String(buffer, "UTF-8"); 377 391 //print("read() complete"); 378 return new String(buffer);379 392 } 380 393 … … 390 403 file.setLength(end_offset); 391 404 file.seek(start_offset); 392 file.write(str.getBytes( ), 0, l);405 file.write(str.getBytes("UTF-8"), 0, l); 393 406 //print("write() complete"); 394 407 } … … 779 792 if(content != null) { 780 793 try { 781 write(element.getStartOffset(), element.getEndOffset(), content, content. length());794 write(element.getStartOffset(), element.getEndOffset(), content, content.getBytes("UTF-8").length); 782 795 } 783 796 catch(Exception error) {
Note:
See TracChangeset
for help on using the changeset viewer.