CharEscaperBuilder.java 2.47 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.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

@Beta
@GwtCompatible
public final class CharEscaperBuilder
{
  private final Map<Character, String> a = new HashMap();
  private int b = -1;
  
  public final CharEscaperBuilder addEscape(char paramChar, String paramString)
  {
    this.a.put(Character.valueOf(paramChar), Preconditions.checkNotNull(paramString));
    if (paramChar > this.b) {
      this.b = paramChar;
    }
    return this;
  }
  
  public final CharEscaperBuilder addEscapes(char[] paramArrayOfChar, String paramString)
  {
    Preconditions.checkNotNull(paramString);
    int j = paramArrayOfChar.length;
    int i = 0;
    while (i < j)
    {
      addEscape(paramArrayOfChar[i], paramString);
      i += 1;
    }
    return this;
  }
  
  public final char[][] toArray()
  {
    char[][] arrayOfChar = new char[this.b + 1][];
    Iterator localIterator = this.a.entrySet().iterator();
    while (localIterator.hasNext())
    {
      Map.Entry localEntry = (Map.Entry)localIterator.next();
      arrayOfChar[((Character)localEntry.getKey()).charValue()] = ((String)localEntry.getValue()).toCharArray();
    }
    return arrayOfChar;
  }
  
  public final Escaper toEscaper()
  {
    return new a(toArray());
  }
  
  static final class a
    extends CharEscaper
  {
    private final char[][] a;
    private final int b;
    
    a(char[][] paramArrayOfChar)
    {
      this.a = paramArrayOfChar;
      this.b = paramArrayOfChar.length;
    }
    
    public final String escape(String paramString)
    {
      int j = paramString.length();
      int i = 0;
      for (;;)
      {
        String str = paramString;
        if (i < j)
        {
          int k = paramString.charAt(i);
          if ((k < this.a.length) && (this.a[k] != null)) {
            str = escapeSlow(paramString, i);
          }
        }
        else
        {
          return str;
        }
        i += 1;
      }
    }
    
    protected final char[] escape(char paramChar)
    {
      if (paramChar < this.b) {
        return this.a[paramChar];
      }
      return null;
    }
  }
}


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