1 15 package org.apache.hivemind.service; 16 17 import java.text.MessageFormat ; 18 19 24 25 public class BodyBuilder 26 { 27 30 private static final int DEFAULT_LENGTH = 200; 31 32 private static final char QUOTE = '"'; 33 34 private StringBuffer _buffer = new StringBuffer (DEFAULT_LENGTH); 35 36 private static final String INDENT = " "; 37 38 private int _nestingDepth = 0; 39 40 private boolean _atNewLine = true; 41 42 45 public void clear() 46 { 47 _nestingDepth = 0; 48 _atNewLine = true; 49 _buffer.setLength(0); 50 } 51 52 55 public void add(String text) 56 { 57 indent(); 58 59 _buffer.append(text); 60 } 61 62 71 72 public void add(String pattern, Object [] arguments) 73 { 74 add(MessageFormat.format(pattern, arguments)); 75 } 76 77 80 81 public void add(String pattern, Object arg0) 82 { 83 add(pattern, new Object [] 84 { arg0 }); 85 } 86 87 90 91 public void add(String pattern, Object arg0, Object arg1) 92 { 93 add(pattern, new Object [] 94 { arg0, arg1 }); 95 } 96 97 100 101 public void add(String pattern, Object arg0, Object arg1, Object arg2) 102 { 103 add(pattern, new Object [] 104 { arg0, arg1, arg2 }); 105 } 106 107 116 117 public void addln(String pattern, Object [] arguments) 118 { 119 addln(MessageFormat.format(pattern, arguments)); 120 } 121 122 125 126 public void addln(String pattern, Object arg0) 127 { 128 addln(pattern, new Object [] 129 { arg0 }); 130 } 131 132 135 136 public void addln(String pattern, Object arg0, Object arg1) 137 { 138 addln(pattern, new Object [] 139 { arg0, arg1 }); 140 } 141 142 145 146 public void addln(String pattern, Object arg0, Object arg1, Object arg2) 147 { 148 addln(pattern, new Object [] 149 { arg0, arg1, arg2 }); 150 } 151 152 156 157 public void addQuoted(String text) 158 { 159 indent(); 160 _buffer.append(QUOTE); 161 _buffer.append(text); 162 _buffer.append(QUOTE); 163 } 164 165 168 169 public void addln(String text) 170 { 171 add(text); 172 173 newline(); 174 } 175 176 private void newline() 177 { 178 _buffer.append("\n"); 179 _atNewLine = true; 180 } 181 182 185 public void begin() 186 { 187 if (!_atNewLine) 188 newline(); 189 190 indent(); 191 _buffer.append("{"); 192 newline(); 193 194 _nestingDepth++; 195 } 196 197 200 public void end() 201 { 202 if (!_atNewLine) 203 newline(); 204 205 _nestingDepth--; 206 207 indent(); 208 _buffer.append("}"); 209 210 newline(); 211 } 212 213 private void indent() 214 { 215 if (_atNewLine) 216 { 217 for (int i = 0; i < _nestingDepth; i++) 218 _buffer.append(INDENT); 219 220 _atNewLine = false; 221 } 222 } 223 224 227 public String toString() 228 { 229 return _buffer.toString(); 230 } 231 } | Popular Tags |