package com.google.common.collect;

import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import java.util.Arrays;
import java.util.Comparator;
import javax.annotation.Nullable;

public abstract class Ordering<T>
  implements Comparator<T>
{
  public static <T> Ordering<T> from(Comparator<T> paramComparator)
  {
    if ((paramComparator instanceof Ordering))
      return (Ordering)paramComparator;
    return new ComparatorOrdering(paramComparator);
  }

  public static <C extends Comparable> Ordering<C> natural()
  {
    return NaturalOrdering.INSTANCE;
  }

  public abstract int compare(@Nullable T paramT1, @Nullable T paramT2);

  public <E extends T> ImmutableList<E> immutableSortedCopy(Iterable<E> paramIterable)
  {
    Object[] arrayOfObject = (Object[])Iterables.toArray(paramIterable);
    int i = arrayOfObject.length;
    for (int j = 0; j < i; j++)
      Preconditions.checkNotNull(arrayOfObject[j]);
    Arrays.sort(arrayOfObject, this);
    return ImmutableList.asImmutableList(arrayOfObject);
  }

  public <F> Ordering<F> onResultOf(Function<F, ? extends T> paramFunction)
  {
    return new ByFunctionOrdering(paramFunction, this);
  }

  public <S extends T> Ordering<S> reverse()
  {
    return new ReverseOrdering(this);
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.google.common.collect.Ordering
 * JD-Core Version:    0.6.2
 */