1 21 22 package org.armedbear.j; 23 24 import java.io.UnsupportedEncodingException ; 25 26 public final class ManLine extends AbstractLine implements Line 27 { 28 private final String rawText; 29 30 private int flags; 31 private String text; 32 33 public ManLine(String s) 34 { 35 rawText = s; 36 } 37 38 public final int flags() 39 { 40 return flags; 41 } 42 43 public final void setFlags(int flags) 44 { 45 this.flags = flags; 46 } 47 48 public final String getText() 49 { 50 if (text == null) { 51 FastStringBuffer sb = new FastStringBuffer(256); 52 final int limit = rawText.length(); 53 for (int i = 0; i < limit; i++) { 54 char c = rawText.charAt(i); 55 if (c == 8) { 56 int length = sb.length(); 57 if (length > 0) 58 sb.setLength(length - 1); 59 } else 60 sb.append(c); 61 } 62 text = sb.toString(); 63 } 64 return text; 65 } 66 67 public final String getRawText() 68 { 69 return rawText; 70 } 71 72 public final void setText(String s) {} 73 74 public final char charAt(int i) 75 { 76 return getText().charAt(i); 77 } 78 79 public final String substring(int beginIndex) 80 { 81 return getText().substring(beginIndex); 82 } 83 84 public final String substring(int beginIndex, int endIndex) 85 { 86 return getText().substring(beginIndex, endIndex); 87 } 88 89 public final String trim() 90 { 91 return getText().trim(); 92 } 93 94 public final int length() 95 { 96 return getText().length(); 97 } 98 99 public final byte[] getBytes(String encoding) throws UnsupportedEncodingException  100 { 101 return getText().getBytes(encoding); 102 } 103 104 public final boolean isBlank() 105 { 106 if (text == null) 107 text = getText(); 108 for (int i = text.length(); i-- > 0;) 109 if (!Character.isWhitespace(text.charAt(i))) 110 return false; 111 return true; 112 } 113 } 114 | Popular Tags |