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 / Comparing.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-03-12  |  2.9 KB  |  109 lines

  1. package COM.objectspace.jgl;
  2.  
  3. public final class Comparing {
  4.    private Comparing() {
  5.    }
  6.  
  7.    public static Object median(Object var0, Object var1, Object var2, BinaryPredicate var3) {
  8.       if (var3.execute(var0, var1)) {
  9.          if (var3.execute(var1, var2)) {
  10.             return var1;
  11.          } else {
  12.             return var3.execute(var0, var2) ? var2 : var0;
  13.          }
  14.       } else if (var3.execute(var0, var2)) {
  15.          return var0;
  16.       } else {
  17.          return var3.execute(var1, var2) ? var2 : var1;
  18.       }
  19.    }
  20.  
  21.    public static Pair mismatch(InputIterator var0, InputIterator var1, InputIterator var2) {
  22.       InputIterator var3 = (InputIterator)var0.clone();
  23.       InputIterator var4 = (InputIterator)var2.clone();
  24.  
  25.       while(!var3.equals(var1) && var3.get().equals(var4.get())) {
  26.          var3.advance();
  27.          var4.advance();
  28.       }
  29.  
  30.       return new Pair(var3, var4);
  31.    }
  32.  
  33.    public static Pair mismatch(Container var0, Container var1) {
  34.       return mismatch((InputIterator)var0.start(), (InputIterator)var0.finish(), (InputIterator)var1.start());
  35.    }
  36.  
  37.    public static Pair mismatch(InputIterator var0, InputIterator var1, InputIterator var2, BinaryPredicate var3) {
  38.       InputIterator var4 = (InputIterator)var0.clone();
  39.       InputIterator var5 = (InputIterator)var2.clone();
  40.  
  41.       while(!var4.equals(var1) && var3.execute(var4.get(), var5.get())) {
  42.          var4.advance();
  43.          var5.advance();
  44.       }
  45.  
  46.       return new Pair(var4, var5);
  47.    }
  48.  
  49.    public static Pair mismatch(Container var0, Container var1, BinaryPredicate var2) {
  50.       return mismatch(var0.start(), var0.finish(), var1.start(), var2);
  51.    }
  52.  
  53.    public static boolean equal(InputIterator var0, InputIterator var1, InputIterator var2) {
  54.       InputIterator var3 = (InputIterator)var0.clone();
  55.       InputIterator var4 = (InputIterator)var2.clone();
  56.  
  57.       while(!var3.equals(var1)) {
  58.          if (!var3.get().equals(var4.get())) {
  59.             return false;
  60.          }
  61.  
  62.          var3.advance();
  63.          var4.advance();
  64.       }
  65.  
  66.       return true;
  67.    }
  68.  
  69.    public static boolean equal(Container var0, Container var1) {
  70.       return var0.size() == var1.size() && equal(var0.start(), var0.finish(), var1.start());
  71.    }
  72.  
  73.    public static boolean lexicographicalCompare(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3) {
  74.       return lexicographicalCompare(var0, var1, var2, var3, new HashComparator());
  75.    }
  76.  
  77.    public static boolean lexicographicalCompare(Container var0, Container var1) {
  78.       ForwardIterator var2 = var0.start();
  79.       ForwardIterator var3 = var0.finish();
  80.       ForwardIterator var4 = var1.start();
  81.       ForwardIterator var5 = var1.finish();
  82.       return lexicographicalCompare(var2, var3, var4, var5, new HashComparator());
  83.    }
  84.  
  85.    public static boolean lexicographicalCompare(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, BinaryPredicate var4) {
  86.       InputIterator var5 = (InputIterator)var0.clone();
  87.       InputIterator var6 = (InputIterator)var2.clone();
  88.  
  89.       while(!var5.equals(var1) && !var6.equals(var3)) {
  90.          if (var4.execute(var5.get(), var6.get())) {
  91.             return true;
  92.          }
  93.  
  94.          if (var4.execute(var6.get(), var5.get())) {
  95.             return false;
  96.          }
  97.  
  98.          var5.advance();
  99.          var6.advance();
  100.       }
  101.  
  102.       return var5.equals(var1) && !var6.equals(var3);
  103.    }
  104.  
  105.    public static boolean lexicographicalCompare(Container var0, Container var1, BinaryPredicate var2) {
  106.       return lexicographicalCompare(var0.start(), var0.finish(), var1.start(), var1.finish(), var2);
  107.    }
  108. }
  109.