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

  1. package COM.objectspace.jgl;
  2.  
  3. public final class SetOperations {
  4.    public static boolean includes(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3) {
  5.       return includes(var0, var1, var2, var3, new HashComparator());
  6.    }
  7.  
  8.    public static boolean includes(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, BinaryPredicate var4) {
  9.       InputIterator var5 = (InputIterator)var0.clone();
  10.       InputIterator var6 = (InputIterator)var2.clone();
  11.  
  12.       while(!var5.equals(var1) && !var6.equals(var3)) {
  13.          if (var4.execute(var6.get(), var5.get())) {
  14.             return false;
  15.          }
  16.  
  17.          if (var4.execute(var5.get(), var6.get())) {
  18.             var5.advance();
  19.          } else {
  20.             var5.advance();
  21.             var6.advance();
  22.          }
  23.       }
  24.  
  25.       return var6.equals(var3);
  26.    }
  27.  
  28.    public static boolean includes(Container var0, Container var1, BinaryPredicate var2) {
  29.       return includes(var0.start(), var0.finish(), var1.start(), var1.finish(), var2);
  30.    }
  31.  
  32.    public static OutputIterator setUnion(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4) {
  33.       return setUnion(var0, var1, var2, var3, var4, new HashComparator());
  34.    }
  35.  
  36.    public static OutputIterator setUnion(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4, BinaryPredicate var5) {
  37.       InputIterator var6 = (InputIterator)var0.clone();
  38.       InputIterator var7 = (InputIterator)var2.clone();
  39.       OutputIterator var8 = (OutputIterator)var4.clone();
  40.  
  41.       while(!var6.equals(var1) && !var7.equals(var3)) {
  42.          if (var5.execute(var6.get(), var7.get())) {
  43.             var8.put(var6.get());
  44.             var8.advance();
  45.             var6.advance();
  46.          } else if (var5.execute(var7.get(), var6.get())) {
  47.             var8.put(var7.get());
  48.             var8.advance();
  49.             var7.advance();
  50.          } else {
  51.             var8.put(var6.get());
  52.             var8.advance();
  53.             var6.advance();
  54.             var7.advance();
  55.          }
  56.       }
  57.  
  58.       return Copying.copy(var7, var3, Copying.copy(var6, var1, var8));
  59.    }
  60.  
  61.    public static OutputIterator setUnion(Container var0, Container var1, OutputIterator var2, BinaryPredicate var3) {
  62.       return setUnion(var0.start(), var0.finish(), var1.start(), var1.finish(), var2, var3);
  63.    }
  64.  
  65.    public static OutputIterator setIntersection(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4) {
  66.       return setIntersection(var0, var1, var2, var3, var4, new HashComparator());
  67.    }
  68.  
  69.    public static OutputIterator setIntersection(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4, BinaryPredicate var5) {
  70.       InputIterator var6 = (InputIterator)var0.clone();
  71.       InputIterator var7 = (InputIterator)var2.clone();
  72.       OutputIterator var8 = (OutputIterator)var4.clone();
  73.  
  74.       while(!var6.equals(var1) && !var7.equals(var3)) {
  75.          if (var5.execute(var6.get(), var7.get())) {
  76.             var6.advance();
  77.          } else if (var5.execute(var7.get(), var6.get())) {
  78.             var7.advance();
  79.          } else {
  80.             var8.put(var6.get());
  81.             var8.advance();
  82.             var6.advance();
  83.             var7.advance();
  84.          }
  85.       }
  86.  
  87.       return var8;
  88.    }
  89.  
  90.    public static OutputIterator setIntersection(Container var0, Container var1, OutputIterator var2, BinaryPredicate var3) {
  91.       return setIntersection(var0.start(), var0.finish(), var1.start(), var1.finish(), var2, var3);
  92.    }
  93.  
  94.    public static OutputIterator setDifference(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4) {
  95.       return setDifference(var0, var1, var2, var3, var4, new HashComparator());
  96.    }
  97.  
  98.    public static OutputIterator setDifference(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4, BinaryPredicate var5) {
  99.       InputIterator var6 = (InputIterator)var0.clone();
  100.       InputIterator var7 = (InputIterator)var2.clone();
  101.       OutputIterator var8 = (OutputIterator)var4.clone();
  102.  
  103.       while(!var6.equals(var1) && !var7.equals(var3)) {
  104.          if (var5.execute(var6.get(), var7.get())) {
  105.             var8.put(var6.get());
  106.             var8.advance();
  107.             var6.advance();
  108.          } else if (var5.execute(var7.get(), var6.get())) {
  109.             var7.advance();
  110.          } else {
  111.             var6.advance();
  112.             var7.advance();
  113.          }
  114.       }
  115.  
  116.       return Copying.copy(var6, var1, var8);
  117.    }
  118.  
  119.    public static OutputIterator setDifference(Container var0, Container var1, OutputIterator var2, BinaryPredicate var3) {
  120.       return setDifference(var0.start(), var0.finish(), var1.start(), var1.finish(), var2, var3);
  121.    }
  122.  
  123.    public static OutputIterator setSymmetricDifference(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4) {
  124.       return setSymmetricDifference(var0, var1, var2, var3, var4, new HashComparator());
  125.    }
  126.  
  127.    public static OutputIterator setSymmetricDifference(InputIterator var0, InputIterator var1, InputIterator var2, InputIterator var3, OutputIterator var4, BinaryPredicate var5) {
  128.       InputIterator var6 = (InputIterator)var0.clone();
  129.       InputIterator var7 = (InputIterator)var2.clone();
  130.       OutputIterator var8 = (OutputIterator)var4.clone();
  131.  
  132.       while(!var6.equals(var1) && !var7.equals(var3)) {
  133.          if (var5.execute(var6.get(), var7.get())) {
  134.             var8.put(var6.get());
  135.             var8.advance();
  136.             var6.advance();
  137.          } else if (var5.execute(var7.get(), var6.get())) {
  138.             var8.put(var7.get());
  139.             var8.advance();
  140.             var7.advance();
  141.          } else {
  142.             var6.advance();
  143.             var7.advance();
  144.          }
  145.       }
  146.  
  147.       return Copying.copy(var7, var3, Copying.copy(var6, var1, var8));
  148.    }
  149.  
  150.    public static OutputIterator setSymmetricDifference(Container var0, Container var1, OutputIterator var2, BinaryPredicate var3) {
  151.       return setSymmetricDifference(var0.start(), var0.finish(), var1.start(), var1.finish(), var2, var3);
  152.    }
  153. }
  154.