home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / netscape / application / HTMLParsingRules.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-12  |  5.1 KB  |  171 lines

  1. package netscape.application;
  2.  
  3. import netscape.util.ClassInfo;
  4. import netscape.util.Codable;
  5. import netscape.util.CodingException;
  6. import netscape.util.Decoder;
  7. import netscape.util.Deserializer;
  8. import netscape.util.Encoder;
  9. import netscape.util.Hashtable;
  10. import netscape.util.InconsistencyException;
  11.  
  12. public class HTMLParsingRules implements Codable {
  13.    private Hashtable rules = (Hashtable)Deserializer.deserializeObject("{  LI = { BeginTermination = ( LI ); EndTermination = (OL,UL,DIR,MENU); };     IMG= { IsContainer=false; };                                       DD = { BeginTermination = (DT,DD); EndTermination = (DL,A); };       DT = { BeginTermination = (DT,DD); EndTermination = (DL,A); };        P = { IsContainer=true; BeginTermination=(P,OL,UL,DIR,MENU,PRE,H1,H2,H3,H4,H5,H6);  };   BR = { IsContainer=false; };                                       HR = { IsContainer=false; };                                       PRE= { ShouldRetainFormatting=true; };                                  A= { IsContainer=true; BeginTermination = (A); };              }");
  14.    private String defaultContainerClassName;
  15.    private String defaultMarkerClassName;
  16.    static final String RULES_KEY = "rules";
  17.    static final String DEFAULT_CONTAINER_CLASS_NAME_KEY = "defaultContainerClass";
  18.    static final String DEFAULT_MARKER_CLASS_NAME_KEY = "defaultMarkerClass";
  19.    private static final String HTMLDefaultRules = "{  LI = { BeginTermination = ( LI ); EndTermination = (OL,UL,DIR,MENU); };     IMG= { IsContainer=false; };                                       DD = { BeginTermination = (DT,DD); EndTermination = (DL,A); };       DT = { BeginTermination = (DT,DD); EndTermination = (DL,A); };        P = { IsContainer=true; BeginTermination=(P,OL,UL,DIR,MENU,PRE,H1,H2,H3,H4,H5,H6);  };   BR = { IsContainer=false; };                                       HR = { IsContainer=false; };                                       PRE= { ShouldRetainFormatting=true; };                                  A= { IsContainer=true; BeginTermination = (A); };              }";
  20.    public static final String STRING_MARKER_KEY = "IFCSTRING";
  21.    public static final String COMMENT_MARKER_KEY = "IFCCOMMENT";
  22.    public static final String REPRESENTATION_KEY = "Representation";
  23.    public static final String BEGIN_TERMINATION_MARKERS_KEY = "BeginTermination";
  24.    public static final String END_TERMINATION_MARKERS_KEY = "EndTermination";
  25.    public static final String IS_CONTAINER_KEY = "IsContainer";
  26.    public static final String SHOULD_RETAIN_FORMATTING_KEY = "ShouldRetainFormatting";
  27.    public static final String SHOULD_IGNORE_END_KEY = "ShouldIgnoreEnd";
  28.  
  29.    public HTMLParsingRules() {
  30.       if (this.rules == null) {
  31.          throw new InconsistencyException("HTMLParsingRules: Cannot deserialize default rules");
  32.       }
  33.    }
  34.  
  35.    public void setRulesForMarker(Hashtable var1, String var2) {
  36.       this.rules.put(var2, var1);
  37.    }
  38.  
  39.    public Hashtable rulesForMarker(String var1) {
  40.       return (Hashtable)this.rules.get(var1);
  41.    }
  42.  
  43.    public void setRuleForMarker(String var1, Object var2, String var3) {
  44.       Hashtable var4 = this.rulesForMarker(var3);
  45.       if (var4 == null) {
  46.          var4 = new Hashtable();
  47.       }
  48.  
  49.       var4.put(var1, var2);
  50.       this.setRulesForMarker(var4, var3);
  51.    }
  52.  
  53.    public void setClassNameForMarker(String var1, String var2) {
  54.       Hashtable var3 = this.rulesForMarker(var2);
  55.       if (var3 == null) {
  56.          var3 = new Hashtable();
  57.       }
  58.  
  59.       var3.put("Representation", var1);
  60.       this.setRulesForMarker(var3, var2);
  61.    }
  62.  
  63.    public String classNameForMarker(String var1) {
  64.       Hashtable var2 = this.rulesForMarker(var1);
  65.       if (var2 != null) {
  66.          String var5 = (String)var2.get("Representation");
  67.          if (var5 == null) {
  68.             if (this.isContainer(var2)) {
  69.                var5 = this.defaultContainerClassName;
  70.             } else {
  71.                var5 = this.defaultMarkerClassName;
  72.             }
  73.          }
  74.  
  75.          return var5;
  76.       } else {
  77.          Hashtable var4 = this.rulesForMarker(var1);
  78.          boolean var3;
  79.          if (var4 != null) {
  80.             var3 = this.isContainer(var4);
  81.          } else {
  82.             var3 = true;
  83.          }
  84.  
  85.          if (var3 && this.defaultContainerClassName != null) {
  86.             return this.defaultContainerClassName;
  87.          } else {
  88.             return !var3 && this.defaultMarkerClassName != null ? this.defaultMarkerClassName : null;
  89.          }
  90.       }
  91.    }
  92.  
  93.    public void setDefaultContainerClassName(String var1) {
  94.       this.defaultContainerClassName = var1;
  95.    }
  96.  
  97.    public String defaultContainerClassName() {
  98.       return this.defaultContainerClassName;
  99.    }
  100.  
  101.    public void setDefaultMarkerClassName(String var1) {
  102.       this.defaultMarkerClassName = var1;
  103.    }
  104.  
  105.    public String defaultMarkerClassName() {
  106.       return this.defaultMarkerClassName;
  107.    }
  108.  
  109.    public void setStringClassName(String var1) {
  110.       this.setClassNameForMarker(var1, "IFCSTRING");
  111.    }
  112.  
  113.    public String classNameForString() {
  114.       return this.classNameForMarker("IFCSTRING");
  115.    }
  116.  
  117.    public void setClassNameForComment(String var1) {
  118.       this.setClassNameForMarker(var1, "IFCCOMMENT");
  119.    }
  120.  
  121.    public String classNameForComment() {
  122.       return this.classNameForMarker("IFCCOMMENT");
  123.    }
  124.  
  125.    boolean shouldIgnoreEnd(Hashtable var1) {
  126.       if (var1 == null) {
  127.          return false;
  128.       } else {
  129.          return var1.get("ShouldIgnoreEnd") != null && ((String)var1.get("ShouldIgnoreEnd")).toUpperCase().equals("TRUE");
  130.       }
  131.    }
  132.  
  133.    boolean isContainer(Hashtable var1) {
  134.       if (var1 == null) {
  135.          return true;
  136.       } else {
  137.          return var1.get("IsContainer") == null || !((String)var1.get("IsContainer")).toUpperCase().equals("FALSE");
  138.       }
  139.    }
  140.  
  141.    boolean shouldFilterStringsForChildren(Hashtable var1) {
  142.       if (var1 == null) {
  143.          return true;
  144.       } else {
  145.          return var1.get("ShouldRetainFormatting") == null || !((String)var1.get("ShouldRetainFormatting")).toUpperCase().equals("TRUE");
  146.       }
  147.    }
  148.  
  149.    public void describeClassInfo(ClassInfo var1) {
  150.       var1.addClass("netscape.application.HTMLParsingRules", 1);
  151.       var1.addField("rules", (byte)18);
  152.       var1.addField("defaultContainerClass", (byte)18);
  153.       var1.addField("defaultMarkerClass", (byte)18);
  154.    }
  155.  
  156.    public void encode(Encoder var1) throws CodingException {
  157.       var1.encodeObject("rules", this.rules);
  158.       var1.encodeObject("defaultContainerClass", this.defaultContainerClassName);
  159.       var1.encodeObject("defaultMarkerClass", this.defaultMarkerClassName);
  160.    }
  161.  
  162.    public void decode(Decoder var1) throws CodingException {
  163.       this.rules = (Hashtable)var1.decodeObject("rules");
  164.       this.defaultContainerClassName = (String)var1.decodeObject("defaultContainerClass");
  165.       this.defaultMarkerClassName = (String)var1.decodeObject("defaultMarkerClass");
  166.    }
  167.  
  168.    public void finishDecoding() throws CodingException {
  169.    }
  170. }
  171.