View Javadoc

1   package net.sf.cantina.decorator;
2   
3   import net.sf.cantina.Document;
4   import net.sf.cantina.util.XmlHelper;
5   import org.apache.log4j.Logger;
6   
7   import java.io.UnsupportedEncodingException;
8   import java.util.Locale;
9   
10  /***
11   * @author Stephane JAIS
12   */
13  public class EscapeXmlDecorator
14    extends DocumentDecorator
15  {
16    private static final Logger logger = Logger.getLogger(EscapeXmlDecorator.class);
17  
18    public EscapeXmlDecorator(Document d)
19    {
20      super(d);
21    }
22  
23    public byte[] getContent(Locale l)
24    {
25      byte[] content = getDocument().getContent(l);
26      try
27      {
28        String str = new String(content, "utf-8");
29        return XmlHelper.escapeXml(str).getBytes("utf-8");
30      } catch (UnsupportedEncodingException e)
31      {
32        logger.warn("Could not escape XML for document [" + getDocument().getDocumentId() + "]", e);
33        return getDocument().getContent(l);
34      }
35    }
36  
37    public String getContentAsString(Locale l)
38      throws Exception
39    {
40      return XmlHelper.escapeXml(getDocument().getContentAsString(l));
41    }
42  }