home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Extras / OSpace / jgl.exe / jgl_2_0 / COM / objectspace / jgl / Reversing.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-03-12  |  2.1 KB  |  68 lines

  1. package COM.objectspace.jgl;
  2.  
  3. public final class Reversing {
  4.    private Reversing() {
  5.    }
  6.  
  7.    public static void reverse(BidirectionalIterator var0, BidirectionalIterator var1) {
  8.       if (!(var0.getContainer() instanceof Sequence)) {
  9.          throw new IllegalArgumentException("iterator containers must be a Sequence");
  10.       } else if (var0 instanceof RandomAccessIterator) {
  11.          RandomAccessIterator var4 = (RandomAccessIterator)var0.clone();
  12.          RandomAccessIterator var5 = (RandomAccessIterator)var1.clone();
  13.  
  14.          while(var4.less(var5)) {
  15.             var5.retreat();
  16.             Swapping.iterSwap(var4, var5);
  17.             var4.advance();
  18.          }
  19.  
  20.       } else {
  21.          BidirectionalIterator var2 = (BidirectionalIterator)var0.clone();
  22.          BidirectionalIterator var3 = (BidirectionalIterator)var1.clone();
  23.  
  24.          while(!var2.equals(var3)) {
  25.             var3.retreat();
  26.             if (var2.equals(var3)) {
  27.                return;
  28.             }
  29.  
  30.             Swapping.iterSwap(var2, var3);
  31.             var2.advance();
  32.          }
  33.  
  34.       }
  35.    }
  36.  
  37.    public static void reverse(Container var0) {
  38.       reverse((BidirectionalIterator)var0.start(), (BidirectionalIterator)var0.finish());
  39.    }
  40.  
  41.    public static OutputIterator reverseCopy(BidirectionalIterator var0, BidirectionalIterator var1, OutputIterator var2) {
  42.       if (!(var0.getContainer() instanceof Sequence)) {
  43.          throw new IllegalArgumentException("iterator containers must be a Sequence");
  44.       } else if (!(var1.getContainer() instanceof Sequence)) {
  45.          throw new IllegalArgumentException("iterator containers must be a Sequence");
  46.       } else {
  47.          BidirectionalIterator var3 = (BidirectionalIterator)var1.clone();
  48.          OutputIterator var4 = (OutputIterator)var2.clone();
  49.  
  50.          while(!var0.equals(var3)) {
  51.             var3.retreat();
  52.             var4.put(var3.get());
  53.             var4.advance();
  54.          }
  55.  
  56.          return var4;
  57.       }
  58.    }
  59.  
  60.    public static OutputIterator reverseCopy(Container var0, OutputIterator var1) {
  61.       return reverseCopy((BidirectionalIterator)var0.start(), (BidirectionalIterator)var0.finish(), var1);
  62.    }
  63.  
  64.    public static void reverseCopy(Container var0, Container var1) {
  65.       reverseCopy((BidirectionalIterator)var0.start(), (BidirectionalIterator)var0.finish(), new InsertIterator(var1));
  66.    }
  67. }
  68.