Optional.java 2.23 KB
package com.google.common.base;

import com.google.common.annotations.Beta;
import com.google.common.annotations.GwtCompatible;
import java.io.Serializable;
import java.util.Iterator;
import java.util.Set;
import javax.annotation.Nullable;
import mg;
import mh;
import mk;

@GwtCompatible(serializable=true)
public abstract class Optional<T>
  implements Serializable
{
  private static final long serialVersionUID = 0L;
  
  public static <T> Optional<T> absent()
  {
    return mg.a();
  }
  
  public static <T> Optional<T> fromNullable(@Nullable T paramT)
  {
    if (paramT == null) {
      return absent();
    }
    return new mk(paramT);
  }
  
  public static <T> Optional<T> of(T paramT)
  {
    return new mk(Preconditions.checkNotNull(paramT));
  }
  
  @Beta
  public static <T> Iterable<T> presentInstances(Iterable<? extends Optional<? extends T>> paramIterable)
  {
    Preconditions.checkNotNull(paramIterable);
    new Iterable()
    {
      public final Iterator<T> iterator()
      {
        new mh()
        {
          private final Iterator<? extends Optional<? extends T>> b = (Iterator)Preconditions.checkNotNull(Optional.1.this.a.iterator());
          
          protected final T a()
          {
            while (this.b.hasNext())
            {
              Optional localOptional = (Optional)this.b.next();
              if (localOptional.isPresent()) {
                return (T)localOptional.get();
              }
            }
            return (T)b();
          }
        };
      }
    };
  }
  
  public abstract Set<T> asSet();
  
  public abstract boolean equals(@Nullable Object paramObject);
  
  public abstract T get();
  
  public abstract int hashCode();
  
  public abstract boolean isPresent();
  
  public abstract Optional<T> or(Optional<? extends T> paramOptional);
  
  @Beta
  public abstract T or(Supplier<? extends T> paramSupplier);
  
  public abstract T or(T paramT);
  
  @Nullable
  public abstract T orNull();
  
  public abstract String toString();
  
  public abstract <V> Optional<V> transform(Function<? super T, V> paramFunction);
}


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