Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
abstract class ConversorTexto { public void converterCaractere(char c) { // vazio } public void converterParagrafo() { // vazio } public void converterFonte(Fonte f) { // vazio } } class ConversorPDF extends ConversorTexto { public void converterCaractere(char c) { System.out.print("Caractere PDF"); } public void converterParagrafo() { System.out.print("Parágrafo PDF"); } public void converterFonte(Fonte f) { System.out.print("Fonte PDF"); } } class ConversorTeX extends ConversorTexto { public void converterCaractere(char c) { System.out.print("Caractere Tex"); } public void converterParagrafo() { System.out.print("Paragrafo Tex"); } public void converterFonte(Fonte f) { System.out.print("Fonte Tex"); } } class ConversorASCII extends ConversorTexto { public void converterCaractere(char c) { System.out.print("Caractere ASCII"); } } class LeitorRTF { private ConversorTexto conversor; LeitorRTF(ConversorTexto c) { this.conversor = c; } public void lerRTF() { List<Token> tokens = obterTokensDoTexto(); for (Token t : tokens) { if (t.getTipo() == Token.Tipo.CARACTERE) { conversor.converterCaractere(t.getCaractere()); } if (t.getTipo() == Token.Tipo.PARAGRAFO) { conversor.converterParagrafo(); } if (t.getTipo() == Token.Tipo.FONTE) { conversor.converterFonte(t.getFonte()); } } } public class Cliente { public static void main(String[] args) { ConversorTexto conversor; if (args[0].equals("pdf")) { conversor = new ConversorPDF(); } else if (args[0].equals("tex")) { conversor = new ConversorTeX(); } else { conversor = new ConversorASCII(); } LeitorRTF leitor = new LeitorRTF(conversor); leitor.lerRTF(); } }
Compartilhar