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 / java / text / StringCharacterIterator.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.8 KB  |  136 lines

  1. package java.text;
  2.  
  3. public final class StringCharacterIterator implements CharacterIterator {
  4.    private String text;
  5.    private int begin;
  6.    private int end;
  7.    private int pos;
  8.  
  9.    public StringCharacterIterator(String var1) {
  10.       this(var1, 0);
  11.    }
  12.  
  13.    public StringCharacterIterator(String var1, int var2) {
  14.       this(var1, 0, var1.length(), var2);
  15.    }
  16.  
  17.    public StringCharacterIterator(String var1, int var2, int var3, int var4) {
  18.       if (var1 == null) {
  19.          throw new NullPointerException();
  20.       } else {
  21.          this.text = var1;
  22.          if (var2 >= 0 && var2 <= var3 && var3 <= var1.length()) {
  23.             if (var4 >= var2 && var4 <= var3) {
  24.                this.begin = var2;
  25.                this.end = var3;
  26.                this.pos = var4;
  27.             } else {
  28.                throw new IllegalArgumentException("Invalid position");
  29.             }
  30.          } else {
  31.             throw new IllegalArgumentException("Invalid substring range");
  32.          }
  33.       }
  34.    }
  35.  
  36.    public void setText(String var1) {
  37.       if (var1 == null) {
  38.          throw new NullPointerException();
  39.       } else {
  40.          this.text = var1;
  41.          this.begin = 0;
  42.          this.end = var1.length();
  43.          this.pos = 0;
  44.       }
  45.    }
  46.  
  47.    public char first() {
  48.       this.pos = this.begin;
  49.       return this.current();
  50.    }
  51.  
  52.    public char last() {
  53.       if (this.end != this.begin) {
  54.          this.pos = this.end - 1;
  55.       } else {
  56.          this.pos = this.end;
  57.       }
  58.  
  59.       return this.current();
  60.    }
  61.  
  62.    public char setIndex(int var1) {
  63.       if (var1 >= this.begin && var1 <= this.end) {
  64.          this.pos = var1;
  65.          return this.current();
  66.       } else {
  67.          throw new IllegalArgumentException("Invalid index");
  68.       }
  69.    }
  70.  
  71.    public char current() {
  72.       return this.pos >= this.begin && this.pos < this.end ? this.text.charAt(this.pos) : '\uffff';
  73.    }
  74.  
  75.    public char next() {
  76.       if (this.pos < this.end - 1) {
  77.          ++this.pos;
  78.          return this.text.charAt(this.pos);
  79.       } else {
  80.          this.pos = this.end;
  81.          return '\uffff';
  82.       }
  83.    }
  84.  
  85.    public char previous() {
  86.       if (this.pos > this.begin) {
  87.          --this.pos;
  88.          return this.text.charAt(this.pos);
  89.       } else {
  90.          return '\uffff';
  91.       }
  92.    }
  93.  
  94.    public int getBeginIndex() {
  95.       return this.begin;
  96.    }
  97.  
  98.    public int getEndIndex() {
  99.       return this.end;
  100.    }
  101.  
  102.    public int getIndex() {
  103.       return this.pos;
  104.    }
  105.  
  106.    public boolean equals(Object var1) {
  107.       if (this == var1) {
  108.          return true;
  109.       } else if (!(var1 instanceof StringCharacterIterator)) {
  110.          return false;
  111.       } else {
  112.          StringCharacterIterator var2 = (StringCharacterIterator)var1;
  113.          if (this.hashCode() != var2.hashCode()) {
  114.             return false;
  115.          } else if (!this.text.equals(var2.text)) {
  116.             return false;
  117.          } else {
  118.             return this.pos == var2.pos && this.begin == var2.begin && this.end == var2.end;
  119.          }
  120.       }
  121.    }
  122.  
  123.    public int hashCode() {
  124.       return this.text.hashCode() ^ this.pos ^ this.begin ^ this.end;
  125.    }
  126.  
  127.    public Object clone() {
  128.       try {
  129.          StringCharacterIterator var1 = (StringCharacterIterator)super.clone();
  130.          return var1;
  131.       } catch (CloneNotSupportedException var2) {
  132.          throw new InternalError();
  133.       }
  134.    }
  135. }
  136.