home *** CD-ROM | disk | FTP | other *** search
- package java.util.jar;
-
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.util.Collection;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Set;
-
- public class Attributes implements Map, Cloneable {
- protected Map map;
-
- public Attributes() {
- this(11);
- }
-
- public Attributes(int var1) {
- this.map = new HashMap(var1);
- }
-
- public Attributes(Attributes var1) {
- this.map = new HashMap(var1);
- }
-
- public Object get(Object var1) {
- return this.map.get(var1);
- }
-
- public String getValue(String var1) {
- return (String)this.get(new Name(var1));
- }
-
- public String getValue(Name var1) {
- return (String)this.get(var1);
- }
-
- public Object put(Object var1, Object var2) {
- return this.map.put((Name)var1, (String)var2);
- }
-
- public String putValue(String var1, String var2) {
- return (String)this.put(new Name(var1), var2);
- }
-
- public Object remove(Object var1) {
- return this.map.remove(var1);
- }
-
- public boolean containsValue(Object var1) {
- return this.map.containsValue(var1);
- }
-
- public boolean containsKey(Object var1) {
- return this.map.containsKey(var1);
- }
-
- public void putAll(Map var1) {
- this.map.putAll((Attributes)var1);
- }
-
- public void clear() {
- this.map.clear();
- }
-
- public int size() {
- return this.map.size();
- }
-
- public boolean isEmpty() {
- return this.map.isEmpty();
- }
-
- public Set keySet() {
- return this.map.keySet();
- }
-
- public Collection values() {
- return this.map.values();
- }
-
- public Set entrySet() {
- return this.map.entrySet();
- }
-
- public boolean equals(Object var1) {
- return this.map.equals(var1);
- }
-
- public int hashCode() {
- return this.map.hashCode();
- }
-
- public Object clone() {
- return new Attributes(this);
- }
-
- void write(DataOutputStream var1) throws IOException {
- for(Map.Entry var3 : this.entrySet()) {
- StringBuffer var4 = new StringBuffer(((Name)var3.getKey()).toString());
- var4.append(": ");
- var4.append((String)var3.getValue());
- var4.append("\r\n");
- Manifest.make72Safe(var4);
- var1.writeBytes(var4.toString());
- }
-
- var1.writeBytes("\r\n");
- }
-
- void writeMain(DataOutputStream var1) throws IOException {
- String var2 = java.util.jar.Attributes.Name.MANIFEST_VERSION.toString();
- String var3 = this.getValue(var2);
- if (var3 == null) {
- var2 = java.util.jar.Attributes.Name.SIGNATURE_VERSION.toString();
- var3 = this.getValue(var2);
- }
-
- if (var3 != null) {
- var1.writeBytes(var2 + ": " + var3 + "\r\n");
- }
-
- for(Map.Entry var5 : this.entrySet()) {
- String var6 = ((Name)var5.getKey()).toString();
- if (var3 != null && !var6.equalsIgnoreCase(var2)) {
- StringBuffer var7 = new StringBuffer(var6);
- var7.append(": ");
- var7.append((String)var5.getValue());
- var7.append("\r\n");
- Manifest.make72Safe(var7);
- var1.writeBytes(var7.toString());
- }
- }
-
- var1.writeBytes("\r\n");
- }
-
- void read(Manifest.FastInputStream var1, byte[] var2) throws IOException {
- String var3 = null;
- String var4 = null;
-
- while(true) {
- int var5;
- if ((var5 = var1.readLine(var2)) != -1) {
- --var5;
- if (var2[var5] != 10) {
- throw new IOException("line too long");
- }
-
- if (var5 > 0 && var2[var5 - 1] == 13) {
- --var5;
- }
-
- if (var5 != 0) {
- int var6 = 0;
- if (var2[0] == 32) {
- if (var3 == null) {
- throw new IOException("misplaced continuation line");
- }
-
- var4 = var4 + new String(var2, 0, 1, var5 - 1);
- } else {
- while(var2[var6++] != 58) {
- if (var6 >= var5) {
- throw new IOException("invalid header field");
- }
- }
-
- if (var2[var6++] != 32) {
- throw new IOException("invalid header field");
- }
-
- var3 = new String(var2, 0, 0, var6 - 2);
- var4 = new String(var2, 0, var6, var5 - var6);
- }
-
- try {
- this.putValue(var3, var4);
- continue;
- } catch (IllegalArgumentException var8) {
- throw new IOException("invalid header field name: " + var3);
- }
- }
- }
-
- return;
- }
- }
- }
-