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 / TableView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  10.9 KB  |  609 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Graphics;
  6. import java.awt.Rectangle;
  7. import java.awt.Shape;
  8. import java.util.BitSet;
  9. import java.util.Vector;
  10. import javax.swing.SizeRequirements;
  11. import javax.swing.event.DocumentEvent;
  12. import javax.swing.text.AttributeSet;
  13. import javax.swing.text.BoxView;
  14. import javax.swing.text.CompositeView;
  15. import javax.swing.text.Element;
  16. import javax.swing.text.StyleConstants;
  17. import javax.swing.text.View;
  18. import javax.swing.text.ViewFactory;
  19. import javax.swing.text.html.HTML.Attribute;
  20. import javax.swing.text.html.HTML.Tag;
  21.  
  22. class TableView extends BoxView implements ViewFactory {
  23.    private AttributeSet attr;
  24.    private StyleSheet.BoxPainter painter;
  25.    private int cellSpacing;
  26.    private int captionIndex = -1;
  27.    private boolean relativeCells;
  28.    private boolean multiRowCells;
  29.    int[] columnSpans;
  30.    int[] columnOffsets;
  31.    SizeRequirements[] columnRequirements;
  32.    RowIterator rowIterator = new RowIterator(this);
  33.    ColumnIterator colIterator = new ColumnIterator(this);
  34.    Vector rows = new Vector();
  35.    boolean gridValid = false;
  36.    private static final BitSet EMPTY = new BitSet();
  37.  
  38.    public TableView(Element var1) {
  39.       super(var1, 1);
  40.    }
  41.  
  42.    protected RowView createTableRow(Element var1) {
  43.       Object var2 = var1.getAttributes().getAttribute(StyleConstants.NameAttribute);
  44.       return var2 == Tag.TR ? new RowView(this, var1) : null;
  45.    }
  46.  
  47.    public int getColumnCount() {
  48.       return this.columnSpans.length;
  49.    }
  50.  
  51.    public int getColumnSpan(int var1) {
  52.       return var1 < this.columnSpans.length ? this.columnSpans[var1] : 0;
  53.    }
  54.  
  55.    public int getRowCount() {
  56.       return this.rows.size();
  57.    }
  58.  
  59.    public int getMultiRowSpan(int var1, int var2) {
  60.       RowView var3 = this.getRow(var1);
  61.       RowView var4 = this.getRow(var2);
  62.       if (var3 != null && var4 != null) {
  63.          int var5 = var3.viewIndex;
  64.          int var6 = var4.viewIndex;
  65.          int var7 = ((BoxView)this).getOffset(1, var6) - ((BoxView)this).getOffset(1, var5) + ((BoxView)this).getSpan(1, var6);
  66.          return var7;
  67.       } else {
  68.          return 0;
  69.       }
  70.    }
  71.  
  72.    public int getRowSpan(int var1) {
  73.       RowView var2 = this.getRow(var1);
  74.       return var2 != null ? ((BoxView)this).getSpan(1, var2.viewIndex) : 0;
  75.    }
  76.  
  77.    RowView getRow(int var1) {
  78.       return var1 < this.rows.size() ? (RowView)this.rows.elementAt(var1) : null;
  79.    }
  80.  
  81.    protected int getColumnsOccupied(View var1) {
  82.       AttributeSet var2 = var1.getElement().getAttributes();
  83.       String var3 = (String)var2.getAttribute(Attribute.COLSPAN);
  84.       if (var3 != null) {
  85.          try {
  86.             return Integer.parseInt(var3);
  87.          } catch (NumberFormatException var5) {
  88.          }
  89.       }
  90.  
  91.       return 1;
  92.    }
  93.  
  94.    protected int getRowsOccupied(View var1) {
  95.       AttributeSet var2 = var1.getElement().getAttributes();
  96.       String var3 = (String)var2.getAttribute(Attribute.ROWSPAN);
  97.       if (var3 != null) {
  98.          try {
  99.             return Integer.parseInt(var3);
  100.          } catch (NumberFormatException var5) {
  101.          }
  102.       }
  103.  
  104.       return 1;
  105.    }
  106.  
  107.    protected void invalidateGrid() {
  108.       this.gridValid = false;
  109.    }
  110.  
  111.    protected StyleSheet getStyleSheet() {
  112.       HTMLDocument var1 = (HTMLDocument)((View)this).getDocument();
  113.       return var1.getStyleSheet();
  114.    }
  115.  
  116.    void updateInsets() {
  117.       short var1 = (short)((int)this.painter.getInset(1, this));
  118.       short var2 = (short)((int)this.painter.getInset(3, this));
  119.       if (this.captionIndex != -1) {
  120.          View var3 = ((CompositeView)this).getView(this.captionIndex);
  121.          short var4 = (short)((int)var3.getPreferredSpan(1));
  122.          AttributeSet var5 = var3.getAttributes();
  123.          Object var6 = var5.getAttribute(javax.swing.text.html.CSS.Attribute.CAPTION_SIDE);
  124.          if (var6 != null && var6.equals("bottom")) {
  125.             var2 += var4;
  126.          } else {
  127.             var1 += var4;
  128.          }
  129.       }
  130.  
  131.       ((CompositeView)this).setInsets(var1, (short)((int)this.painter.getInset(2, this)), var2, (short)((int)this.painter.getInset(4, this)));
  132.    }
  133.  
  134.    protected void setPropertiesFromAttributes() {
  135.       StyleSheet var1 = this.getStyleSheet();
  136.       this.attr = var1.getViewAttributes(this);
  137.       this.painter = var1.getBoxPainter(this.attr);
  138.       if (this.attr != null) {
  139.          ((CompositeView)this).setInsets((short)((int)this.painter.getInset(1, this)), (short)((int)this.painter.getInset(2, this)), (short)((int)this.painter.getInset(3, this)), (short)((int)this.painter.getInset(4, this)));
  140.       }
  141.  
  142.    }
  143.  
  144.    void updateGrid() {
  145.       if (!this.gridValid) {
  146.          this.relativeCells = false;
  147.          this.multiRowCells = false;
  148.          this.captionIndex = -1;
  149.          this.rows.removeAllElements();
  150.          int var1 = ((CompositeView)this).getViewCount();
  151.  
  152.          for(int var2 = 0; var2 < var1; ++var2) {
  153.             View var3 = ((CompositeView)this).getView(var2);
  154.             if (var3 instanceof RowView) {
  155.                this.rows.addElement(var3);
  156.                RowView var4 = (RowView)var3;
  157.                var4.clearFilledColumns();
  158.                var4.rowIndex = this.rows.size() - 1;
  159.                var4.viewIndex = var2;
  160.             } else {
  161.                Object var17 = var3.getElement().getAttributes().getAttribute(StyleConstants.NameAttribute);
  162.                if (var17 instanceof HTML.Tag) {
  163.                   HTML.Tag var5 = (HTML.Tag)var17;
  164.                   if (var5 == Tag.CAPTION) {
  165.                      this.captionIndex = var2;
  166.                   }
  167.                }
  168.             }
  169.          }
  170.  
  171.          int var16 = 0;
  172.          int var18 = this.rows.size();
  173.  
  174.          for(int var19 = 0; var19 < var18; ++var19) {
  175.             RowView var6 = this.getRow(var19);
  176.             int var7 = 0;
  177.  
  178.             for(int var8 = 0; var8 < ((CompositeView)var6).getViewCount(); ++var7) {
  179.                View var9 = ((CompositeView)var6).getView(var8);
  180.                if (!this.relativeCells) {
  181.                   AttributeSet var10 = var9.getAttributes();
  182.                   CSS.LengthValue var11 = (CSS.LengthValue)var10.getAttribute(javax.swing.text.html.CSS.Attribute.WIDTH);
  183.                   if (var11 != null && var11.isPercentage()) {
  184.                      this.relativeCells = true;
  185.                   }
  186.                }
  187.  
  188.                while(var6.isFilled(var7)) {
  189.                   ++var7;
  190.                }
  191.  
  192.                int var21 = this.getRowsOccupied(var9);
  193.                if (var21 > 1) {
  194.                   this.multiRowCells = true;
  195.                }
  196.  
  197.                int var22 = this.getColumnsOccupied(var9);
  198.                if (var22 > 1 || var21 > 1) {
  199.                   int var12 = var19 + var21;
  200.                   int var13 = var7 + var22;
  201.  
  202.                   for(int var14 = var19; var14 < var12; ++var14) {
  203.                      for(int var15 = var7; var15 < var13; ++var15) {
  204.                         if (var14 != var19 || var15 != var7) {
  205.                            this.addFill(var14, var15);
  206.                         }
  207.                      }
  208.                   }
  209.  
  210.                   if (var22 > 1) {
  211.                      var7 += var22 - 1;
  212.                   }
  213.                }
  214.  
  215.                ++var8;
  216.             }
  217.  
  218.             var16 = Math.max(var16, var7);
  219.          }
  220.  
  221.          this.columnSpans = new int[var16];
  222.          this.columnOffsets = new int[var16];
  223.          this.columnRequirements = new SizeRequirements[var16];
  224.  
  225.          for(int var20 = 0; var20 < var16; ++var20) {
  226.             this.columnRequirements[var20] = new SizeRequirements();
  227.          }
  228.  
  229.          this.gridValid = true;
  230.       }
  231.  
  232.    }
  233.  
  234.    void addFill(int var1, int var2) {
  235.       RowView var3 = this.getRow(var1);
  236.       if (var3 != null) {
  237.          var3.fillColumn(var2);
  238.       }
  239.  
  240.    }
  241.  
  242.    protected void layoutColumns(int var1, int[] var2, int[] var3, SizeRequirements[] var4) {
  243.       this.colIterator.setLayoutArrays(var2, var3, var1);
  244.       CSS.calculateTiledLayout(this.colIterator, var1);
  245.    }
  246.  
  247.    void calculateColumnRequirements(int var1) {
  248.       boolean var2 = false;
  249.       int var3 = this.getRowCount();
  250.  
  251.       for(int var4 = 0; var4 < var3; ++var4) {
  252.          RowView var5 = this.getRow(var4);
  253.          int var6 = 0;
  254.          int var7 = ((CompositeView)var5).getViewCount();
  255.  
  256.          for(int var8 = 0; var8 < var7; ++var6) {
  257.             View var9;
  258.             for(var9 = ((CompositeView)var5).getView(var8); var5.isFilled(var6); ++var6) {
  259.             }
  260.  
  261.             this.getRowsOccupied(var9);
  262.             int var11 = this.getColumnsOccupied(var9);
  263.             if (var11 == 1) {
  264.                this.checkSingleColumnCell(var1, var6, var9);
  265.             } else {
  266.                var2 = true;
  267.                var6 += var11 - 1;
  268.             }
  269.  
  270.             ++var8;
  271.          }
  272.       }
  273.  
  274.       if (var2) {
  275.          for(int var12 = 0; var12 < var3; ++var12) {
  276.             RowView var13 = this.getRow(var12);
  277.             int var14 = 0;
  278.             int var15 = ((CompositeView)var13).getViewCount();
  279.  
  280.             for(int var16 = 0; var16 < var15; ++var14) {
  281.                View var10;
  282.                for(var10 = ((CompositeView)var13).getView(var16); var13.isFilled(var14); ++var14) {
  283.                }
  284.  
  285.                int var17 = this.getColumnsOccupied(var10);
  286.                if (var17 > 1) {
  287.                   this.checkMultiColumnCell(var1, var14, var17, var10);
  288.                   var14 += var17 - 1;
  289.                }
  290.  
  291.                ++var16;
  292.             }
  293.          }
  294.       }
  295.  
  296.    }
  297.  
  298.    void checkSingleColumnCell(int var1, int var2, View var3) {
  299.       SizeRequirements var4 = this.columnRequirements[var2];
  300.       var4.minimum = Math.max((int)var3.getMinimumSpan(var1), var4.minimum);
  301.       var4.preferred = Math.max((int)var3.getPreferredSpan(var1), var4.preferred);
  302.       var4.maximum = Math.max((int)var3.getMaximumSpan(var1), var4.maximum);
  303.    }
  304.  
  305.    void checkMultiColumnCell(int var1, int var2, int var3, View var4) {
  306.       long var5 = 0L;
  307.       long var7 = 0L;
  308.       long var9 = 0L;
  309.  
  310.       for(int var11 = 0; var11 < var3; ++var11) {
  311.          SizeRequirements var12 = this.columnRequirements[var2 + var11];
  312.          var5 += (long)var12.minimum;
  313.          var7 += (long)var12.preferred;
  314.          var9 += (long)var12.maximum;
  315.       }
  316.  
  317.       int var20 = (int)var4.getMinimumSpan(var1);
  318.       if ((long)var20 > var5) {
  319.          SizeRequirements[] var13 = new SizeRequirements[var3];
  320.  
  321.          for(int var14 = 0; var14 < var3; ++var14) {
  322.             SizeRequirements var15 = var13[var14] = this.columnRequirements[var2 + var14];
  323.             var15.maximum = Math.max(var15.maximum, (int)var4.getMaximumSpan(var1));
  324.          }
  325.  
  326.          int[] var23 = new int[var3];
  327.          int[] var16 = new int[var3];
  328.          SizeRequirements.calculateTiledPositions(var20, (SizeRequirements)null, var13, var16, var23);
  329.  
  330.          for(int var17 = 0; var17 < var3; ++var17) {
  331.             SizeRequirements var18 = var13[var17];
  332.             var18.minimum = Math.max(var23[var17], var18.minimum);
  333.             var18.preferred = Math.max(var18.minimum, var18.preferred);
  334.             var18.maximum = Math.max(var18.preferred, var18.maximum);
  335.          }
  336.       }
  337.  
  338.       int var21 = (int)var4.getPreferredSpan(var1);
  339.       if ((long)var21 > var7) {
  340.          SizeRequirements[] var22 = new SizeRequirements[var3];
  341.  
  342.          for(int var24 = 0; var24 < var3; ++var24) {
  343.             SizeRequirements var25 = var22[var24] = this.columnRequirements[var2 + var24];
  344.          }
  345.  
  346.          int[] var26 = new int[var3];
  347.          int[] var27 = new int[var3];
  348.          SizeRequirements.calculateTiledPositions(var21, (SizeRequirements)null, var22, var27, var26);
  349.  
  350.          for(int var28 = 0; var28 < var3; ++var28) {
  351.             SizeRequirements var19 = var22[var28];
  352.             var19.preferred = Math.max(var26[var28], var19.preferred);
  353.             var19.maximum = Math.max(var19.preferred, var19.maximum);
  354.          }
  355.       }
  356.  
  357.    }
  358.  
  359.    boolean spanSetFromAttributes(int var1, SizeRequirements var2) {
  360.       AttributeSet var3 = this.getAttributes();
  361.       if (var1 == 0) {
  362.          CSS.LengthValue var4 = (CSS.LengthValue)var3.getAttribute(javax.swing.text.html.CSS.Attribute.WIDTH);
  363.          if (var4 != null && !var4.isPercentage()) {
  364.             var2.minimum = var2.preferred = var2.maximum = (int)var4.getValue();
  365.             return true;
  366.          }
  367.       } else {
  368.          CSS.LengthValue var5 = (CSS.LengthValue)var3.getAttribute(javax.swing.text.html.CSS.Attribute.HEIGHT);
  369.          if (var5 != null && !var5.isPercentage()) {
  370.             var2.minimum = var2.preferred = var2.maximum = (int)var5.getValue();
  371.             return true;
  372.          }
  373.       }
  374.  
  375.       return false;
  376.    }
  377.  
  378.    protected SizeRequirements calculateMinorAxisRequirements(int var1, SizeRequirements var2) {
  379.       this.updateGrid();
  380.       this.calculateColumnRequirements(var1);
  381.       if (var2 == null) {
  382.          var2 = new SizeRequirements();
  383.       }
  384.  
  385.       long var3 = 0L;
  386.       long var5 = 0L;
  387.       long var7 = 0L;
  388.       int var9 = this.columnRequirements.length;
  389.  
  390.       for(int var10 = 0; var10 < var9; ++var10) {
  391.          SizeRequirements var11 = this.columnRequirements[var10];
  392.          var3 += (long)var11.minimum;
  393.          var5 += (long)var11.preferred;
  394.          var7 += (long)var11.maximum;
  395.       }
  396.  
  397.       int var16 = (var9 - 1) * this.cellSpacing;
  398.       var3 += (long)var16;
  399.       var5 += (long)var16;
  400.       var2.minimum = (int)var3;
  401.       var2.preferred = (int)var5;
  402.       var2.maximum = (int)var5;
  403.       this.spanSetFromAttributes(var1, var2);
  404.       Object var12 = this.attr.getAttribute(javax.swing.text.html.CSS.Attribute.TEXT_ALIGN);
  405.       if (var12 != null) {
  406.          String var13 = var12.toString();
  407.          if (var13.equals("left")) {
  408.             var2.alignment = 0.0F;
  409.          } else if (var13.equals("center")) {
  410.             var2.alignment = 0.5F;
  411.          } else if (var13.equals("right")) {
  412.             var2.alignment = 1.0F;
  413.          } else {
  414.             var2.alignment = 0.0F;
  415.          }
  416.       } else {
  417.          var2.alignment = 0.0F;
  418.       }
  419.  
  420.       return var2;
  421.    }
  422.  
  423.    protected SizeRequirements calculateMajorAxisRequirements(int var1, SizeRequirements var2) {
  424.       this.updateInsets();
  425.       this.rowIterator.updateAdjustments();
  426.       var2 = CSS.calculateTiledRequirements(this.rowIterator, var2);
  427.       var2.maximum = var2.preferred;
  428.       return var2;
  429.    }
  430.  
  431.    protected void layoutMinorAxis(int var1, int var2, int[] var3, int[] var4) {
  432.       this.updateGrid();
  433.       int var5 = this.getRowCount();
  434.  
  435.       for(int var6 = 0; var6 < var5; ++var6) {
  436.          RowView var7 = this.getRow(var6);
  437.          ((BoxView)var7).layoutChanged(var2);
  438.       }
  439.  
  440.       this.layoutColumns(var1, this.columnOffsets, this.columnSpans, this.columnRequirements);
  441.       super.layoutMinorAxis(var1, var2, var3, var4);
  442.    }
  443.  
  444.    protected void layoutMajorAxis(int var1, int var2, int[] var3, int[] var4) {
  445.       this.rowIterator.setLayoutArrays(var3, var4);
  446.       CSS.calculateTiledLayout(this.rowIterator, var1);
  447.       if (this.captionIndex != -1) {
  448.          View var5 = ((CompositeView)this).getView(this.captionIndex);
  449.          int var6 = (int)var5.getPreferredSpan(1);
  450.          var4[this.captionIndex] = var6;
  451.          short var7 = (short)((int)this.painter.getInset(3, this));
  452.          if (var7 != ((CompositeView)this).getBottomInset()) {
  453.             var3[this.captionIndex] = var1 + var7;
  454.          } else {
  455.             var3[this.captionIndex] = -((CompositeView)this).getTopInset();
  456.          }
  457.       }
  458.  
  459.    }
  460.  
  461.    protected View getViewAtPosition(int var1, Rectangle var2) {
  462.       int var3 = ((CompositeView)this).getViewCount();
  463.  
  464.       for(int var4 = 0; var4 < var3; ++var4) {
  465.          View var5 = ((CompositeView)this).getView(var4);
  466.          int var6 = var5.getStartOffset();
  467.          int var7 = var5.getEndOffset();
  468.          if (var1 >= var6 && var1 < var7) {
  469.             if (var2 != null) {
  470.                ((BoxView)this).childAllocation(var4, var2);
  471.             }
  472.  
  473.             return var5;
  474.          }
  475.       }
  476.  
  477.       if (var1 == ((View)this).getEndOffset()) {
  478.          View var8 = ((CompositeView)this).getView(var3 - 1);
  479.          if (var2 != null) {
  480.             ((BoxView)this).childAllocation(var3 - 1, var2);
  481.          }
  482.  
  483.          return var8;
  484.       } else {
  485.          return null;
  486.       }
  487.    }
  488.  
  489.    public AttributeSet getAttributes() {
  490.       if (this.attr == null) {
  491.          StyleSheet var1 = this.getStyleSheet();
  492.          this.attr = var1.getViewAttributes(this);
  493.       }
  494.  
  495.       return this.attr;
  496.    }
  497.  
  498.    public void paint(Graphics var1, Shape var2) {
  499.       Rectangle var3 = var2.getBounds();
  500.       ((BoxView)this).setSize((float)var3.width, (float)var3.height);
  501.       if (this.captionIndex != -1) {
  502.          short var4 = (short)((int)this.painter.getInset(1, this));
  503.          short var5 = (short)((int)this.painter.getInset(3, this));
  504.          if (var4 != ((CompositeView)this).getTopInset()) {
  505.             int var6 = ((CompositeView)this).getTopInset() - var4;
  506.             var3.y += var6;
  507.             var3.height -= var6;
  508.          } else {
  509.             var3.height -= ((CompositeView)this).getBottomInset() - var5;
  510.          }
  511.       }
  512.  
  513.       this.painter.paint(var1, (float)var3.x, (float)var3.y, (float)var3.width, (float)var3.height, this);
  514.       int var7 = ((CompositeView)this).getViewCount();
  515.  
  516.       for(int var8 = 0; var8 < var7; ++var8) {
  517.          View var9 = ((CompositeView)this).getView(var8);
  518.          var9.paint(var1, ((BoxView)this).getChildAllocation(var8, var2));
  519.       }
  520.  
  521.    }
  522.  
  523.    public void setParent(View var1) {
  524.       super.setParent(var1);
  525.       this.setPropertiesFromAttributes();
  526.    }
  527.  
  528.    public ViewFactory getViewFactory() {
  529.       return this;
  530.    }
  531.  
  532.    public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  533.       super.insertUpdate(var1, var2, this);
  534.    }
  535.  
  536.    public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  537.       super.removeUpdate(var1, var2, this);
  538.    }
  539.  
  540.    public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  541.       super.changedUpdate(var1, var2, this);
  542.    }
  543.  
  544.    protected void forwardUpdate(DocumentEvent.ElementChange var1, DocumentEvent var2, Shape var3, ViewFactory var4) {
  545.       super.forwardUpdate(var1, var2, var3, var4);
  546.       if (var3 != null) {
  547.          Container var5 = ((View)this).getContainer();
  548.          if (var5 != null) {
  549.             Rectangle var6 = var3 instanceof Rectangle ? (Rectangle)var3 : var3.getBounds();
  550.             ((Component)var5).repaint(var6.x, var6.y, var6.width, var6.height);
  551.          }
  552.       }
  553.  
  554.    }
  555.  
  556.    public void replace(int var1, int var2, View[] var3) {
  557.       super.replace(var1, var2, var3);
  558.       this.invalidateGrid();
  559.    }
  560.  
  561.    public View create(Element var1) {
  562.       Object var2 = var1.getAttributes().getAttribute(StyleConstants.NameAttribute);
  563.       if (var2 instanceof HTML.Tag) {
  564.          HTML.Tag var3 = (HTML.Tag)var2;
  565.          if (var3 == Tag.TR) {
  566.             return this.createTableRow(var1);
  567.          }
  568.  
  569.          if (var3 == Tag.TD || var3 == Tag.TH) {
  570.             return new CellView(this, var1);
  571.          }
  572.  
  573.          if (var3 == Tag.CAPTION) {
  574.             return new ParagraphView(var1);
  575.          }
  576.       }
  577.  
  578.       View var5 = ((View)this).getParent();
  579.       if (var5 != null) {
  580.          ViewFactory var4 = var5.getViewFactory();
  581.          if (var4 != null) {
  582.             return var4.create(var1);
  583.          }
  584.       }
  585.  
  586.       return null;
  587.    }
  588.  
  589.    // $FF: synthetic method
  590.    static boolean access$000(TableView var0) {
  591.       return var0.relativeCells;
  592.    }
  593.  
  594.    // $FF: synthetic method
  595.    static int access$100(TableView var0) {
  596.       return var0.cellSpacing;
  597.    }
  598.  
  599.    // $FF: synthetic method
  600.    static boolean access$200(TableView var0) {
  601.       return var0.multiRowCells;
  602.    }
  603.  
  604.    // $FF: synthetic method
  605.    static BitSet access$300() {
  606.       return EMPTY;
  607.    }
  608. }
  609.