
com.dropbox.core.DbxAccountInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sdk Show documentation
Show all versions of sdk Show documentation
A client library for Dropbox's HTTP-based "Core API".
The newest version!
package com.dropbox.core;
import com.dropbox.core.json.JsonExtractionException;
import com.dropbox.core.json.JsonExtractor;
import com.dropbox.core.util.DumpWriter;
import static com.dropbox.core.util.StringUtil.jq;
import com.fasterxml.jackson.core.JsonLocation;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import java.io.IOException;
public class DbxAccountInfo extends DbxDataObject
{
public final long userId;
public final String displayName;
public final String country;
public final String referralLink;
public final Quota quota;
public DbxAccountInfo(long userId, String displayName, String country, String referralLink, Quota quota)
{
this.userId = userId;
this.displayName = displayName;
this.country = country;
this.referralLink = referralLink;
this.quota = quota;
}
@Override
protected void dumpFields(DumpWriter out)
{
out.field("userId");
dump(out, Long.toString(userId));
out.field("displayName");
dump(out, displayName);
out.field("country");
dump(out, country);
out.field("referralLink");
dump(out, referralLink);
out.field("quota");
dump(out, quota);
}
public String toString()
{
return "(" + userId + ", " + jq(displayName) + ")";
}
public static final class Quota extends DbxDataObject
{
public final long total;
public final long normal;
public final long shared;
public Quota(long quota, long normal, long quotaShared)
{
this.total = quota;
this.normal = normal;
this.shared = quotaShared;
}
@Override
protected void dumpFields(DumpWriter out)
{
out.field("total");
dump(out, Long.toString(total));
out.field("normal");
dump(out, Long.toString(normal));
out.field("shared");
dump(out, Long.toString(shared));
}
// ------------------------------------------------------
// JSON parsing
public static final JsonExtractor Extractor = new JsonExtractor()
{
public final Quota extract(JsonParser parser)
throws IOException, JsonExtractionException
{
JsonLocation top = JsonExtractor.expectObjectStart(parser);
long quota = -1;
long normal = -1;
long shared = -1;
while (parser.getCurrentToken() == JsonToken.FIELD_NAME) {
String fieldName = parser.getCurrentName();
parser.nextToken();
int fi = FM.get(fieldName);
try {
if (fi == -1) {
// Unknown field. Skip over it.
JsonExtractor.skipValue(parser);
}
switch (fi) {
case FM_quota: quota = JsonExtractor.extractUnsignedLongField(parser, fieldName, quota); break;
case FM_normal: normal = JsonExtractor.extractUnsignedLongField(parser, fieldName, normal); break;
case FM_shared: shared = JsonExtractor.extractUnsignedLongField(parser, fieldName, shared); break;
default:
throw new AssertionError("bad index: " + fi + ", field = \"" + fieldName + "\"");
}
}
catch (JsonExtractionException ex) {
throw ex.addFieldContext(fieldName);
}
}
JsonExtractor.expectObjectEnd(parser);
if (quota < 0) throw new JsonExtractionException("missing field \"quota\"", top);
if (normal < 0) throw new JsonExtractionException("missing field \"normal\"", top);
if (shared < 0) throw new JsonExtractionException("missing field \"shared\"", top);
return new Quota(quota, normal, shared);
}
};
private static final int FM_quota = 0;
private static final int FM_normal = 1;
private static final int FM_shared = 2;
private static final JsonExtractor.FieldMapping FM;
static {
JsonExtractor.FieldMapping.Builder b = new JsonExtractor.FieldMapping.Builder();
b.add("quota", FM_quota);
b.add("normal", FM_normal);
b.add("shared", FM_shared);
FM = b.build();
}
}
// ------------------------------------------------------
// JSON parsing
public static final JsonExtractor Extractor = new JsonExtractor()
{
public final DbxAccountInfo extract(JsonParser parser)
throws IOException, JsonExtractionException
{
JsonLocation top = JsonExtractor.expectObjectStart(parser);
long uid = -1;
String display_name = null;
String country = null;
String referral_link = null;
Quota quota_info = null;
while (parser.getCurrentToken() == JsonToken.FIELD_NAME) {
String fieldName = parser.getCurrentName();
parser.nextToken();
try {
int fi = FM.get(fieldName);
switch (fi) {
case -1: JsonExtractor.skipValue(parser); break;
case FM_uid: uid = JsonExtractor.extractUnsignedLongField(parser, fieldName, uid); break;
case FM_display_name: display_name = JsonExtractor.StringExtractor.extractField(parser, fieldName, display_name); break;
case FM_country: country = JsonExtractor.StringExtractor.extractField(parser, fieldName, country); break;
case FM_referral_link: referral_link = JsonExtractor.StringExtractor.extractField(parser, fieldName, referral_link); break;
case FM_quota_info: quota_info = Quota.Extractor.extractField(parser, fieldName, quota_info); break;
default:
throw new AssertionError("bad index: " + fi + ", field = \"" + fieldName + "\"");
}
}
catch (JsonExtractionException ex) {
throw ex.addFieldContext(fieldName);
}
}
JsonExtractor.expectObjectEnd(parser);
if (uid < 0) throw new JsonExtractionException("missing field \"uid\"", top);
if (display_name == null) throw new JsonExtractionException("missing field \"display_name\"", top);
if (country == null) throw new JsonExtractionException("missing field \"country\"", top);
if (referral_link == null) throw new JsonExtractionException("missing field \"referral_link\"", top);
if (quota_info == null) throw new JsonExtractionException("missing field \"quota_info\"", top);
return new DbxAccountInfo(uid, display_name, country, referral_link, quota_info);
}
};
private static final int FM_uid = 0;
private static final int FM_display_name = 1;
private static final int FM_country = 2;
private static final int FM_referral_link = 3;
private static final int FM_quota_info = 4;
private static final JsonExtractor.FieldMapping FM;
static {
JsonExtractor.FieldMapping.Builder b = new JsonExtractor.FieldMapping.Builder();
b.add("uid", FM_uid);
b.add("display_name", FM_display_name);
b.add("country", FM_country);
b.add("referral_link", FM_referral_link);
b.add("quota_info", FM_quota_info);
FM = b.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy