home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / browser / net_linx / java40.jar / netscape / plugin / composer / io / SelectedHTMLReader.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.1 KB  |  103 lines

  1. package netscape.plugin.composer.io;
  2.  
  3. import java.io.IOException;
  4. import java.io.Reader;
  5. import java.io.Writer;
  6.  
  7. public class SelectedHTMLReader extends Reader {
  8.    // $FF: renamed from: in java.io.Reader
  9.    private Reader field_0;
  10.    private Writer out;
  11.    private int index;
  12.    private int length;
  13.    private String string;
  14.  
  15.    public SelectedHTMLReader(Reader var1) throws IOException {
  16.       this(var1, (Writer)null);
  17.    }
  18.  
  19.    public SelectedHTMLReader(Reader var1, Writer var2) throws IOException {
  20.       this.field_0 = var1;
  21.       this.out = var2;
  22.       StringBuffer var3 = new StringBuffer(1024);
  23.       char[] var5 = new char[1024];
  24.  
  25.       int var4;
  26.       while((var4 = var1.read(var5)) >= 0) {
  27.          var3.append(var5, 0, var4);
  28.       }
  29.  
  30.       this.string = new String(var3);
  31.       String var6 = Comment.createSelectionStart().toString();
  32.       String var7 = Comment.createSelectionEnd().toString();
  33.       int var8 = this.string.indexOf(var6);
  34.       if (var8 < 0) {
  35.          var8 = this.string.indexOf(Comment.createSelectionStart(true).toString());
  36.          if (var8 < 0) {
  37.             System.err.println(this.string);
  38.             throw new IOException("No start comment.");
  39.          }
  40.       }
  41.  
  42.       int var9 = this.string.indexOf(var7, var8);
  43.       if (var9 < 0) {
  44.          String var10 = Comment.createSelectionEnd(true).toString();
  45.          var9 = this.string.indexOf(var10, var8);
  46.          if (var9 < 0) {
  47.             System.err.println(this.string);
  48.             throw new IOException("No end comment");
  49.          }
  50.  
  51.          var9 += var10.length();
  52.       } else {
  53.          var9 += var7.length();
  54.       }
  55.  
  56.       this.index = var8;
  57.       this.length = var9;
  58.       if (var2 != null) {
  59.          var2.write(this.string, 0, this.index);
  60.       }
  61.  
  62.    }
  63.  
  64.    public void close() throws IOException {
  65.       this.field_0.close();
  66.       if (this.out != null) {
  67.          int var1 = this.string.length() - this.index;
  68.          this.out.write(this.string, this.index, var1);
  69.          this.index = this.string.length();
  70.       }
  71.  
  72.    }
  73.  
  74.    public int read() throws IOException {
  75.       return this.index >= this.length ? -1 : this.string.charAt(this.index++);
  76.    }
  77.  
  78.    public int read(char[] var1) throws IOException {
  79.       return this.read(var1, 0, var1.length);
  80.    }
  81.  
  82.    public int read(char[] var1, int var2, int var3) throws IOException {
  83.       if (var3 <= 0) {
  84.          return 0;
  85.       } else {
  86.          int var4 = Math.min(var3, this.length - this.index);
  87.          if (var4 <= 0) {
  88.             return -1;
  89.          } else {
  90.             this.string.getChars(this.index, this.index + var4, var1, var2);
  91.             this.index += var4;
  92.             return var4;
  93.          }
  94.       }
  95.    }
  96.  
  97.    public long skip(long var1) throws IOException {
  98.       long var3 = Math.max(0L, Math.min(var1, (long)this.length - (long)this.index));
  99.       this.index += (int)var3;
  100.       return var3;
  101.    }
  102. }
  103.