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 / util / Collections$CheckedMap.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.8 KB  |  138 lines

  1. package java.util;
  2.  
  3. import java.io.Serializable;
  4. import java.lang.reflect.Array;
  5.  
  6. class Collections$CheckedMap<K, V> implements Map<K, V>, Serializable {
  7.    private static final long serialVersionUID = 5742860141034234728L;
  8.    // $FF: renamed from: m java.util.Map
  9.    private final Map<K, V> field_0;
  10.    final Class<K> keyType;
  11.    final Class<V> valueType;
  12.    private K[] zeroLengthKeyArray = null;
  13.    private V[] zeroLengthValueArray = null;
  14.    private transient Set<Map.Entry<K, V>> entrySet = null;
  15.  
  16.    private void typeCheck(Object var1, Object var2) {
  17.       if (!this.keyType.isInstance(var1)) {
  18.          throw new ClassCastException("Attempt to insert " + var1.getClass() + " key into collection with key type " + this.keyType);
  19.       } else if (!this.valueType.isInstance(var2)) {
  20.          throw new ClassCastException("Attempt to insert " + var2.getClass() + " value into collection with value type " + this.valueType);
  21.       }
  22.    }
  23.  
  24.    Collections$CheckedMap(Map<K, V> var1, Class<K> var2, Class<V> var3) {
  25.       if (var1 != null && var2 != null && var3 != null) {
  26.          this.field_0 = var1;
  27.          this.keyType = var2;
  28.          this.valueType = var3;
  29.       } else {
  30.          throw new NullPointerException();
  31.       }
  32.    }
  33.  
  34.    public int size() {
  35.       return this.field_0.size();
  36.    }
  37.  
  38.    public boolean isEmpty() {
  39.       return this.field_0.isEmpty();
  40.    }
  41.  
  42.    public boolean containsKey(Object var1) {
  43.       return this.field_0.containsKey(var1);
  44.    }
  45.  
  46.    public boolean containsValue(Object var1) {
  47.       return this.field_0.containsValue(var1);
  48.    }
  49.  
  50.    public V get(Object var1) {
  51.       return (V)this.field_0.get(var1);
  52.    }
  53.  
  54.    public V remove(Object var1) {
  55.       return (V)this.field_0.remove(var1);
  56.    }
  57.  
  58.    public void clear() {
  59.       this.field_0.clear();
  60.    }
  61.  
  62.    public Set<K> keySet() {
  63.       return this.field_0.keySet();
  64.    }
  65.  
  66.    public Collection<V> values() {
  67.       return this.field_0.values();
  68.    }
  69.  
  70.    public boolean equals(Object var1) {
  71.       return var1 == this || this.field_0.equals(var1);
  72.    }
  73.  
  74.    public int hashCode() {
  75.       return this.field_0.hashCode();
  76.    }
  77.  
  78.    public String toString() {
  79.       return this.field_0.toString();
  80.    }
  81.  
  82.    public V put(K var1, V var2) {
  83.       this.typeCheck(var1, var2);
  84.       return (V)this.field_0.put(var1, var2);
  85.    }
  86.  
  87.    public void putAll(Map<? extends K, ? extends V> var1) {
  88.       Object var2 = null;
  89.  
  90.       try {
  91.          var2 = var1.keySet().toArray(this.zeroLengthKeyArray());
  92.       } catch (ArrayStoreException var6) {
  93.          throw new ClassCastException();
  94.       }
  95.  
  96.       Object var3 = null;
  97.  
  98.       try {
  99.          var3 = var1.values().toArray(this.zeroLengthValueArray());
  100.       } catch (ArrayStoreException var5) {
  101.          throw new ClassCastException();
  102.       }
  103.  
  104.       if (((Object[])var2).length != ((Object[])var3).length) {
  105.          throw new ConcurrentModificationException();
  106.       } else {
  107.          for(int var4 = 0; var4 < ((Object[])var2).length; ++var4) {
  108.             this.field_0.put(((Object[])var2)[var4], ((Object[])var3)[var4]);
  109.          }
  110.  
  111.       }
  112.    }
  113.  
  114.    private K[] zeroLengthKeyArray() {
  115.       if (this.zeroLengthKeyArray == null) {
  116.          this.zeroLengthKeyArray = (K[])((Object[])Array.newInstance(this.keyType, 0));
  117.       }
  118.  
  119.       return this.zeroLengthKeyArray;
  120.    }
  121.  
  122.    private V[] zeroLengthValueArray() {
  123.       if (this.zeroLengthValueArray == null) {
  124.          this.zeroLengthValueArray = (V[])((Object[])Array.newInstance(this.valueType, 0));
  125.       }
  126.  
  127.       return this.zeroLengthValueArray;
  128.    }
  129.  
  130.    public Set<Map.Entry<K, V>> entrySet() {
  131.       if (this.entrySet == null) {
  132.          this.entrySet = new Collections.CheckedMap.CheckedEntrySet(this.field_0.entrySet(), this.valueType);
  133.       }
  134.  
  135.       return this.entrySet;
  136.    }
  137. }
  138.