All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.jetty.xslt.tools.SourceFetchExtension Maven / Gradle / Ivy

The newest version!
//
//  ========================================================================
//  Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd.
//  ------------------------------------------------------------------------
//  All rights reserved. This program and the accompanying materials
//  are made available under the terms of the Eclipse Public License v1.0
//  and Apache License v2.0 which accompanies this distribution.
//
//      The Eclipse Public License is available at
//      http://www.eclipse.org/legal/epl-v10.html
//
//      The Apache License v2.0 is available at
//      http://www.opensource.org/licenses/apache2.0.php
//
//  You may elect to redistribute this code under either of these licenses.
//  ========================================================================
//

package org.eclipse.jetty.xslt.tools;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import java.net.URL;


public class SourceFetchExtension extends AbstractFetchException
{
    /* ------------------------------------------------------------------- */
    public static int bufferSize = 64*1024;
    
    public static String fetch( String location ) throws Exception
    {   
        
        File fetchFile = checkCache( location );
        
        if ( fetchFile == null )
        {
            URL url = new URL(location);
            fetchFile = cache(location,url.openStream());
        }

        return toString(new FileInputStream(fetchFile));
    }
    
    /* ------------------------------------------------------------ */
    /** Read input stream to string.
     */
    public static String toString(InputStream in)
        throws IOException
    {
        return toString(in,null);
    }
    
    /* ------------------------------------------------------------ */
    /** Read input stream to string.
     */
    public static String toString(InputStream in,String encoding)
        throws IOException
    {
        StringWriter writer=new StringWriter();
        InputStreamReader reader = encoding==null?new InputStreamReader(in):new InputStreamReader(in,encoding);
        
        copy(reader,writer);
        return writer.toString();
    }
    
    
    /* ------------------------------------------------------------------- */
    /** Copy Stream in to Stream out until EOF or exception.
     */
    public static void copy(InputStream in, OutputStream out)
         throws IOException
    {
        copy(in,out,-1);
    }
    
    /* ------------------------------------------------------------------- */
    /** Copy Reader to Writer out until EOF or exception.
     */
    public static void copy(Reader in, Writer out)
         throws IOException
    {
        copy(in,out,-1);
    }
    
    /* ------------------------------------------------------------------- */
    /** Copy Stream in to Stream for byteCount bytes or until EOF or exception.
     */
    public static void copy(InputStream in,
                            OutputStream out,
                            long byteCount)
         throws IOException
    {     
        byte buffer[] = new byte[bufferSize];
        int len=bufferSize;
        
        if (byteCount>=0)
        {
            while (byteCount>0)
            {
                int max = byteCount=0)
        {
            while (byteCount>0)
            {
                if (byteCount




© 2015 - 2025 Weber Informatics LLC | Privacy Policy