home *** CD-ROM | disk | FTP | other *** search
- package netscape.constructor;
-
- import netscape.application.Application;
- import netscape.application.Target;
- import netscape.application.TargetChain;
- import netscape.util.ClassInfo;
- import netscape.util.Codable;
- import netscape.util.CodingException;
- import netscape.util.Decoder;
- import netscape.util.Encoder;
- import netscape.util.Enumeration;
- import netscape.util.Hashtable;
-
- public class TargetProxyManager implements Codable {
- Hashtable targets;
- boolean neverReplace;
- boolean hasSingleTarget;
- static final String TARGETS_KEY = "targets";
- public static final String SINGLE_TARGET_PROXY_KEY = "__nEdEtCoDe";
- public static final String APPLICATION_TARGET_PROXY_KEY = "__APPLICATION__";
- public static final String TARGET_CHAIN_TARGET_PROXY_KEY = "__TARGETCHAIN__";
- public static final String NEVER_REPLACE_KEY = "__nEdEtCoDeNonReplacing";
-
- public Hashtable targets() {
- if (this.targets == null) {
- this.targets = new Hashtable();
- }
-
- return this.targets;
- }
-
- public void setTargets(Hashtable var1) {
- this.targets().clear();
- if (var1 != null) {
- this.neverReplace = var1.containsKey("__nEdEtCoDeNonReplacing");
- if (!this.neverReplace) {
- Enumeration var2 = var1.keys();
-
- while(var2.hasMoreElements()) {
- Object var3 = var2.nextElement();
- if (var1.get(var3) instanceof Target) {
- this.targets.put(var3, var1.get(var3));
- } else {
- System.out.println("TargetProxyManager: setTargets: Non-Target object found, will not be added: name = " + var3 + "\n, object = " + var1.get(var3));
- }
- }
-
- this.hasSingleTarget = this.targets.containsKey("__nEdEtCoDe");
- }
- }
- }
-
- public Target targetNamed(String var1) {
- if (this.targets != null && !this.neverReplace) {
- if ("__APPLICATION__".equals(var1) && !this.targets.containsKey("__APPLICATION__")) {
- return Application.application() instanceof Target ? (Target)Application.application() : null;
- } else if ("__TARGETCHAIN__".equals(var1) && !this.targets.containsKey("__TARGETCHAIN__")) {
- return TargetChain.applicationChain();
- } else {
- return this.hasSingleTarget ? (Target)this.targets.get("__nEdEtCoDe") : (Target)this.targets.get(var1);
- }
- } else {
- return null;
- }
- }
-
- public void describeClassInfo(ClassInfo var1) {
- var1.addClass("netscape.constructor.TargetProxyManager", 1);
- var1.addField("targets", (byte)18);
- }
-
- public void encode(Encoder var1) throws CodingException {
- var1.encodeObject("targets", this.targets);
- }
-
- public void decode(Decoder var1) throws CodingException {
- this.setTargets((Hashtable)var1.decodeObject("targets"));
- }
-
- public void finishDecoding() throws CodingException {
- }
- }
-