| 1 package gnu.text; 2 import java.text.Format ; 3 import java.text.FieldPosition ; 4 import java.io.Writer ; 5 6 public class CaseConvertFormat extends ReportFormat 7 { 8 char code; 13 14 Format baseFormat; 15 16 public CaseConvertFormat(Format baseFormat, char action) 17 { 18 this.baseFormat = baseFormat; 19 this.code = action; 20 } 21 22 public Format getBaseFormat() { return baseFormat; } 23 public void setBaseFormat(Format baseFormat) { this.baseFormat = baseFormat;} 24 25 public int format(Object [] args, int start, Writer dst, FieldPosition fpos) 26 throws java.io.IOException  27 { 28 StringBuffer sbuf = new StringBuffer (100); 29 int result = format(baseFormat, args, start, sbuf, fpos); 30 int len = sbuf.length(); 31 char prev = ' '; 32 for (int i = 0; i < len; i++) 33 { 34 char ch = sbuf.charAt(i); 35 if (code == 'U') 36 ch = Character.toUpperCase(ch); 37 else if ((code == 'T' && i == 0) 38 || (code == 'C' && ! Character.isLetterOrDigit(prev))) 39 ch = Character.toTitleCase(ch); 40 else 41 ch = Character.toLowerCase(ch); 42 prev = ch; 43 dst.write(ch); 44 } 45 return result; 46 } 47 } 48 | Popular Tags |