package com.worklight.jsonstore.database;

import com.worklight.jsonstore.api.JSONStoreCollection;
import com.worklight.jsonstore.api.JSONStoreQueryParts;
import com.worklight.jsonstore.util.JSONStoreUtil;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class QueryBuilderSelect extends QueryBuilder
{
  private Integer limit;
  private Integer offset;
  private Map<String, Boolean> selectStatements;
  private LinkedHashMap<String, SortDirection> sort;

  public QueryBuilderSelect(JSONStoreCollection paramJSONStoreCollection, JSONStoreQueryParts paramJSONStoreQueryParts)
  {
    super(paramJSONStoreCollection, paramJSONStoreQueryParts);
    generalInit();
  }

  private void generalInit()
  {
    this.limit = null;
    this.offset = null;
    this.selectStatements = new LinkedHashMap();
    this.sort = new LinkedHashMap();
  }

  public void addSelectStatement(String paramString, Boolean paramBoolean)
    throws IllegalArgumentException
  {
    if ((paramString == null) || (paramString.isEmpty()))
      throw new IllegalArgumentException("statement parameter is null or empty");
    if (paramBoolean == null)
      throw new IllegalArgumentException("is_special parameter is null");
    this.selectStatements.put(paramString, paramBoolean);
  }

  protected void buildModifiers(StringBuilder paramStringBuilder, List<String> paramList)
    throws IllegalArgumentException
  {
    if (paramStringBuilder == null)
      throw new IllegalArgumentException("queryString parameter is null");
    if (paramList == null)
      throw new IllegalArgumentException("selectionArgs parameter is null");
    Integer localInteger1 = getLimit();
    Integer localInteger2 = getOffset();
    if (this.sort == null)
      this.sort = new LinkedHashMap();
    if ((localInteger1 != null) && (localInteger1.intValue() < 0))
    {
      this.sort.clear();
      this.sort.put("_id", SortDirection.DESCENDING);
    }
    if (this.sort.size() > 0)
    {
      Iterator localIterator = this.sort.entrySet().iterator();
      StringBuilder localStringBuilder = new StringBuilder();
      while (localIterator.hasNext())
      {
        Map.Entry localEntry = (Map.Entry)localIterator.next();
        String str = (String)localEntry.getKey();
        SortDirection localSortDirection = (SortDirection)localEntry.getValue();
        if (localSortDirection == SortDirection.ASCENDING)
        {
          localStringBuilder.append(",");
          localStringBuilder.append(" [" + JSONStoreUtil.getDatabaseSafeSearchFieldName(str) + "] ASC ");
        }
        else if (localSortDirection == SortDirection.DESCENDING)
        {
          localStringBuilder.append(",");
          localStringBuilder.append(" [" + JSONStoreUtil.getDatabaseSafeSearchFieldName(str) + "] DESC ");
        }
      }
      if (localStringBuilder.length() > 1)
      {
        localStringBuilder.deleteCharAt(0);
        paramStringBuilder.append("  ORDER BY  ");
        paramStringBuilder.append(localStringBuilder);
      }
    }
    if (localInteger1 != null)
    {
      int i = localInteger1.intValue();
      if (i < 0)
        i = -i;
      paramStringBuilder.append("  LIMIT  " + i + " ");
    }
    if ((localInteger2 != null) && (localInteger1 != null))
      paramStringBuilder.append("  OFFSET  " + localInteger2 + " ");
  }

  protected void buildSelectStatement(StringBuilder paramStringBuilder, List<String> paramList)
    throws IllegalArgumentException
  {
    if (paramStringBuilder == null)
      throw new IllegalArgumentException("query_string parameter is null");
    if (paramList == null)
      throw new IllegalArgumentException("selection_args parameter is null");
    if (this.selectStatements.isEmpty())
      this.selectStatements.put("*", Boolean.valueOf(true));
    Iterator localIterator = this.selectStatements.keySet().iterator();
    paramStringBuilder.append(" ");
    while (localIterator.hasNext())
    {
      String str1 = (String)localIterator.next();
      Boolean localBoolean = (Boolean)this.selectStatements.get(str1);
      String str2 = str1;
      if (!localBoolean.booleanValue())
        str2 = "[" + JSONStoreUtil.getDatabaseSafeSearchFieldName(str2) + "]";
      paramStringBuilder.append(str2);
      if (localIterator.hasNext())
        paramStringBuilder.append(", ");
    }
    paramStringBuilder.append(" ");
  }

  public void clearAllModifiers()
  {
    this.limit = null;
    this.offset = null;
    if (this.sort != null)
      this.sort.clear();
  }

  public void clearAllSelectStatements()
  {
    this.selectStatements.clear();
  }

  public void convertToQueryString(StringBuilder paramStringBuilder, List<String> paramList)
    throws IllegalArgumentException
  {
    paramStringBuilder.append(" SELECT ");
    buildSelectStatement(paramStringBuilder, paramList);
    paramStringBuilder.append(" FROM ");
    buildFromClause(paramStringBuilder, paramList);
    paramStringBuilder.append(" WHERE ");
    buildWhereClause(paramStringBuilder, paramList);
    buildModifiers(paramStringBuilder, paramList);
  }

  public Integer getLimit()
  {
    return this.limit;
  }

  public Integer getOffset()
  {
    return this.offset;
  }

  protected Map<String, Boolean> getSelectStatements()
  {
    return this.selectStatements;
  }

  public LinkedHashMap<String, SortDirection> getSort()
  {
    return this.sort;
  }

  public void setLimit(Integer paramInteger)
    throws IllegalArgumentException
  {
    this.limit = paramInteger;
  }

  public void setOffset(Integer paramInteger)
    throws IllegalArgumentException
  {
    this.offset = paramInteger;
  }

  public void setSort(LinkedHashMap<String, SortDirection> paramLinkedHashMap)
  {
    this.sort = paramLinkedHashMap;
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.worklight.jsonstore.database.QueryBuilderSelect
 * JD-Core Version:    0.6.2
 */