1 package org.w3c.tidy; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 7 8 /** 9 * @author fgiust 10 * @version $Revision: 779 $ ($Author: fgiust $) 11 */ 12 public class TestMessageListener implements TidyMessageListener 13 { 14 15 /** 16 * filename. 17 */ 18 private String filename; 19 20 /** 21 * Contains all the received TidyMessages. 22 */ 23 private List received = new ArrayList(); 24 25 /** 26 * Instantiate a new messag listener for the given test file. 27 * @param filename actual test case name 28 */ 29 public TestMessageListener(String filename) 30 { 31 this.filename = filename; 32 } 33 34 /** 35 * @see org.w3c.tidy.TidyMessageListener#messageReceived(org.w3c.tidy.TidyMessage) 36 */ 37 public void messageReceived(TidyMessage message) 38 { 39 received.add(message); 40 } 41 42 /** 43 * Write received messages as xml. 44 * @return xml containing message details. 45 */ 46 public String messagesToXml() 47 { 48 StringBuffer buffer = new StringBuffer(); 49 50 buffer.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"); 51 buffer.append("<!-- expected messages for test "); 52 buffer.append(this.filename); 53 buffer.append("-->\n"); 54 55 buffer.append("<messages>\n"); 56 Iterator iterator = received.iterator(); 57 while (iterator.hasNext()) 58 { 59 TidyMessage msg = (TidyMessage) iterator.next(); 60 buffer.append(" <message>\n"); 61 62 buffer.append(" <code>"); 63 buffer.append(msg.getErrorCode()); 64 buffer.append("</code>\n"); 65 66 buffer.append(" <level>"); 67 buffer.append(msg.getLevel().getCode()); 68 buffer.append("</level>\n"); 69 70 buffer.append(" <line>"); 71 buffer.append(msg.getLine()); 72 buffer.append("</line>\n"); 73 74 buffer.append(" <column>"); 75 buffer.append(msg.getColumn()); 76 buffer.append("</column>\n"); 77 78 buffer.append(" <text><![CDATA["); 79 buffer.append(msg.getMessage()); 80 buffer.append("]]></text>\n"); 81 82 buffer.append(" </message>\n"); 83 } 84 85 buffer.append("</messages>\n"); 86 87 return buffer.toString(); 88 } 89 90 /** 91 * Getter for <code>filename</code>. 92 * @return Returns the filename. 93 */ 94 protected String getFilename() 95 { 96 return this.filename; 97 } 98 99 /** 100 * Returns the list of received messages. 101 * @return Returns the received messages. 102 */ 103 public List getReceived() 104 { 105 return this.received; 106 } 107 108 }