com.microsoft.azure.documentdb.internal.query.PartitionedQueryExecutionInfoInternal Maven / Gradle / Ivy
package com.microsoft.azure.documentdb.internal.query;
import java.util.List;
import org.json.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.microsoft.azure.documentdb.JsonSerializable;
import com.microsoft.azure.documentdb.internal.Constants;
import com.microsoft.azure.documentdb.internal.Utils;
import com.microsoft.azure.documentdb.internal.routing.PartitionKeyInternal;
import com.microsoft.azure.documentdb.internal.routing.Range;
public final class PartitionedQueryExecutionInfoInternal extends JsonSerializable {
static final String QUERY_INFO_PROPERTY = "queryInfo";
static final String QUERY_RANGES_PROPERTY = "queryRanges";
static final String PARTITIONED_QUERY_EXECUTION_INFO_VERSION_PROPERTY = "partitionedQueryExecutionInfoVersion";
@SuppressWarnings("unchecked")
private static final Class> QUERY_RANGE_CLASS = (Class>) Range
.getEmptyRange((PartitionKeyInternal) null).getClass();
private QueryInfo queryInfo;
private List> queryRanges;
public PartitionedQueryExecutionInfoInternal() {
super.set(PARTITIONED_QUERY_EXECUTION_INFO_VERSION_PROPERTY, Constants.PartitionedQueryExecutionInfo.VERSION_1);
}
public PartitionedQueryExecutionInfoInternal(String jsonString) {
super(jsonString);
}
public PartitionedQueryExecutionInfoInternal(JSONObject jsonObject) {
super(jsonObject);
}
public int getVersion() {
return super.getInt(PARTITIONED_QUERY_EXECUTION_INFO_VERSION_PROPERTY);
}
public QueryInfo getQueryInfo() {
return this.queryInfo != null ? this.queryInfo
: (this.queryInfo = super.getObject(QUERY_INFO_PROPERTY, QueryInfo.class));
}
public void setQueryInfo(QueryInfo queryInfo) {
this.queryInfo = queryInfo;
}
public List> getQueryRanges() {
return this.queryRanges != null ? this.queryRanges
: (this.queryRanges = (List>) super.getCollection(QUERY_RANGES_PROPERTY, QUERY_RANGE_CLASS));
}
public void setQueryRanges(List> queryRanges) {
this.queryRanges = queryRanges;
}
public String toJson() {
try {
return Utils.getSimpleObjectMapper().writeValueAsString(this);
} catch (JsonProcessingException e) {
throw new IllegalStateException("Unable to serialize partition query execution info internal.");
}
}
}