home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / GameLibrary.java < prev    next >
Text File  |  1997-07-03  |  4KB  |  150 lines

  1. package borland.samples.apps.chess.server;
  2.  
  3. import java.util.*;
  4. import java.io.*;
  5.  
  6. class GameLibrary
  7. {
  8.   static Hashtable dir = new Hashtable();
  9.   File library;
  10.   String libraryName;
  11.   String [] dirlist;
  12.   String gameList = null;
  13.   GameLibrary parent;
  14.  
  15.   public GameLibrary(String directoryName,GameLibrary parent ) {
  16.     try {
  17.     if (directoryName == null && parent == null)
  18.         directoryName = "Library";
  19.     library = new File(directoryName);
  20.     if (!library.isDirectory())
  21.       System.out.println( library.getAbsolutePath()  + " is not a directory");
  22.     libraryName = directoryName;
  23.     dirlist = library.list();
  24.     this.parent = parent;
  25.     }
  26.     catch (Exception e) {
  27.       e.printStackTrace();
  28.     }  
  29.   }
  30.  
  31.   public String Get(String gameName) {
  32.     if (gameName.startsWith(".") )
  33.       return getList();
  34.     else
  35.       return getGame(gameName);
  36.   }
  37.  
  38.   public String getList() {
  39.     if (gameList == null)
  40.     if (dirlist != null) {
  41.       if (parent == null)
  42.         gameList = "M" + dirlist[0] + "?";
  43.       else
  44.         gameList = "M..?M" + dirlist[0] + "?";
  45.       for (int i=1; i<dirlist.length;++i) {
  46.         gameList = gameList + "M" + dirlist[i] + "?";
  47.       }
  48.     }
  49.     else
  50.       System.out.println("Library directory is empty");
  51.     return gameList;
  52.   }
  53.  
  54.   String getLibraryName() {
  55.      return libraryName;
  56.     // if (parent == null)
  57.     //    return libraryName;
  58.     // else
  59.     //    return parent.getLibraryName() + "\\" + libraryName;
  60.   }
  61.   //return the contents of the file
  62.   static public GameLibrary getLibrary(String filename,GameLibrary gl){
  63.  
  64.     try {
  65.        if (gl ==  null) {
  66.          System.out.println("GameLibrary is null");
  67.          if (filename != null && GameLibrary.dir.containsKey(filename))
  68.            return (GameLibrary) GameLibrary.dir.get(filename);
  69.          else
  70.            return new GameLibrary (filename,null);
  71.       }
  72.       if (filename.equals(".."))    {
  73.          System.out.println("filename = ..");
  74.          if (gl.parent != null)
  75.             return gl.parent;
  76.          else
  77.             return gl;
  78.       }
  79.       if (filename.equals(".")) {
  80.          System.out.println("filename = ..");
  81.          return gl   ;
  82.       }
  83.       File gamefile = new File(gl.getLibraryName(),filename);
  84.       if (gamefile == null )
  85.          System.out.println("gamefile is null");
  86.       else {
  87.         if (gamefile.isDirectory()) {
  88.           GameLibrary g ;
  89.           String dirKey =  gl.getLibraryName() + "\\" + filename;
  90.           if (GameLibrary.dir.containsKey(dirKey))
  91.             g =(GameLibrary) GameLibrary.dir.get(dirKey);
  92.           else {
  93.             g = new GameLibrary(dirKey,gl);
  94.             GameLibrary.dir.put(g,dirKey);
  95.           }
  96.           return g;
  97.         }
  98.       }
  99.     }
  100.     catch (Exception e) {System.out.println("GameLibrary.getLibrary " + e);}
  101.     return gl;
  102.   }
  103.  
  104.   public String getGame(String filename){
  105.     System.out.println("getGame" + filename);
  106.     FileInputStream fs = null;
  107.     String moves = "";
  108.     try {
  109.       File gamefile = new File(getLibraryName(),filename);
  110.       if (gamefile != null) {
  111.         if (gamefile.isDirectory()) {
  112.           return null;
  113.         }
  114.         else {
  115.           fs = new FileInputStream(gamefile) ;
  116.           DataInputStream ds = new DataInputStream(fs);
  117.           InputStreamReader isr  = new InputStreamReader(ds);
  118.           BufferedReader br = new BufferedReader(isr);
  119.           try {
  120.  
  121.         ///    int offset = 0;
  122.          //   int arraySize = 1024;
  123.          //   byte moveBytes[] = new byte[1024];
  124.          //   int  length = ds.read(moveBytes,offset,arraySize);
  125.          //   while (length > 0)   {
  126.          //     moves =  moves + new String(moveBytes,255,0,length-1);
  127.            //   length = ds.read(moveBytes,offset,arraySize);
  128.  
  129.          //   }
  130.             String line = br.readLine() ;
  131.             moves = "";
  132.             while (line != null )  {
  133.               moves =  moves + line + " ";
  134.             line = br.readLine()  ;
  135.  
  136.             }
  137.           }
  138.           catch (IOException e) {}
  139.           fs.close();
  140.         }
  141.       }
  142.       else
  143.         System.out.println("nullFile " +  getLibraryName() + " " + filename);
  144.     }
  145.     catch (Exception e) {System.out.println("GameLibrary.getGame " + e);}
  146.     return moves;
  147.    }
  148.  
  149. }
  150.