BasicThreadFactory.java 3.8 KB
package org.apache.commons.lang3.concurrent;

import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.lang3.builder.Builder;

public class BasicThreadFactory
  implements ThreadFactory
{
  private final AtomicLong a;
  private final ThreadFactory b;
  private final Thread.UncaughtExceptionHandler c;
  private final String d;
  private final Integer e;
  private final Boolean f;
  
  private BasicThreadFactory(Builder paramBuilder)
  {
    if (Builder.a(paramBuilder) == null) {}
    for (this.b = Executors.defaultThreadFactory();; this.b = Builder.a(paramBuilder))
    {
      this.d = Builder.b(paramBuilder);
      this.e = Builder.c(paramBuilder);
      this.f = Builder.d(paramBuilder);
      this.c = Builder.e(paramBuilder);
      this.a = new AtomicLong();
      return;
    }
  }
  
  public final Boolean getDaemonFlag()
  {
    return this.f;
  }
  
  public final String getNamingPattern()
  {
    return this.d;
  }
  
  public final Integer getPriority()
  {
    return this.e;
  }
  
  public long getThreadCount()
  {
    return this.a.get();
  }
  
  public final Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()
  {
    return this.c;
  }
  
  public final ThreadFactory getWrappedFactory()
  {
    return this.b;
  }
  
  public Thread newThread(Runnable paramRunnable)
  {
    paramRunnable = getWrappedFactory().newThread(paramRunnable);
    if (getNamingPattern() != null)
    {
      long l = this.a.incrementAndGet();
      paramRunnable.setName(String.format(getNamingPattern(), new Object[] { Long.valueOf(l) }));
    }
    if (getUncaughtExceptionHandler() != null) {
      paramRunnable.setUncaughtExceptionHandler(getUncaughtExceptionHandler());
    }
    if (getPriority() != null) {
      paramRunnable.setPriority(getPriority().intValue());
    }
    if (getDaemonFlag() != null) {
      paramRunnable.setDaemon(getDaemonFlag().booleanValue());
    }
    return paramRunnable;
  }
  
  public static class Builder
    implements Builder<BasicThreadFactory>
  {
    private ThreadFactory a;
    private Thread.UncaughtExceptionHandler b;
    private String c;
    private Integer d;
    private Boolean e;
    
    public BasicThreadFactory build()
    {
      BasicThreadFactory localBasicThreadFactory = new BasicThreadFactory(this, (byte)0);
      reset();
      return localBasicThreadFactory;
    }
    
    public Builder daemon(boolean paramBoolean)
    {
      this.e = Boolean.valueOf(paramBoolean);
      return this;
    }
    
    public Builder namingPattern(String paramString)
    {
      if (paramString == null) {
        throw new NullPointerException("Naming pattern must not be null!");
      }
      this.c = paramString;
      return this;
    }
    
    public Builder priority(int paramInt)
    {
      this.d = Integer.valueOf(paramInt);
      return this;
    }
    
    public void reset()
    {
      this.a = null;
      this.b = null;
      this.c = null;
      this.d = null;
      this.e = null;
    }
    
    public Builder uncaughtExceptionHandler(Thread.UncaughtExceptionHandler paramUncaughtExceptionHandler)
    {
      if (paramUncaughtExceptionHandler == null) {
        throw new NullPointerException("Uncaught exception handler must not be null!");
      }
      this.b = paramUncaughtExceptionHandler;
      return this;
    }
    
    public Builder wrappedFactory(ThreadFactory paramThreadFactory)
    {
      if (paramThreadFactory == null) {
        throw new NullPointerException("Wrapped ThreadFactory must not be null!");
      }
      this.a = paramThreadFactory;
      return this;
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/org/apache/commons/lang3/concurrent/BasicThreadFactory.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */