001         package com.croftsoft.core.util.cache;
002    
003         import java.io.*;
004         import java.net.*;
005    
006         /*********************************************************************
007         * A ContentAccessor that accesses the content via a URL.
008         *
009         * @version
010         *   1999-04-24
011         * @author
012         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
013         *********************************************************************/
014    
015         public class  URLContentAccessor
016           implements ContentAccessor, Serializable
017         //////////////////////////////////////////////////////////////////////
018         //////////////////////////////////////////////////////////////////////
019         {
020    
021         private static final long  serialVersionUID = 1L;
022    
023         protected String  urlName;
024    
025         //////////////////////////////////////////////////////////////////////
026         //////////////////////////////////////////////////////////////////////
027    
028         public  URLContentAccessor ( String  urlName )
029           throws MalformedURLException
030         //////////////////////////////////////////////////////////////////////
031         {
032           this.urlName = urlName;
033    
034    
035           // Test to see if valid URL.
036           new URL ( urlName );
037         }
038    
039         //////////////////////////////////////////////////////////////////////
040         //////////////////////////////////////////////////////////////////////
041    
042         public String  getURLName ( ) { return urlName; }
043    
044         //////////////////////////////////////////////////////////////////////
045         //////////////////////////////////////////////////////////////////////
046    
047         public InputStream  getInputStream ( ) throws IOException
048         //////////////////////////////////////////////////////////////////////
049         {
050           URL  url = null;
051    
052           try
053           {
054             url = new URL ( urlName );
055           }
056           catch ( MalformedURLException  ex )
057           {
058             return null;
059           }
060    
061           URLConnection  urlConnection = url.openConnection ( );
062    
063           if ( urlConnection instanceof HttpURLConnection )
064           {
065             HttpURLConnection  httpURLConnection
066               = ( HttpURLConnection ) urlConnection;
067    
068             if ( httpURLConnection.getResponseCode ( )
069               != HttpURLConnection.HTTP_OK )
070             {
071               return null;
072             }
073           }
074    
075           return urlConnection.getInputStream ( );
076         }
077    
078         //////////////////////////////////////////////////////////////////////
079         //////////////////////////////////////////////////////////////////////
080         }