class abstract class TextConverter{
abstract void convertCharacter(char c);
abstract void convertParagraph();
public void append(char c){
class ASCIIConverter extends TextConverter{
object void convertCharacter(char c){
char asciiChar = new Character(c).charValue();
asciiTextObj.append(asciiChar);
void convertParagraph(){}
public char getNextToken(){
private static final char EOF='0';
RTFReader(TextConverter obj){
void parseRTF(Document doc){
while ((t=doc.getNextToken())!= EOF){
case CHAR: builder.convertCharacter(t);
case PARA: builder.convertParagraph();
void createASCIIText(Document doc){
ASCIIConverter asciiBuilder = new ASCIIConverter();
RTFReader rtfReader = new RTFReader(asciiBuilder);
ASCIIText asciiText = asciiBuilder.getResult();
public static void main(String args[]){
Client client=new Client();
Document doc=new Document();
client.createASCIIText(doc);
system.out.println("This is an example of Builder Pattern");