/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal; import java.io.UnsupportedEncodingException; import org.joda.time.DateTime; import com.enonic.cms.core.portal.rendering.RenderedPageResult; import com.enonic.cms.core.portal.rendering.RenderedWindowResult; import com.enonic.cms.core.structure.SitePath; /** * May 7, 2009 */ public class PortalResponse { private String contentEncoding = "UTF-8"; private String content; private String httpContentType; private DateTime expirationTime; private SitePath forwardToSitePath; private RedirectInstruction redirectInstruction; public static PortalResponse createContent( RenderedWindowResult renderedWindowResult ) { PortalResponse response = new PortalResponse(); response.content = renderedWindowResult.getContent(); response.httpContentType = renderedWindowResult.getHttpContentType(); if ( renderedWindowResult.getContentEncoding() != null ) { response.contentEncoding = renderedWindowResult.getContentEncoding(); } if ( renderedWindowResult.getExpirationTimeInCache() != null ) { response.expirationTime = renderedWindowResult.getExpirationTimeInCache(); } else { response.expirationTime = new DateTime(); } return response; } public static PortalResponse createContent( RenderedPageResult renderedPageResult ) { PortalResponse response = new PortalResponse(); response.content = renderedPageResult.getContent(); response.httpContentType = renderedPageResult.getHttpContentType(); if ( renderedPageResult.getContentEncoding() != null ) { response.contentEncoding = renderedPageResult.getContentEncoding(); } if ( renderedPageResult.getExpirationTime() != null ) { response.expirationTime = renderedPageResult.getExpirationTime(); } else { response.expirationTime = new DateTime(); } return response; } public static PortalResponse createForward( SitePath forwardToSitePath ) { PortalResponse response = new PortalResponse(); response.forwardToSitePath = forwardToSitePath; return response; } public static PortalResponse createRedirect( RedirectInstruction redirectInstruction ) { PortalResponse response = new PortalResponse(); response.redirectInstruction = redirectInstruction; return response; } public String getContent() { return content; } public byte[] getContentAsBytes() throws UnsupportedEncodingException { return content.getBytes( contentEncoding ); } public void setContent( String content ) { this.content = content; } public String getHttpContentType() { return httpContentType; } public boolean isForwardToSitePath() { return forwardToSitePath != null; } public SitePath getForwardToSitePath() { return forwardToSitePath; } public DateTime getExpirationTime() { return expirationTime; } public RedirectInstruction getRedirectInstruction() { return redirectInstruction; } public boolean hasRedirectInstruction() { return redirectInstruction != null; } }