home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / misc / Service.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.2 KB  |  126 lines

  1. package sun.misc;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.net.URL;
  8. import java.util.AbstractList;
  9. import java.util.ArrayList;
  10. import java.util.Iterator;
  11. import java.util.List;
  12. import java.util.Set;
  13.  
  14. public final class Service {
  15.    private static final String prefix = "META-INF/services/";
  16.  
  17.    private Service() {
  18.    }
  19.  
  20.    private static void fail(Class var0, String var1) throws ServiceConfigurationError {
  21.       throw new ServiceConfigurationError(var0.getName() + ": " + var1);
  22.    }
  23.  
  24.    private static void fail(Class var0, URL var1, int var2, String var3) throws ServiceConfigurationError {
  25.       fail(var0, var1 + ":" + var2 + ": " + var3);
  26.    }
  27.  
  28.    private static int parseLine(Class var0, URL var1, BufferedReader var2, int var3, List var4, Set var5) throws IOException, ServiceConfigurationError {
  29.       String var6 = var2.readLine();
  30.       if (var6 == null) {
  31.          return -1;
  32.       } else {
  33.          int var7 = var6.indexOf(35);
  34.          if (var7 >= 0) {
  35.             var6 = var6.substring(0, var7);
  36.          }
  37.  
  38.          var6 = var6.trim();
  39.          int var8 = var6.length();
  40.          if (var8 != 0) {
  41.             if (var6.indexOf(32) >= 0 || var6.indexOf(9) >= 0) {
  42.                fail(var0, var1, var3, "Illegal configuration-file syntax");
  43.             }
  44.  
  45.             if (!Character.isJavaIdentifierStart(var6.charAt(0))) {
  46.                fail(var0, var1, var3, "Illegal provider-class name: " + var6);
  47.             }
  48.  
  49.             for(int var9 = 1; var9 < var8; ++var9) {
  50.                char var10 = var6.charAt(var9);
  51.                if (!Character.isJavaIdentifierPart(var10) && var10 != '.') {
  52.                   fail(var0, var1, var3, "Illegal provider-class name: " + var6);
  53.                }
  54.             }
  55.  
  56.             if (!var5.contains(var6)) {
  57.                var4.add(var6);
  58.                var5.add(var6);
  59.             }
  60.          }
  61.  
  62.          return var3 + 1;
  63.       }
  64.    }
  65.  
  66.    private static Iterator parse(Class var0, URL var1, Set var2) throws ServiceConfigurationError {
  67.       InputStream var3 = null;
  68.       BufferedReader var4 = null;
  69.       ArrayList var5 = new ArrayList();
  70.  
  71.       try {
  72.          var3 = var1.openStream();
  73.          var4 = new BufferedReader(new InputStreamReader(var3, "utf-8"));
  74.          int var6 = 1;
  75.  
  76.          while((var6 = parseLine(var0, var1, var4, var6, var5, var2)) >= 0) {
  77.          }
  78.       } catch (IOException var16) {
  79.          fail(var0, ": " + var16);
  80.       } finally {
  81.          try {
  82.             if (var4 != null) {
  83.                var4.close();
  84.             }
  85.  
  86.             if (var3 != null) {
  87.                var3.close();
  88.             }
  89.          } catch (IOException var15) {
  90.             fail(var0, ": " + var15);
  91.          }
  92.  
  93.       }
  94.  
  95.       return ((AbstractList)var5).iterator();
  96.    }
  97.  
  98.    public static Iterator providers(Class var0, ClassLoader var1) throws ServiceConfigurationError {
  99.       return new LazyIterator(var0, var1, (1)null);
  100.    }
  101.  
  102.    public static Iterator providers(Class var0) throws ServiceConfigurationError {
  103.       ClassLoader var1 = Thread.currentThread().getContextClassLoader();
  104.       return providers(var0, var1);
  105.    }
  106.  
  107.    public static Iterator installedProviders(Class var0) throws ServiceConfigurationError {
  108.       ClassLoader var1 = ClassLoader.getSystemClassLoader();
  109.       if (var1 != null) {
  110.          var1 = var1.getParent();
  111.       }
  112.  
  113.       return providers(var0, var1);
  114.    }
  115.  
  116.    // $FF: synthetic method
  117.    static void access$000(Class var0, String var1) throws ServiceConfigurationError {
  118.       fail(var0, var1);
  119.    }
  120.  
  121.    // $FF: synthetic method
  122.    static Iterator access$100(Class var0, URL var1, Set var2) throws ServiceConfigurationError {
  123.       return parse(var0, var1, var2);
  124.    }
  125. }
  126.