All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.avos.avoscloud.AVStatusQuery Maven / Gradle / Ivy

package com.avos.avoscloud;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;

public class AVStatusQuery extends AVQuery {

  private static final String END = "end";
  private long sinceId;
  private String inboxType;
  private long maxId;
  private boolean count;
  private AVUser owner;
  private boolean selfStatusQuery = false;

  public AVStatusQuery() {
    super("_Status", null);
    getInclude().add("source");
  }

  public void setSinceId(long sinceId) {
    this.sinceId = sinceId;
  }

  public long getSinceId() {
    return sinceId;
  }

  public void setInboxType(String inboxType) {
    this.inboxType = inboxType;
  }

  protected String getInboxType() {
    return this.inboxType;
  }

  public long getMaxId() {
    return maxId;
  }

  public void setMaxId(long maxId) {
    this.maxId = maxId;
  }

  public boolean isCount() {
    return count;
  }

  public void setCount(boolean count) {
    this.count = count;
  }

  public AVUser getOwner() {
    return owner;
  }

  public void setOwner(AVUser owner) {
    this.owner = owner;
  }

  protected void setSelfQuery(boolean isSelf) {
    this.selfStatusQuery = isSelf;
  }

  @Override
  public Map assembleParameters() {
    if (selfStatusQuery && inboxType != null) {
      this.whereEqualTo("inboxType", inboxType);
    }
    super.assembleParameters();
    Map p = this.getParameters();
    if (owner != null) {
      String ownerId = owner.getObjectId();
      Map ownerMap = AVUtils.mapFromUserObjectId(ownerId);
      p.put("owner", JSON.toJSONString(ownerMap));
    }
    if (sinceId > 0) {
      p.put("sinceId", String.valueOf(sinceId));
    }
    if (!AVUtils.isBlankString(inboxType) && !selfStatusQuery) {
      p.put("inboxType", inboxType);
    }
    if (maxId > 0) {
      p.put("maxId", String.valueOf(maxId));
    }
    if (count) {
      p.put("count", "1");
    }
    conditions.setParameters(p);
    return p;
  }

  @Override
  protected void processAdditionalInfo(String content, FindCallback callback) {
    // TODO Auto-generated method stub
    if (InboxStatusFindCallback.class.isAssignableFrom(callback.getClass())) {
      InboxStatusFindCallback statusCallback = (InboxStatusFindCallback) callback;
      boolean v = false;
      try {
        com.alibaba.fastjson.JSONObject results = JSON.parseObject(content);
        if (results.containsKey(END)) {
          v = results.getBoolean(END);
        }
      } catch (Exception e) {
        LogUtil.avlog.e("Parsing json data error, " + content, e);
      }
      statusCallback.setEnd(v);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy