www.pudn.com > jnp-src.rar > FingerURLConnection.java


/*
 * Java Network Programming, Second Edition
 * Merlin Hughes, Michael Shoffner, Derek Hamner
 * Manning Publications Company; ISBN 188477749X
 *
 * http://nitric.com/jnp/
 *
 * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner;
 * all rights reserved; see license.txt for details.
 */

import java.io.*; 
import java.net.*; 
import java.util.*; 
 
public class FingerURLConnection extends URLConnection { 
  public FingerURLConnection (URL url) { 
    super (url); 
  } 
 
  protected InputStream in; 
   
  public synchronized void connect () throws IOException { 
    if (!connected) { 
      StringBuffer query = new StringBuffer (); 
      String file = url.getFile ().substring (1); 
      StringTokenizer files = new StringTokenizer (file, "/", true); 
      while (files.hasMoreTokens ()) 
        query.insert (0, files.nextToken ().replace ('/', '@')); 
      Finger finger = new Finger 
        (query.toString (), url.getHost (), 
         url.getPort (), "verbose".equalsIgnoreCase (url.getRef ())); 
      Reader reader = finger.finger (); 
      in = new ReaderInputStream (reader, "latin1"); 
      connected = true; 
    } 
  } 
 
  public InputStream getInputStream () throws IOException { 
    connect (); 
    return in; 
  } 
 
  public String getContentType () { 
    return "text/plain"; 
  } 
}