nu.java 3.51 KB
import com.google.common.annotations.GwtCompatible;
import com.google.common.collect.BoundType;
import com.google.common.collect.ForwardingMultiset;
import com.google.common.collect.Multiset;
import com.google.common.collect.Multiset.Entry;
import com.google.common.collect.Multisets;
import com.google.common.collect.Multisets.c;
import com.google.common.collect.Ordering;
import com.google.common.collect.SortedMultiset;
import java.util.Comparator;
import java.util.Iterator;
import java.util.NavigableSet;
import java.util.Set;

@GwtCompatible(emulated=true)
public abstract class nu<E>
  extends ForwardingMultiset<E>
  implements SortedMultiset<E>
{
  private transient Comparator<? super E> a;
  private transient NavigableSet<E> b;
  private transient Set<Multiset.Entry<E>> c;
  
  abstract SortedMultiset<E> a();
  
  abstract Iterator<Multiset.Entry<E>> b();
  
  public Comparator<? super E> comparator()
  {
    Comparator localComparator = this.a;
    Object localObject = localComparator;
    if (localComparator == null)
    {
      localObject = Ordering.from(a().comparator()).reverse();
      this.a = ((Comparator)localObject);
    }
    return (Comparator<? super E>)localObject;
  }
  
  protected Multiset<E> delegate()
  {
    return a();
  }
  
  public SortedMultiset<E> descendingMultiset()
  {
    return a();
  }
  
  public NavigableSet<E> elementSet()
  {
    NavigableSet localNavigableSet = this.b;
    Object localObject = localNavigableSet;
    if (localNavigableSet == null)
    {
      localObject = new qb.b(this);
      this.b = ((NavigableSet)localObject);
    }
    return (NavigableSet<E>)localObject;
  }
  
  public Set<Multiset.Entry<E>> entrySet()
  {
    Set localSet = this.c;
    Object localObject = localSet;
    if (localSet == null)
    {
      localObject = new Multisets.c()
      {
        final Multiset<E> a()
        {
          return nu.this;
        }
        
        public final Iterator<Multiset.Entry<E>> iterator()
        {
          return nu.this.b();
        }
        
        public final int size()
        {
          return nu.this.a().entrySet().size();
        }
      };
      this.c = ((Set)localObject);
    }
    return (Set<Multiset.Entry<E>>)localObject;
  }
  
  public Multiset.Entry<E> firstEntry()
  {
    return a().lastEntry();
  }
  
  public SortedMultiset<E> headMultiset(E paramE, BoundType paramBoundType)
  {
    return a().tailMultiset(paramE, paramBoundType).descendingMultiset();
  }
  
  public Iterator<E> iterator()
  {
    return Multisets.a(this);
  }
  
  public Multiset.Entry<E> lastEntry()
  {
    return a().firstEntry();
  }
  
  public Multiset.Entry<E> pollFirstEntry()
  {
    return a().pollLastEntry();
  }
  
  public Multiset.Entry<E> pollLastEntry()
  {
    return a().pollFirstEntry();
  }
  
  public SortedMultiset<E> subMultiset(E paramE1, BoundType paramBoundType1, E paramE2, BoundType paramBoundType2)
  {
    return a().subMultiset(paramE2, paramBoundType2, paramE1, paramBoundType1).descendingMultiset();
  }
  
  public SortedMultiset<E> tailMultiset(E paramE, BoundType paramBoundType)
  {
    return a().headMultiset(paramE, paramBoundType).descendingMultiset();
  }
  
  public Object[] toArray()
  {
    return standardToArray();
  }
  
  public <T> T[] toArray(T[] paramArrayOfT)
  {
    return standardToArray(paramArrayOfT);
  }
  
  public String toString()
  {
    return entrySet().toString();
  }
}


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