ContiguousSet.java 4.09 KB
package com.google.common.collect;

import com.google.common.annotations.Beta;
import com.google.common.annotations.GwtCompatible;
import com.google.common.annotations.GwtIncompatible;
import com.google.common.base.Preconditions;
import java.util.Comparator;
import java.util.NoSuchElementException;
import nq;
import nv;
import pg;

@Beta
@GwtCompatible(emulated=true)
public abstract class ContiguousSet<C extends Comparable>
  extends ImmutableSortedSet<C>
{
  public final DiscreteDomain<C> a;
  
  protected ContiguousSet(DiscreteDomain<C> paramDiscreteDomain)
  {
    super(Ordering.natural());
    this.a = paramDiscreteDomain;
  }
  
  @Deprecated
  public static <E> ImmutableSortedSet.Builder<E> builder()
  {
    throw new UnsupportedOperationException();
  }
  
  public static <C extends Comparable> ContiguousSet<C> create(Range<C> paramRange, DiscreteDomain<C> paramDiscreteDomain)
  {
    Preconditions.checkNotNull(paramRange);
    Preconditions.checkNotNull(paramDiscreteDomain);
    for (;;)
    {
      Object localObject2;
      try
      {
        if (paramRange.hasLowerBound()) {
          break label123;
        }
        localObject1 = paramRange.intersection(Range.atLeast(paramDiscreteDomain.minValue()));
        localObject2 = localObject1;
        if (!paramRange.hasUpperBound()) {
          localObject2 = ((Range)localObject1).intersection(Range.atMost(paramDiscreteDomain.maxValue()));
        }
        if ((((Range)localObject2).isEmpty()) || (Range.a(paramRange.b.a(paramDiscreteDomain), paramRange.c.b(paramDiscreteDomain)) > 0))
        {
          i = 1;
          if (i == 0) {
            break label112;
          }
          return new nv(paramDiscreteDomain);
        }
      }
      catch (NoSuchElementException paramRange)
      {
        throw new IllegalArgumentException(paramRange);
      }
      int i = 0;
      continue;
      label112:
      return new pg((Range)localObject2, paramDiscreteDomain);
      label123:
      Object localObject1 = paramRange;
    }
  }
  
  protected abstract ContiguousSet<C> a(C paramC, boolean paramBoolean);
  
  protected abstract ContiguousSet<C> a(C paramC1, boolean paramBoolean1, C paramC2, boolean paramBoolean2);
  
  protected abstract ContiguousSet<C> b(C paramC, boolean paramBoolean);
  
  public ContiguousSet<C> headSet(C paramC)
  {
    return a((Comparable)Preconditions.checkNotNull(paramC), false);
  }
  
  @GwtIncompatible("NavigableSet")
  public ContiguousSet<C> headSet(C paramC, boolean paramBoolean)
  {
    return a((Comparable)Preconditions.checkNotNull(paramC), paramBoolean);
  }
  
  public abstract ContiguousSet<C> intersection(ContiguousSet<C> paramContiguousSet);
  
  public abstract Range<C> range();
  
  public abstract Range<C> range(BoundType paramBoundType1, BoundType paramBoundType2);
  
  public ContiguousSet<C> subSet(C paramC1, C paramC2)
  {
    Preconditions.checkNotNull(paramC1);
    Preconditions.checkNotNull(paramC2);
    if (comparator().compare(paramC1, paramC2) <= 0) {}
    for (boolean bool = true;; bool = false)
    {
      Preconditions.checkArgument(bool);
      return a(paramC1, true, paramC2, false);
    }
  }
  
  @GwtIncompatible("NavigableSet")
  public ContiguousSet<C> subSet(C paramC1, boolean paramBoolean1, C paramC2, boolean paramBoolean2)
  {
    Preconditions.checkNotNull(paramC1);
    Preconditions.checkNotNull(paramC2);
    if (comparator().compare(paramC1, paramC2) <= 0) {}
    for (boolean bool = true;; bool = false)
    {
      Preconditions.checkArgument(bool);
      return a(paramC1, paramBoolean1, paramC2, paramBoolean2);
    }
  }
  
  public ContiguousSet<C> tailSet(C paramC)
  {
    return b((Comparable)Preconditions.checkNotNull(paramC), true);
  }
  
  @GwtIncompatible("NavigableSet")
  public ContiguousSet<C> tailSet(C paramC, boolean paramBoolean)
  {
    return b((Comparable)Preconditions.checkNotNull(paramC), paramBoolean);
  }
  
  public String toString()
  {
    return range().toString();
  }
}


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