Package net.sf.jportlet.impl

Source Code of net.sf.jportlet.impl.PortletResponseImpl

/*
* Created on 10-Mar-2003
*/
package net.sf.jportlet.impl;

import java.io.PrintWriter;
import java.io.StringWriter;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

import net.sf.jportlet.portlet.Portlet.Mode;
import net.sf.jportlet.portlet.PortletResponse;
import net.sf.jportlet.portlet.PortletURI;
import net.sf.jportlet.portlet.PortletWindow.State;
import net.sf.jportlet.portlet.application.PortletProxy;
import net.sf.jportlet.portlet.descriptor.PortletDescriptor;


/**
* Implementation of {@link net.sf.jportlet.portlet.PortletResponse}
*
* @author <a href="mailto:tchbansi@sourceforge.net">Herve Tchepannou</a>
*/
public class PortletResponseImpl
    extends HttpServletResponseWrapper
    implements PortletResponse
{
    //~ Instance fields --------------------------------------------------------

    private StringWriter        _buffer = new StringWriter(  );
    private HttpServletResponse _httpResponse;
    private String              _namespacePrefix;
    private String              _pathPrefix;
    private PortletRequestImpl  _portletRequest;
    private PortletProxy        _proxy;
    private PrintWriter         _writer = new PrintWriter( _buffer );

    //~ Constructors -----------------------------------------------------------

    public PortletResponseImpl( PortletProxy        proxy,
                                PortletRequestImpl  portletRequest,
                                HttpServletResponse httpResponse )
    {
        super( httpResponse );

        PortletDescriptor descriptor = proxy.getDescriptor(  );
        _proxy           = proxy;
        _portletRequest  = portletRequest;
        _httpResponse    = httpResponse;
        _pathPrefix      = descriptor.getContextPath(  );
        _namespacePrefix = "_" + descriptor.getName(  ) + "_";
    }

    //~ Methods ----------------------------------------------------------------

    /**
     * @see net.sf.jportlet.portlet.PortletResponse#createURI()
     */
    public PortletURI createURI(  )
    {
        return new PortletURIImpl( _portletRequest, this );
    }

    /**
     * @see net.sf.jportlet.portlet.PortletResponse#createURI(net.sf.jportlet.portlet.Portlet.Mode, net.sf.jportlet.portlet.PortletWindow.State)
     */
    public PortletURI createURI( Mode  mode,
                                 State state )
    {
        PortletURI uri = new PortletURIImpl( _portletRequest, this );
        uri.setMode( mode );
        uri.setState( state );
        return uri;
    }
  /**
   * @see net.sf.jportlet.portlet.PortletResponse#createURI(java.lang.String)
   */
  public PortletURI createURI(String action) {
    PortletURIImpl uri = new PortletURIImpl( _portletRequest, this );
    uri.setAction( action );
    return uri;
  }

    /**
     * @see net.sf.jportlet.portlet.PortletResponse#encodeNamespace(java.lang.String)
     */
    public String encodeNamespace( String name )
    {
        return _namespacePrefix + name;
    }

    /**
     * @see javax.servlet.http.HttpServletResponse#encodeURL(java.lang.String)
     */
    public String encodeURL( String path )
    {
        return super.encodeURL( _pathPrefix + path );
    }

    public StringBuffer getBuffer(  )
    {
        return _buffer.getBuffer(  );
    }

    /**
     * @return HttpServletResponse
     */
    public HttpServletResponse getHttpResponse(  )
    {
        return _httpResponse;
    }

    /**
     * @return PortletProxy
     */
    public PortletProxy getProxy(  )
    {
        return _proxy;
    }

    /**
     *
     * @see javax.servlet.ServletResponse#getWriter()
     */
    public PrintWriter getWriter(  )
    {
        return _writer;
    }

}
TOP

Related Classes of net.sf.jportlet.impl.PortletResponseImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.