/** * Licensed under the Artistic License; you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://displaytag.sourceforge.net/license.html * * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ package org.displaytag.decorator; import javax.servlet.jsp.PageContext; import org.apache.commons.lang.StringEscapeUtils; import org.displaytag.properties.MediaTypeEnum; /** * This takes the string that is passed in, and escapes html tags and entities. Only operates on "html" or "xml" media. * @author Fabrizio Giustina * @version $Revision$ ($Author$) */ public class EscapeXmlColumnDecorator implements DisplaytagColumnDecorator { /** * Instance used for the "escapeXml" tag attribute. */ public static final DisplaytagColumnDecorator INSTANCE = new EscapeXmlColumnDecorator(); /** * @see org.displaytag.decorator.DisplaytagColumnDecorator#decorate(Object, PageContext, MediaTypeEnum) */ public Object decorate(Object columnValue, PageContext pageContext, MediaTypeEnum media) { if (columnValue == null || (!media.equals(MediaTypeEnum.HTML) && !media.equals(MediaTypeEnum.XML))) { return columnValue; } return StringEscapeUtils.escapeXml(columnValue.toString()); } }