use of com.google.gson.JsonPrimitive in project immutables by immutables.
the class ExpectedSubtypesAdapterTest method readSubtype.
@Test
public void readSubtype() {
Gson gson = new Gson();
ExpectedSubtypesAdapter<Object> subtypesAdaper = ExpectedSubtypesAdapter.create(gson, objectType, longType, booleanType);
check(subtypesAdaper.fromJsonTree(new JsonPrimitive(true))).is(true);
check(subtypesAdaper.fromJsonTree(new JsonPrimitive(111))).is(111L);
}
use of com.google.gson.JsonPrimitive in project PushSms by koush.
the class MiddlewareService method createRegistration.
// fetch/create the gcm and public key info for a phone number
// from the server
private RegistrationFuture createRegistration(final String address, final Registration existing) {
final RegistrationFuture ret = new RegistrationFuture();
numberToRegistration.put(address, ret);
// the server will need to know all the email/number combos when we're attempting
// to locate the gcm registration id for a given number.
// this will return HASHED emails, not actual emails. this way the server is not privy
// to your contact information.
HashSet<String> emailHash = Helper.getEmailHashesForNumber(this, address);
if (emailHash.size() == 0) {
ret.setComplete(new Exception("no emails"));
return ret;
}
JsonObject post = new JsonObject();
JsonArray authorities = new JsonArray();
post.add("authorities", authorities);
post.addProperty("endpoint", address);
for (String authority : emailHash) {
authorities.add(new JsonPrimitive(authority));
}
logd("Fetching registration for " + address);
Ion.with(this).load(FIND_URL).setJsonObjectBody(post).asJsonObject().setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
Registration registration;
boolean wasUnregistered = false;
String oldRegistrationId = null;
// from the old registration
if (existing != null) {
oldRegistrationId = existing.registrationId;
wasUnregistered = existing.isUnregistered();
// reuse the existing registration to preserve sequence numbers, etc.
registration = existing;
registration.register();
} else {
registration = new Registration();
}
try {
if (e != null) {
// or lack of network access on the phone, etc.
throw e;
}
if (result.has("error"))
throw new Exception(result.toString());
String newRegistrationId = result.get("registration_id").getAsString();
// the number is available for an encrypted connection, grab
// the registration info.
registration.endpoint = address;
registration.registrationId = newRegistrationId;
BigInteger publicExponent = new BigInteger(Base64.decode(result.get("public_exponent").getAsString(), Base64.DEFAULT));
BigInteger publicModulus = new BigInteger(Base64.decode(result.get("public_modulus").getAsString(), Base64.DEFAULT));
RSAPublicKeySpec publicKeySpec = new RSAPublicKeySpec(publicModulus, publicExponent);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
registration.remotePublicKey = keyFactory.generatePublic(publicKeySpec);
logd("Registration complete for " + registration.endpoint);
// gets hit.
if (wasUnregistered && TextUtils.equals(newRegistrationId, oldRegistrationId))
throw new Exception("unregistered registration was refreshed, still invalid");
} catch (Exception ex) {
// mark this number as invalid
Log.e(LOGTAG, "registration fetch failure", ex);
registration.invalidate();
}
registry.register(address, registration);
ret.setComplete(registration);
// that will leverage the new registration id and potentially public key
if (gcmConnectionManager != null)
gcmConnectionManager.remove(address);
}
});
return ret;
}
use of com.google.gson.JsonPrimitive in project play-cookbook by spinscale.
the class SearchHelperPlugin method getJsonStatus.
@Override
public JsonObject getJsonStatus() {
JsonObject obj = new JsonObject();
List<ApplicationClass> classes = Play.classes.getAssignableClasses(IndexedModel.class);
for (ApplicationClass applicationClass : classes) {
if (isIndexed(applicationClass)) {
List<String> fieldList = getIndexedFields(applicationClass);
JsonArray fields = new JsonArray();
for (String field : fieldList) {
fields.add(new JsonPrimitive(field));
}
obj.add(applicationClass.name, fields);
}
}
return obj;
}
use of com.google.gson.JsonPrimitive in project disunity by ata4.
the class JsonTablePrinter method tableToJson.
private JsonArray tableToJson(Table<Integer, Integer, Object> table, Gson gson) {
JsonArray jsonTable = new JsonArray();
table.rowMap().forEach((rk, r) -> {
if (rk == 0) {
return;
}
JsonObject jsonRow = new JsonObject();
table.columnMap().forEach((ck, c) -> {
String key = String.valueOf(table.get(0, ck)).toLowerCase();
Object value = table.get(rk, ck);
jsonRow.add(key, gson.toJsonTree(value));
});
jsonTable.add(jsonRow);
});
JsonObject jsonRoot = new JsonObject();
if (file != null) {
jsonRoot.add("file", new JsonPrimitive(file.toString()));
}
return jsonTable;
}
use of com.google.gson.JsonPrimitive in project disunity by ata4.
the class JsonTablePrinter method print.
@Override
public void print(Collection<TableModel> models) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonObject jsonRoot = new JsonObject();
if (file != null) {
jsonRoot.add("file", new JsonPrimitive(file.toString()));
}
models.forEach(model -> {
jsonRoot.add(model.name().toLowerCase(), tableToJson(model.table(), gson));
});
gson.toJson(jsonRoot, out);
}
Aggregations