home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / text / html / parser / ContentModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.2 KB  |  164 lines

  1. package javax.swing.text.html.parser;
  2.  
  3. import java.io.Serializable;
  4. import java.util.Vector;
  5.  
  6. public final class ContentModel implements Serializable {
  7.    public int type;
  8.    public Object content;
  9.    public ContentModel next;
  10.    private boolean[] valSet;
  11.    private boolean[] val;
  12.  
  13.    public ContentModel() {
  14.    }
  15.  
  16.    public ContentModel(Element var1) {
  17.       this(0, var1, (ContentModel)null);
  18.    }
  19.  
  20.    public ContentModel(int var1, ContentModel var2) {
  21.       this(var1, var2, (ContentModel)null);
  22.    }
  23.  
  24.    public ContentModel(int var1, Object var2, ContentModel var3) {
  25.       this.type = var1;
  26.       this.content = var2;
  27.       this.next = var3;
  28.    }
  29.  
  30.    public boolean empty() {
  31.       switch (this.type) {
  32.          case 38:
  33.          case 44:
  34.             for(ContentModel var2 = (ContentModel)this.content; var2 != null; var2 = var2.next) {
  35.                if (!var2.empty()) {
  36.                   return false;
  37.                }
  38.             }
  39.  
  40.             return true;
  41.          case 42:
  42.          case 63:
  43.             return true;
  44.          case 43:
  45.          case 124:
  46.             for(ContentModel var1 = (ContentModel)this.content; var1 != null; var1 = var1.next) {
  47.                if (var1.empty()) {
  48.                   return true;
  49.                }
  50.             }
  51.  
  52.             return false;
  53.          default:
  54.             return false;
  55.       }
  56.    }
  57.  
  58.    public void getElements(Vector var1) {
  59.       switch (this.type) {
  60.          case 38:
  61.          case 44:
  62.          case 124:
  63.             for(ContentModel var2 = (ContentModel)this.content; var2 != null; var2 = var2.next) {
  64.                var2.getElements(var1);
  65.             }
  66.             break;
  67.          case 42:
  68.          case 43:
  69.          case 63:
  70.             ((ContentModel)this.content).getElements(var1);
  71.             break;
  72.          default:
  73.             var1.addElement(this.content);
  74.       }
  75.  
  76.    }
  77.  
  78.    public boolean first(Object var1) {
  79.       switch (this.type) {
  80.          case 38:
  81.          case 124:
  82.             Element var3 = (Element)var1;
  83.             if (this.valSet == null) {
  84.                this.valSet = new boolean[Element.maxIndex + 1];
  85.                this.val = new boolean[Element.maxIndex + 1];
  86.             }
  87.  
  88.             if (this.valSet[var3.index]) {
  89.                return this.val[var3.index];
  90.             }
  91.  
  92.             for(ContentModel var4 = (ContentModel)this.content; var4 != null; var4 = var4.next) {
  93.                if (var4.first(var1)) {
  94.                   this.val[var3.index] = true;
  95.                   break;
  96.                }
  97.             }
  98.  
  99.             this.valSet[var3.index] = true;
  100.             return this.val[var3.index];
  101.          case 42:
  102.          case 43:
  103.          case 63:
  104.             return ((ContentModel)this.content).first(var1);
  105.          case 44:
  106.             for(ContentModel var2 = (ContentModel)this.content; var2 != null; var2 = var2.next) {
  107.                if (var2.first(var1)) {
  108.                   return true;
  109.                }
  110.  
  111.                if (!var2.empty()) {
  112.                   return false;
  113.                }
  114.             }
  115.  
  116.             return false;
  117.          default:
  118.             return this.content == var1;
  119.       }
  120.    }
  121.  
  122.    public Element first() {
  123.       switch (this.type) {
  124.          case 38:
  125.          case 42:
  126.          case 63:
  127.          case 124:
  128.             return null;
  129.          case 43:
  130.          case 44:
  131.             return ((ContentModel)this.content).first();
  132.          default:
  133.             return (Element)this.content;
  134.       }
  135.    }
  136.  
  137.    public String toString() {
  138.       switch (this.type) {
  139.          case 38:
  140.          case 44:
  141.          case 124:
  142.             char[] var1 = new char[]{' ', (char)this.type, ' '};
  143.             String var2 = "";
  144.  
  145.             for(ContentModel var3 = (ContentModel)this.content; var3 != null; var3 = var3.next) {
  146.                var2 = var2 + var3;
  147.                if (var3.next != null) {
  148.                   var2 = var2 + new String(var1);
  149.                }
  150.             }
  151.  
  152.             return "(" + var2 + ")";
  153.          case 42:
  154.             return this.content + "*";
  155.          case 43:
  156.             return this.content + "+";
  157.          case 63:
  158.             return this.content + "?";
  159.          default:
  160.             return this.content.toString();
  161.       }
  162.    }
  163. }
  164.