StrMatcher.java 4.42 KB
package org.apache.commons.lang3.text;

import java.util.Arrays;
import org.apache.commons.lang3.StringUtils;

public abstract class StrMatcher
{
  private static final StrMatcher a = new a(',');
  private static final StrMatcher b = new a('\t');
  private static final StrMatcher c = new a(' ');
  private static final StrMatcher d = new b(" \t\n\r\f".toCharArray());
  private static final StrMatcher e = new e();
  private static final StrMatcher f = new a('\'');
  private static final StrMatcher g = new a('"');
  private static final StrMatcher h = new b("'\"".toCharArray());
  private static final StrMatcher i = new c();
  
  public static StrMatcher charMatcher(char paramChar)
  {
    return new a(paramChar);
  }
  
  public static StrMatcher charSetMatcher(String paramString)
  {
    if (StringUtils.isEmpty(paramString)) {
      return i;
    }
    if (paramString.length() == 1) {
      return new a(paramString.charAt(0));
    }
    return new b(paramString.toCharArray());
  }
  
  public static StrMatcher charSetMatcher(char... paramVarArgs)
  {
    if ((paramVarArgs == null) || (paramVarArgs.length == 0)) {
      return i;
    }
    if (paramVarArgs.length == 1) {
      return new a(paramVarArgs[0]);
    }
    return new b(paramVarArgs);
  }
  
  public static StrMatcher commaMatcher()
  {
    return a;
  }
  
  public static StrMatcher doubleQuoteMatcher()
  {
    return g;
  }
  
  public static StrMatcher noneMatcher()
  {
    return i;
  }
  
  public static StrMatcher quoteMatcher()
  {
    return h;
  }
  
  public static StrMatcher singleQuoteMatcher()
  {
    return f;
  }
  
  public static StrMatcher spaceMatcher()
  {
    return c;
  }
  
  public static StrMatcher splitMatcher()
  {
    return d;
  }
  
  public static StrMatcher stringMatcher(String paramString)
  {
    if (StringUtils.isEmpty(paramString)) {
      return i;
    }
    return new d(paramString);
  }
  
  public static StrMatcher tabMatcher()
  {
    return b;
  }
  
  public static StrMatcher trimMatcher()
  {
    return e;
  }
  
  public int isMatch(char[] paramArrayOfChar, int paramInt)
  {
    return isMatch(paramArrayOfChar, paramInt, 0, paramArrayOfChar.length);
  }
  
  public abstract int isMatch(char[] paramArrayOfChar, int paramInt1, int paramInt2, int paramInt3);
  
  static final class a
    extends StrMatcher
  {
    private final char a;
    
    a(char paramChar)
    {
      this.a = paramChar;
    }
    
    public final int isMatch(char[] paramArrayOfChar, int paramInt1, int paramInt2, int paramInt3)
    {
      if (this.a == paramArrayOfChar[paramInt1]) {
        return 1;
      }
      return 0;
    }
  }
  
  static final class b
    extends StrMatcher
  {
    private final char[] a;
    
    b(char[] paramArrayOfChar)
    {
      this.a = ((char[])paramArrayOfChar.clone());
      Arrays.sort(this.a);
    }
    
    public final int isMatch(char[] paramArrayOfChar, int paramInt1, int paramInt2, int paramInt3)
    {
      if (Arrays.binarySearch(this.a, paramArrayOfChar[paramInt1]) >= 0) {
        return 1;
      }
      return 0;
    }
  }
  
  static final class c
    extends StrMatcher
  {
    public final int isMatch(char[] paramArrayOfChar, int paramInt1, int paramInt2, int paramInt3)
    {
      return 0;
    }
  }
  
  static final class d
    extends StrMatcher
  {
    private final char[] a;
    
    d(String paramString)
    {
      this.a = paramString.toCharArray();
    }
    
    public final int isMatch(char[] paramArrayOfChar, int paramInt1, int paramInt2, int paramInt3)
    {
      int i = this.a.length;
      if (paramInt1 + i > paramInt3) {
        return 0;
      }
      paramInt2 = 0;
      for (;;)
      {
        if (paramInt2 >= this.a.length) {
          break label52;
        }
        if (this.a[paramInt2] != paramArrayOfChar[paramInt1]) {
          break;
        }
        paramInt2 += 1;
        paramInt1 += 1;
      }
      label52:
      return i;
    }
    
    public final String toString()
    {
      return super.toString() + ' ' + Arrays.toString(this.a);
    }
  }
  
  static final class e
    extends StrMatcher
  {
    public final int isMatch(char[] paramArrayOfChar, int paramInt1, int paramInt2, int paramInt3)
    {
      if (paramArrayOfChar[paramInt1] <= ' ') {
        return 1;
      }
      return 0;
    }
  }
}


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