EnumBiMap.java 3.26 KB
package com.google.common.collect;

import com.google.common.annotations.GwtCompatible;
import com.google.common.annotations.GwtIncompatible;
import com.google.common.base.Preconditions;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Collection;
import java.util.EnumMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import mr;
import pt;
import qk;

@GwtCompatible(emulated=true)
public final class EnumBiMap<K extends Enum<K>, V extends Enum<V>>
  extends mr<K, V>
{
  @GwtIncompatible("not needed in emulated source.")
  private static final long serialVersionUID = 0L;
  private transient Class<K> b;
  private transient Class<V> c;
  
  private EnumBiMap(Class<K> paramClass, Class<V> paramClass1)
  {
    super(qk.a(new EnumMap(paramClass)), qk.a(new EnumMap(paramClass1)));
    this.b = paramClass;
    this.c = paramClass1;
  }
  
  static <K extends Enum<K>> Class<K> a(Map<K, ?> paramMap)
  {
    if ((paramMap instanceof EnumBiMap)) {
      return ((EnumBiMap)paramMap).keyType();
    }
    if ((paramMap instanceof EnumHashBiMap)) {
      return ((EnumHashBiMap)paramMap).keyType();
    }
    if (!paramMap.isEmpty()) {}
    for (boolean bool = true;; bool = false)
    {
      Preconditions.checkArgument(bool);
      return ((Enum)paramMap.keySet().iterator().next()).getDeclaringClass();
    }
  }
  
  public static <K extends Enum<K>, V extends Enum<V>> EnumBiMap<K, V> create(Class<K> paramClass, Class<V> paramClass1)
  {
    return new EnumBiMap(paramClass, paramClass1);
  }
  
  public static <K extends Enum<K>, V extends Enum<V>> EnumBiMap<K, V> create(Map<K, V> paramMap)
  {
    Class localClass = a(paramMap);
    Object localObject;
    if ((paramMap instanceof EnumBiMap))
    {
      localObject = ((EnumBiMap)paramMap).c;
      localObject = create(localClass, (Class)localObject);
      ((EnumBiMap)localObject).putAll(paramMap);
      return (EnumBiMap<K, V>)localObject;
    }
    if (!paramMap.isEmpty()) {}
    for (boolean bool = true;; bool = false)
    {
      Preconditions.checkArgument(bool);
      localObject = ((Enum)paramMap.values().iterator().next()).getDeclaringClass();
      break;
    }
  }
  
  @GwtIncompatible("java.io.ObjectInputStream")
  private void readObject(ObjectInputStream paramObjectInputStream)
    throws IOException, ClassNotFoundException
  {
    paramObjectInputStream.defaultReadObject();
    this.b = ((Class)paramObjectInputStream.readObject());
    this.c = ((Class)paramObjectInputStream.readObject());
    a(qk.a(new EnumMap(this.b)), qk.a(new EnumMap(this.c)));
    pt.a(this, paramObjectInputStream);
  }
  
  @GwtIncompatible("java.io.ObjectOutputStream")
  private void writeObject(ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    paramObjectOutputStream.defaultWriteObject();
    paramObjectOutputStream.writeObject(this.b);
    paramObjectOutputStream.writeObject(this.c);
    pt.a(this, paramObjectOutputStream);
  }
  
  public final Class<K> keyType()
  {
    return this.b;
  }
  
  public final Class<V> valueType()
  {
    return this.c;
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/google/common/collect/EnumBiMap.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */