org.theospi.portfolio.presentation.export.StreamedPage.java Source code

Java tutorial

Introduction

Here is the source code for org.theospi.portfolio.presentation.export.StreamedPage.java

Source

/**********************************************************************************
* $URL:https://source.sakaiproject.org/svn/osp/trunk/presentation/api-impl/src/java/org/theospi/portfolio/presentation/export/StreamedPage.java $
* $Id:StreamedPage.java 9134 2006-05-08 20:28:42Z chmaurer@iupui.edu $
***********************************************************************************
*
 * Copyright (c) 2005, 2006, 2007, 2008 The Sakai Foundation
 *
 * Licensed under the Educational Community License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.opensource.org/licenses/ECL-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
*
**********************************************************************************/
package org.theospi.portfolio.presentation.export;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import websphinx.Access;
import websphinx.Link;
import websphinx.Page;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class StreamedPage extends Page {
    protected final transient Log logger = LogFactory.getLog(getClass());

    private Link link;

    public StreamedPage(Link link) {
        super("Streamed");
        this.link = link;
    }

    /**
     * Get the Link that points to this page.
     *
     * @return the Link object that was used to download this page.
     */
    public Link getOrigin() {
        return link;
    }

    public InputStream getStream() throws IOException {
        URLConnection conn = Access.getAccess().openConnection(link);

        // fetch and store final redirected URL and response headers
        InputStream returned = conn.getInputStream();

        this.setContentEncoding(conn.getContentEncoding());
        this.setContentType(conn.getContentType());
        this.setExpiration(conn.getExpiration());
        this.setLastModified(conn.getLastModified());

        return returned;
    }

    /**
     * Get the URL.
     *
     * @return the URL of the link that was used to download this page
     */
    public URL getURL() {
        try {
            return new URL(PortfolioMirror.escapeUrl(getOrigin().getURL().toString()));
        } catch (IOException e) {
            return getOrigin().getURL();
        }
    }
}