package com.worklight.jsonstore.api;

import com.worklight.jsonstore.database.SortDirection;
import com.worklight.jsonstore.exceptions.JSONStoreInvalidSortObjectException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public final class JSONStoreFindOptions
{
  private static final String OPTION_FILTER = "filter";
  private static final String OPTION_LIMIT = "limit";
  private static final String OPTION_OFFSET = "offset";
  private static final String OPTION_SORT_ARRAY = "sort";
  private Map<String, Boolean> filter;
  private boolean includeDeleted = false;
  private Integer limit;
  private Integer offset;
  private LinkedHashMap<String, SortDirection> sort;

  public JSONStoreFindOptions()
  {
    this.limit = null;
    this.offset = null;
    this.filter = new HashMap();
    this.sort = new LinkedHashMap();
  }

  public JSONStoreFindOptions(JSONObject paramJSONObject)
    throws JSONException, JSONStoreInvalidSortObjectException
  {
    this.filter = new HashMap();
    this.sort = new LinkedHashMap();
    String str1 = paramJSONObject.optString("limit", null);
    if (str1 != null)
      setLimit(Integer.valueOf(Integer.parseInt(str1)));
    String str2 = paramJSONObject.optString("offset", null);
    if (str2 != null)
      setOffset(Integer.valueOf(Integer.parseInt(str2)));
    JSONArray localJSONArray1 = paramJSONObject.optJSONArray("sort");
    if (localJSONArray1 != null)
    {
      int j = 0;
      if (j < localJSONArray1.length())
      {
        JSONObject localJSONObject = localJSONArray1.getJSONObject(j);
        Iterator localIterator = localJSONObject.keys();
        String str3 = (String)localIterator.next();
        if (localIterator.hasNext())
          throw new JSONStoreInvalidSortObjectException("One of the sort objects in the sort array has more than one field.");
        String str4 = localJSONObject.getString(str3);
        if (str4.equalsIgnoreCase("ASC"))
          sortBySearchFieldAscending(str3);
        while (true)
        {
          j++;
          break;
          if (!str4.equalsIgnoreCase("DESC"))
            break label201;
          sortBySearchFieldDescending(str3);
        }
        label201: throw new JSONStoreInvalidSortObjectException("Invalid sorting direction (ascending or descending) specified.");
      }
    }
    JSONArray localJSONArray2 = paramJSONObject.optJSONArray("filter");
    if (localJSONArray2 != null)
      for (int i = 0; i < localJSONArray2.length(); i++)
        addSearchFilter(localJSONArray2.getString(i));
  }

  public void addSearchFilter(String paramString)
  {
    this.filter.put(paramString, Boolean.valueOf(false));
  }

  void addSearchFilterSpecial(String paramString)
  {
    this.filter.put(paramString, Boolean.valueOf(true));
  }

  public Integer getLimit()
  {
    return this.limit;
  }

  public Integer getOffset()
  {
    return this.offset;
  }

  Map<String, Boolean> getSearchFilters()
  {
    return this.filter;
  }

  public LinkedHashMap<String, SortDirection> getSort()
  {
    return this.sort;
  }

  public void includeDeletedDocuments(boolean paramBoolean)
  {
    this.includeDeleted = paramBoolean;
  }

  public void setLimit(Integer paramInteger)
  {
    this.limit = paramInteger;
  }

  public void setOffset(Integer paramInteger)
  {
    this.offset = paramInteger;
  }

  public void setSearchFilters(List<String> paramList)
  {
    this.filter.clear();
    Iterator localIterator = paramList.iterator();
    while (localIterator.hasNext())
    {
      String str = (String)localIterator.next();
      this.filter.put(str, Boolean.valueOf(false));
    }
  }

  public boolean shouldIncludeDeletedDocuments()
  {
    return this.includeDeleted;
  }

  public void sortBySearchFieldAscending(String paramString)
  {
    this.sort.put(paramString, SortDirection.ASCENDING);
  }

  public void sortBySearchFieldDescending(String paramString)
  {
    this.sort.put(paramString, SortDirection.DESCENDING);
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.worklight.jsonstore.api.JSONStoreFindOptions
 * JD-Core Version:    0.6.2
 */