home *** CD-ROM | disk | FTP | other *** search
/ Popular Software (Premium Edition) / mycd.iso / INTERNET / NETSCAP4.06 / CP32E406.EXE / nav40.z / ifc11.jar / netscape / constructor / TargetProxyManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-13  |  3.2 KB  |  83 lines

  1. package netscape.constructor;
  2.  
  3. import netscape.application.Application;
  4. import netscape.application.Target;
  5. import netscape.application.TargetChain;
  6. import netscape.util.ClassInfo;
  7. import netscape.util.Codable;
  8. import netscape.util.CodingException;
  9. import netscape.util.Decoder;
  10. import netscape.util.Encoder;
  11. import netscape.util.Enumeration;
  12. import netscape.util.Hashtable;
  13.  
  14. public class TargetProxyManager implements Codable {
  15.    Hashtable targets;
  16.    boolean neverReplace;
  17.    boolean hasSingleTarget;
  18.    static final String TARGETS_KEY = "targets";
  19.    public static final String SINGLE_TARGET_PROXY_KEY = "__nEdEtCoDe";
  20.    public static final String APPLICATION_TARGET_PROXY_KEY = "__APPLICATION__";
  21.    public static final String TARGET_CHAIN_TARGET_PROXY_KEY = "__TARGETCHAIN__";
  22.    public static final String NEVER_REPLACE_KEY = "__nEdEtCoDeNonReplacing";
  23.  
  24.    public Hashtable targets() {
  25.       if (this.targets == null) {
  26.          this.targets = new Hashtable();
  27.       }
  28.  
  29.       return this.targets;
  30.    }
  31.  
  32.    public void setTargets(Hashtable var1) {
  33.       this.targets().clear();
  34.       if (var1 != null) {
  35.          this.neverReplace = var1.containsKey("__nEdEtCoDeNonReplacing");
  36.          if (!this.neverReplace) {
  37.             Enumeration var2 = var1.keys();
  38.  
  39.             while(var2.hasMoreElements()) {
  40.                Object var3 = var2.nextElement();
  41.                if (var1.get(var3) instanceof Target) {
  42.                   this.targets.put(var3, var1.get(var3));
  43.                } else {
  44.                   System.out.println("TargetProxyManager: setTargets: Non-Target object found, will not be added: name = " + var3 + "\n, object = " + var1.get(var3));
  45.                }
  46.             }
  47.  
  48.             this.hasSingleTarget = this.targets.containsKey("__nEdEtCoDe");
  49.          }
  50.       }
  51.    }
  52.  
  53.    public Target targetNamed(String var1) {
  54.       if (this.targets != null && !this.neverReplace) {
  55.          if ("__APPLICATION__".equals(var1) && !this.targets.containsKey("__APPLICATION__")) {
  56.             return Application.application() instanceof Target ? (Target)Application.application() : null;
  57.          } else if ("__TARGETCHAIN__".equals(var1) && !this.targets.containsKey("__TARGETCHAIN__")) {
  58.             return TargetChain.applicationChain();
  59.          } else {
  60.             return this.hasSingleTarget ? (Target)this.targets.get("__nEdEtCoDe") : (Target)this.targets.get(var1);
  61.          }
  62.       } else {
  63.          return null;
  64.       }
  65.    }
  66.  
  67.    public void describeClassInfo(ClassInfo var1) {
  68.       var1.addClass("netscape.constructor.TargetProxyManager", 1);
  69.       var1.addField("targets", (byte)18);
  70.    }
  71.  
  72.    public void encode(Encoder var1) throws CodingException {
  73.       var1.encodeObject("targets", this.targets);
  74.    }
  75.  
  76.    public void decode(Decoder var1) throws CodingException {
  77.       this.setTargets((Hashtable)var1.decodeObject("targets"));
  78.    }
  79.  
  80.    public void finishDecoding() throws CodingException {
  81.    }
  82. }
  83.