home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / lang / ProcessEnvironment.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  4.8 KB  |  147 lines

  1. package java.lang;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collection;
  5. import java.util.Collections;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import java.util.TreeMap;
  10.  
  11. final class ProcessEnvironment extends HashMap<String, String> {
  12.    static final int MIN_NAME_LENGTH = 1;
  13.    private static final NameComparator nameComparator = new NameComparator((1)null);
  14.    private static final EntryComparator entryComparator = new EntryComparator((1)null);
  15.    private static final ProcessEnvironment theEnvironment = new ProcessEnvironment();
  16.    private static final Map<String, String> theUnmodifiableEnvironment;
  17.    private static final Map<String, String> theCaseInsensitiveEnvironment;
  18.  
  19.    private static String validateName(String var0) {
  20.       if (var0.indexOf(61, 1) == -1 && var0.indexOf(0) == -1) {
  21.          return var0;
  22.       } else {
  23.          throw new IllegalArgumentException("Invalid environment variable name: \"" + var0 + "\"");
  24.       }
  25.    }
  26.  
  27.    private static String validateValue(String var0) {
  28.       if (var0.indexOf(0) != -1) {
  29.          throw new IllegalArgumentException("Invalid environment variable value: \"" + var0 + "\"");
  30.       } else {
  31.          return var0;
  32.       }
  33.    }
  34.  
  35.    private static String nonNullString(Object var0) {
  36.       if (var0 == null) {
  37.          throw new NullPointerException();
  38.       } else {
  39.          return (String)var0;
  40.       }
  41.    }
  42.  
  43.    public String put(String var1, String var2) {
  44.       return (String)super.put(validateName(var1), validateValue(var2));
  45.    }
  46.  
  47.    public String get(Object var1) {
  48.       return (String)super.get(nonNullString(var1));
  49.    }
  50.  
  51.    public boolean containsKey(Object var1) {
  52.       return super.containsKey(nonNullString(var1));
  53.    }
  54.  
  55.    public boolean containsValue(Object var1) {
  56.       return super.containsValue(nonNullString(var1));
  57.    }
  58.  
  59.    public String remove(Object var1) {
  60.       return (String)super.remove(nonNullString(var1));
  61.    }
  62.  
  63.    public Set<String> keySet() {
  64.       return new CheckedKeySet(super.keySet());
  65.    }
  66.  
  67.    public Collection<String> values() {
  68.       return new CheckedValues(super.values());
  69.    }
  70.  
  71.    public Set<Map.Entry<String, String>> entrySet() {
  72.       return new CheckedEntrySet(super.entrySet());
  73.    }
  74.  
  75.    private ProcessEnvironment() {
  76.    }
  77.  
  78.    private ProcessEnvironment(int var1) {
  79.       super(var1);
  80.    }
  81.  
  82.    static String getenv(String var0) {
  83.       return (String)theCaseInsensitiveEnvironment.get(var0);
  84.    }
  85.  
  86.    static Map<String, String> getenv() {
  87.       return theUnmodifiableEnvironment;
  88.    }
  89.  
  90.    static Map<String, String> environment() {
  91.       return (Map)theEnvironment.clone();
  92.    }
  93.  
  94.    static Map<String, String> emptyEnvironment(int var0) {
  95.       return new ProcessEnvironment(var0);
  96.    }
  97.  
  98.    private static native String environmentBlock();
  99.  
  100.    String toEnvironmentBlock() {
  101.       ArrayList var1 = new ArrayList(this.entrySet());
  102.       Collections.sort(var1, entryComparator);
  103.       StringBuilder var2 = new StringBuilder(this.size() * 30);
  104.  
  105.       for(Map.Entry var4 : var1) {
  106.          var2.append((String)var4.getKey()).append('=').append((String)var4.getValue()).append('\u0000');
  107.       }
  108.  
  109.       if (var2.length() == 0) {
  110.          var2.append('\u0000');
  111.       }
  112.  
  113.       var2.append('\u0000');
  114.       return var2.toString();
  115.    }
  116.  
  117.    static String toEnvironmentBlock(Map<String, String> var0) {
  118.       return var0 == null ? null : ((ProcessEnvironment)var0).toEnvironmentBlock();
  119.    }
  120.  
  121.    // $FF: synthetic method
  122.    static String access$000(String var0) {
  123.       return validateValue(var0);
  124.    }
  125.  
  126.    // $FF: synthetic method
  127.    static String access$200(Object var0) {
  128.       return nonNullString(var0);
  129.    }
  130.  
  131.    static {
  132.       theUnmodifiableEnvironment = Collections.unmodifiableMap(theEnvironment);
  133.       String var0 = environmentBlock();
  134.  
  135.       int var2;
  136.       int var3;
  137.       for(int var1 = 0; (var2 = var0.indexOf(0, var1)) != -1 && (var3 = var0.indexOf(61, var1 + 1)) != -1; var1 = var2 + 1) {
  138.          if (var3 < var2) {
  139.             theEnvironment.put(var0.substring(var1, var3), var0.substring(var3 + 1, var2));
  140.          }
  141.       }
  142.  
  143.       theCaseInsensitiveEnvironment = new TreeMap(nameComparator);
  144.       theCaseInsensitiveEnvironment.putAll(theEnvironment);
  145.    }
  146. }
  147.