home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / util / jar / Attributes.class (.txt) next >
Encoding:
Java Class File  |  1979-12-31  |  3.6 KB  |  189 lines

  1. package java.util.jar;
  2.  
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import java.util.Collection;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import java.util.Set;
  9.  
  10. public class Attributes implements Map, Cloneable {
  11.    protected Map map;
  12.  
  13.    public Attributes() {
  14.       this(11);
  15.    }
  16.  
  17.    public Attributes(int var1) {
  18.       this.map = new HashMap(var1);
  19.    }
  20.  
  21.    public Attributes(Attributes var1) {
  22.       this.map = new HashMap(var1);
  23.    }
  24.  
  25.    public Object get(Object var1) {
  26.       return this.map.get(var1);
  27.    }
  28.  
  29.    public String getValue(String var1) {
  30.       return (String)this.get(new Name(var1));
  31.    }
  32.  
  33.    public String getValue(Name var1) {
  34.       return (String)this.get(var1);
  35.    }
  36.  
  37.    public Object put(Object var1, Object var2) {
  38.       return this.map.put((Name)var1, (String)var2);
  39.    }
  40.  
  41.    public String putValue(String var1, String var2) {
  42.       return (String)this.put(new Name(var1), var2);
  43.    }
  44.  
  45.    public Object remove(Object var1) {
  46.       return this.map.remove(var1);
  47.    }
  48.  
  49.    public boolean containsValue(Object var1) {
  50.       return this.map.containsValue(var1);
  51.    }
  52.  
  53.    public boolean containsKey(Object var1) {
  54.       return this.map.containsKey(var1);
  55.    }
  56.  
  57.    public void putAll(Map var1) {
  58.       this.map.putAll((Attributes)var1);
  59.    }
  60.  
  61.    public void clear() {
  62.       this.map.clear();
  63.    }
  64.  
  65.    public int size() {
  66.       return this.map.size();
  67.    }
  68.  
  69.    public boolean isEmpty() {
  70.       return this.map.isEmpty();
  71.    }
  72.  
  73.    public Set keySet() {
  74.       return this.map.keySet();
  75.    }
  76.  
  77.    public Collection values() {
  78.       return this.map.values();
  79.    }
  80.  
  81.    public Set entrySet() {
  82.       return this.map.entrySet();
  83.    }
  84.  
  85.    public boolean equals(Object var1) {
  86.       return this.map.equals(var1);
  87.    }
  88.  
  89.    public int hashCode() {
  90.       return this.map.hashCode();
  91.    }
  92.  
  93.    public Object clone() {
  94.       return new Attributes(this);
  95.    }
  96.  
  97.    void write(DataOutputStream var1) throws IOException {
  98.       for(Map.Entry var3 : this.entrySet()) {
  99.          StringBuffer var4 = new StringBuffer(((Name)var3.getKey()).toString());
  100.          var4.append(": ");
  101.          var4.append((String)var3.getValue());
  102.          var4.append("\r\n");
  103.          Manifest.make72Safe(var4);
  104.          var1.writeBytes(var4.toString());
  105.       }
  106.  
  107.       var1.writeBytes("\r\n");
  108.    }
  109.  
  110.    void writeMain(DataOutputStream var1) throws IOException {
  111.       String var2 = java.util.jar.Attributes.Name.MANIFEST_VERSION.toString();
  112.       String var3 = this.getValue(var2);
  113.       if (var3 == null) {
  114.          var2 = java.util.jar.Attributes.Name.SIGNATURE_VERSION.toString();
  115.          var3 = this.getValue(var2);
  116.       }
  117.  
  118.       if (var3 != null) {
  119.          var1.writeBytes(var2 + ": " + var3 + "\r\n");
  120.       }
  121.  
  122.       for(Map.Entry var5 : this.entrySet()) {
  123.          String var6 = ((Name)var5.getKey()).toString();
  124.          if (var3 != null && !var6.equalsIgnoreCase(var2)) {
  125.             StringBuffer var7 = new StringBuffer(var6);
  126.             var7.append(": ");
  127.             var7.append((String)var5.getValue());
  128.             var7.append("\r\n");
  129.             Manifest.make72Safe(var7);
  130.             var1.writeBytes(var7.toString());
  131.          }
  132.       }
  133.  
  134.       var1.writeBytes("\r\n");
  135.    }
  136.  
  137.    void read(Manifest.FastInputStream var1, byte[] var2) throws IOException {
  138.       String var3 = null;
  139.       String var4 = null;
  140.  
  141.       while(true) {
  142.          int var5;
  143.          if ((var5 = var1.readLine(var2)) != -1) {
  144.             --var5;
  145.             if (var2[var5] != 10) {
  146.                throw new IOException("line too long");
  147.             }
  148.  
  149.             if (var5 > 0 && var2[var5 - 1] == 13) {
  150.                --var5;
  151.             }
  152.  
  153.             if (var5 != 0) {
  154.                int var6 = 0;
  155.                if (var2[0] == 32) {
  156.                   if (var3 == null) {
  157.                      throw new IOException("misplaced continuation line");
  158.                   }
  159.  
  160.                   var4 = var4 + new String(var2, 0, 1, var5 - 1);
  161.                } else {
  162.                   while(var2[var6++] != 58) {
  163.                      if (var6 >= var5) {
  164.                         throw new IOException("invalid header field");
  165.                      }
  166.                   }
  167.  
  168.                   if (var2[var6++] != 32) {
  169.                      throw new IOException("invalid header field");
  170.                   }
  171.  
  172.                   var3 = new String(var2, 0, 0, var6 - 2);
  173.                   var4 = new String(var2, 0, var6, var5 - var6);
  174.                }
  175.  
  176.                try {
  177.                   this.putValue(var3, var4);
  178.                   continue;
  179.                } catch (IllegalArgumentException var8) {
  180.                   throw new IOException("invalid header field name: " + var3);
  181.                }
  182.             }
  183.          }
  184.  
  185.          return;
  186.       }
  187.    }
  188. }
  189.