ArrayBasedCharEscaper.java 2 KB
package com.google.common.escape;

import com.google.common.annotations.Beta;
import com.google.common.annotations.GwtCompatible;
import com.google.common.base.Preconditions;
import java.util.Map;

@Beta
@GwtCompatible
public abstract class ArrayBasedCharEscaper
  extends CharEscaper
{
  private final char[][] a;
  private final int b;
  private final char c;
  private final char d;
  
  protected ArrayBasedCharEscaper(ArrayBasedEscaperMap paramArrayBasedEscaperMap, char paramChar1, char paramChar2)
  {
    Preconditions.checkNotNull(paramArrayBasedEscaperMap);
    this.a = paramArrayBasedEscaperMap.a;
    this.b = this.a.length;
    int i = paramChar1;
    char c1 = paramChar2;
    if (paramChar2 < paramChar1)
    {
      c1 = '\000';
      i = 65535;
    }
    this.c = i;
    this.d = c1;
  }
  
  protected ArrayBasedCharEscaper(Map<Character, String> paramMap, char paramChar1, char paramChar2)
  {
    this(ArrayBasedEscaperMap.create(paramMap), paramChar1, paramChar2);
  }
  
  public final String escape(String paramString)
  {
    Preconditions.checkNotNull(paramString);
    int i = 0;
    for (;;)
    {
      String str = paramString;
      if (i < paramString.length())
      {
        int j = paramString.charAt(i);
        if (((j < this.b) && (this.a[j] != null)) || (j > this.d) || (j < this.c)) {
          str = escapeSlow(paramString, i);
        }
      }
      else
      {
        return str;
      }
      i += 1;
    }
  }
  
  protected final char[] escape(char paramChar)
  {
    if (paramChar < this.b)
    {
      char[] arrayOfChar = this.a[paramChar];
      if (arrayOfChar != null) {
        return arrayOfChar;
      }
    }
    if ((paramChar >= this.c) && (paramChar <= this.d)) {
      return null;
    }
    return escapeUnsafe(paramChar);
  }
  
  protected abstract char[] escapeUnsafe(char paramChar);
}


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