home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / browser / tools / javasearch / javasearch.java < prev    next >
Text File  |  1995-08-11  |  4KB  |  125 lines

  1. /*
  2.  * @(#)javasearch.java    1.11 95/03/14 David A. Brown
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package browser.tools.JavaSearch;
  21.  
  22. import java.io.*;
  23.  
  24. /**
  25.  *  javasearch:  Simple command-line interface to perform searches
  26.  *              on an JavaSearch database.
  27.  *
  28.  *    This is intended to be an example of how to use the
  29.  *    Database, Searcher, DocList and Doc classes in YOUR
  30.  *    application to search an JavaSearch database.
  31.  */
  32. class javasearch {
  33.  
  34.     public static void main(String args[]) {
  35.         Database db = null;
  36.  
  37.     if (args.length < 2) {
  38.         System.out.println("  Usage:   java javasearch database word word ...");
  39.         return;
  40.     }
  41.  
  42.     String dbname = args[0];
  43.     String words = args[1];
  44.     for (int i=2; i<args.length; i++) {
  45.         words = words + " " + args[i];
  46.     }
  47.     //System.out.println("javasearch:  dbname "+dbname+
  48.     //           "  search string '"+words+"'.");
  49.  
  50.     //
  51.     // Do a search!
  52.     //
  53.  
  54.         try {
  55.         db = Database.OpenDatabase(dbname);
  56.         } catch (IOException e) {
  57.             System.out.println("ERROR: Failed to open " + e.getMessage());
  58.             return;
  59.         }
  60.     Searcher searcher = new Searcher(db);
  61.     DocList resultDL = searcher.doSearch(words);
  62.     
  63.     //
  64.     // Display the results
  65.     //
  66.  
  67.     System.out.println("\n*** javasearch:  Here's the results: ***\n");
  68.     if (resultDL == null) {
  69.         System.out.println("  No documents matched this query!");
  70.         return;
  71.     }
  72.  
  73.     // Ok!  We got some results!
  74.     resultDL.dump();      // Just dump out the result list
  75.  
  76.     // Now let the user look at some documents:
  77.     while (true) {
  78.         System.out.print("\nEnter a Doc # to view, or 'q' to quit: ");
  79.         System.out.flush();
  80.         String s = new DataInputStream(System.in).readLine();
  81.         if (s.equals("Q") || s.equals("q")) {
  82.         break;
  83.         }
  84.         int docNum = Integer.parseInt(s);
  85.         System.out.println("\nLooking up Doc # "+docNum+"!");
  86.         
  87.         Doc doc = resultDL.getDocAt(docNum);
  88.         
  89.         // The headline:
  90.         System.out.println(" - This doc's headline is: "+doc.headline);
  91.         
  92.         // The URL.  Only valid if our Database's docURLPrefix != null
  93.         if (db.docURLPrefix != null) {
  94.         String fullUrl = db.docURLPrefix + doc.filename;
  95.         System.out.println(" - The full URL for this document is: "+
  96.                    fullUrl);
  97.         }
  98.         else {
  99.         System.out.println(" - This database does not have URL information.");
  100.         }
  101.         
  102.         // The filename.
  103.         String fullPath = db.docPathPrefix + doc.filename;
  104.         System.out.println(" - The full filename for this document is: "+
  105.                    fullPath);
  106.         
  107.         // Finally, print out the file!
  108.         System.out.println("Here's the file!\n-----");
  109.         try {
  110.         FileInputStream in = new FileInputStream(fullPath);
  111.         int c;
  112.         while((c = in.read()) != -1) {
  113.             System.out.write(c);
  114.         }
  115.         in.close();
  116.         }
  117.         catch (IOException e) {
  118.         System.out.println("[Guess this file doesn't exist...]");
  119.         }
  120.         System.out.println("-----");
  121.     }
  122.     }
  123.  
  124. }
  125.