home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2001 / MacHack 2001.toast / pc / The Hacks / Mentat / Archive.java < prev    next >
Encoding:
Java Source  |  2001-06-23  |  3.6 KB  |  113 lines

  1. //
  2. //  Archive.java
  3. //  Mentat
  4. //
  5. //    API:
  6. //
  7. //        (all accessors for [textResponse, key, value, arch])
  8. //        predicates: keyPresent(String), errorText()
  9. //
  10. //        methods: String lookupValue(String), addEntry(String, String), removeEntry(String),
  11. //                    returnToDefaults(), saveArch(ObjectOutputStream), loadArch(ObjectInputStream)
  12. //
  13. //  Created by sziegler on Wed Jun 20 2001.
  14. //  Copyright (c) 2001 Wormsign Code Implementations. All rights reserved fnord.
  15. /*
  16. This file and its intellectual contents are considered property of the creator and are to be treated as such with respect to use in other applications.  Any use of this software for any purpose whatsoever must have explicit permission from the author of the file.  This code is part of an ongoing development process for future possible products, and so is considered private property.
  17. Do not use without permission.  Author: Scott C. Ziegler <Aslan@Narnia.net>
  18. */
  19.  
  20. import com.apple.cocoa.foundation.*;
  21. import com.apple.cocoa.application.*;
  22.  
  23. import java.awt.*;
  24. import java.io.*;
  25. import java.util.*;
  26.  
  27. public class Archive {
  28.     
  29.     public static final String DEFAULT_KEY = "fnord";
  30.     public static final String DEFAULT_VALUE = "a small powerful thing.";
  31.     public static final String NOT_FOUND = "<Entry Not Found!>";
  32.     
  33.     // Data Members
  34.     
  35.     String name;
  36.     
  37.     boolean    textResponse;
  38.     String    keyStr;
  39.     String    valueStr;
  40.     Hashtable    arch;
  41.     
  42.     // Constructors
  43.     
  44.     public Archive() {
  45.         name = new String("");
  46.         textResponse = true;
  47.         keyStr = new String(DEFAULT_KEY);
  48.         valueStr = new String(DEFAULT_VALUE);
  49.         arch = new Hashtable(100);
  50.         }
  51.         
  52.     // Selectors
  53.     
  54.     public String getName() { return name; } 
  55.     public boolean getTextResponse() { return textResponse; }
  56.     public String getKey() { return keyStr; }
  57.     public String getValue() { return valueStr; }
  58.     public Hashtable getArch() { return arch; }
  59.     
  60.     // Mutators
  61.     
  62.     public void setName(String nm) { name = nm; }
  63.     public void setTextResponse(boolean response) { textResponse = response; }
  64.     public void setKey(String newKey) { keyStr = newKey; }
  65.     public void setValue(String newValue) { valueStr = newValue; }
  66.     public void setArch(Hashtable newArch) { arch = newArch; }
  67.     
  68.     // Predicates
  69.     
  70.     public boolean keyPresent(String key) { return arch.containsKey(key); }
  71.     public boolean errorText() { return textResponse; }
  72.     
  73.     // Member Functions
  74.     
  75.     public String lookupValue(String key) { 
  76.         valueStr = (String)arch.get(key);
  77.         if (valueStr != null) return valueStr;
  78.         else if (textResponse) { return NOT_FOUND; }
  79.              else { return null; }
  80.         }
  81.         
  82.     public void addEntry(String key, String value) { arch.put(key, value); }
  83.         
  84.     public void removeEntry(String key) { arch.remove(key); }
  85.     
  86.     public void returnToDefaults() {
  87.         keyStr = DEFAULT_KEY;
  88.         valueStr = DEFAULT_VALUE;
  89.         arch.clear();
  90.         }
  91.         
  92.     public void saveArch(ObjectOutputStream oos) {
  93.         try {
  94.             oos.writeObject(arch);
  95.             }
  96.         catch (IOException ioe) { 
  97.             if (textResponse) { System.out.println("Error: " + ioe.toString()); } 
  98.             }
  99.         }
  100.         
  101.     public void loadArch(ObjectInputStream ois) {
  102.         try {
  103.             arch = (Hashtable)ois.readObject();
  104.             }
  105.         catch (IOException ioe) { 
  106.             if (textResponse) { System.out.println("Error: " + ioe.toString());}
  107.             }
  108.         catch (ClassNotFoundException cnfe) { 
  109.             if (textResponse) { System.out.println("Error: " + cnfe.toString());}
  110.             }
  111.         }
  112.     }
  113.