001    package org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one or more
005     * contributor license agreements.  See the NOTICE file distributed with
006     * this work for additional information regarding copyright ownership.
007     * The ASF licenses this file to You under the Apache License, Version 2.0
008     * (the "License"); you may not use this file except in compliance with
009     * the License.  You may obtain a copy of the License at
010     *
011     *      http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing, software
014     * distributed under the License is distributed on an "AS IS" BASIS,
015     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016     * See the License for the specific language governing permissions and
017     * limitations under the License.
018     */
019    
020    /*
021     * Created 07.02.2003 16:00:00.
022     * $Id: VerbatimRenderer.java 644014 2008-04-02 19:36:26Z bommel $
023     */
024    
025    import org.apache.commons.logging.Log;
026    import org.apache.commons.logging.LogFactory;
027    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ESCAPE;
028    import org.apache.myfaces.tobago.util.ComponentUtil;
029    import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
030    import org.apache.myfaces.tobago.renderkit.util.RenderUtil;
031    
032    import javax.faces.component.UIComponent;
033    import javax.faces.context.FacesContext;
034    import javax.faces.context.ResponseWriter;
035    import java.io.IOException;
036    
037    public class VerbatimRenderer extends LayoutableRendererBase {
038    
039      private static final Log LOG = LogFactory.getLog(VerbatimRenderer.class);
040    
041      public void encodeEnd(FacesContext facesContext,
042          UIComponent component) throws IOException {
043    
044        LOG.info("HI! " + component.getClientId(facesContext), new Exception());
045    
046        ResponseWriter writer = facesContext.getResponseWriter();
047    
048        String value = RenderUtil.currentValue(component);
049        if (value == null) {
050          return;
051        }
052    
053        if (ComponentUtil.getBooleanAttribute(component, ATTR_ESCAPE)) {
054          writer.writeText(value, null);
055        } else {
056          writer.write(value);
057        }
058      }
059    }