use of com.google.gson.reflect.TypeToken in project structr by structr.
the class FromJsonFunction method apply.
@Override
public Object apply(final ActionContext ctx, final Object caller, final Object[] sources) {
if (sources != null && sources.length > 0) {
if (sources[0] == null) {
return "";
}
try {
final String source = sources[0].toString();
final Gson gson = new GsonBuilder().create();
List<Map<String, Object>> objects = new LinkedList<>();
if (StringUtils.startsWith(source, "[")) {
final List<Map<String, Object>> list = gson.fromJson(source, new TypeToken<List<Map<String, Object>>>() {
}.getType());
final List<GraphObjectMap> elements = new LinkedList<>();
if (list != null) {
objects.addAll(list);
}
for (final Map<String, Object> src : objects) {
final GraphObjectMap destination = new GraphObjectMap();
elements.add(destination);
recursivelyConvertMapToGraphObjectMap(destination, src, 0);
}
return elements;
} else if (StringUtils.startsWith(source, "{")) {
final Map<String, Object> value = gson.fromJson(source, new TypeToken<Map<String, Object>>() {
}.getType());
final GraphObjectMap destination = new GraphObjectMap();
if (value != null) {
recursivelyConvertMapToGraphObjectMap(destination, value, 0);
}
return destination;
}
} catch (Throwable t) {
logException(caller, t, sources);
}
return "";
} else {
logParameterError(caller, sources, ctx.isJavaScriptContext());
}
return usage(ctx.isJavaScriptContext());
}
use of com.google.gson.reflect.TypeToken in project structr by structr.
the class QueryCommand method processMessage.
@Override
public void processMessage(final WebSocketMessage webSocketData) {
final SecurityContext securityContext = getWebSocket().getSecurityContext();
final Map<String, Object> nodeData = webSocketData.getNodeData();
final String rawType = (String) nodeData.get("type");
final String properties = (String) nodeData.get("properties");
final Boolean exact = (Boolean) nodeData.get("exact");
final Class type = SchemaHelper.getEntityClassForRawType(rawType);
if (type == null) {
getWebSocket().send(MessageBuilder.status().code(404).message("Type " + rawType + " not found").build(), true);
return;
}
final String sortKey = webSocketData.getSortKey();
final int pageSize = webSocketData.getPageSize();
final int page = webSocketData.getPage();
final Query query = StructrApp.getInstance(securityContext).nodeQuery(type).page(page).pageSize(pageSize);
if (sortKey != null) {
final PropertyKey sortProperty = StructrApp.key(type, sortKey);
final String sortOrder = webSocketData.getSortOrder();
query.sort(sortProperty).order("desc".equals(sortOrder));
}
if (properties != null) {
try {
final Gson gson = new GsonBuilder().create();
final Map<String, Object> querySource = gson.fromJson(properties, new TypeToken<Map<String, Object>>() {
}.getType());
final PropertyMap queryMap = PropertyMap.inputTypeToJavaType(securityContext, type, querySource);
final boolean inexactQuery = exact != null && exact == false;
// add properties to query
for (final Entry<PropertyKey, Object> entry : queryMap.entrySet()) {
query.and(entry.getKey(), entry.getValue(), !inexactQuery);
}
} catch (FrameworkException fex) {
logger.warn("Exception occured", fex);
getWebSocket().send(MessageBuilder.status().code(fex.getStatus()).message(fex.getMessage()).build(), true);
return;
}
}
try {
// do search
final Result result = query.getResult();
// save raw result count
// filteredResults.size();
int resultCountBeforePaging = result.getRawResultCount();
// set full result list
webSocketData.setResult(result.getResults());
webSocketData.setRawResultCount(resultCountBeforePaging);
// send only over local connection
getWebSocket().send(webSocketData, true);
} catch (FrameworkException fex) {
logger.warn("Exception occured", fex);
getWebSocket().send(MessageBuilder.status().code(fex.getStatus()).message(fex.getMessage()).build(), true);
}
}
use of com.google.gson.reflect.TypeToken in project mule by mulesoft.
the class MuleExtensionModelDeclarer method declareForEach.
private void declareForEach(ExtensionDeclarer extensionDeclarer, ClassTypeLoader typeLoader) {
ConstructDeclarer forEach = extensionDeclarer.withConstruct("foreach").describedAs("The foreach Processor allows iterating over a collection payload, or any collection obtained by an expression," + " generating a message for each element.");
forEach.withChain();
forEach.onDefaultParameterGroup().withOptionalParameter("collection").ofType(typeLoader.load(new TypeToken<Iterable<Object>>() {
}.getType())).defaultingTo("#[payload]").withExpressionSupport(REQUIRED).describedAs("An expression to that returns a java collection, object array, map or DOM nodes.");
forEach.onDefaultParameterGroup().withOptionalParameter("batchSize").ofType(typeLoader.load(Integer.class)).withExpressionSupport(NOT_SUPPORTED).describedAs("An expression to that returns a java collection, object array, map or DOM nodes.");
forEach.onDefaultParameterGroup().withOptionalParameter("rootMessageVariableName").ofType(typeLoader.load(String.class)).defaultingTo("rootMessage").withExpressionSupport(NOT_SUPPORTED).describedAs("Property name where the parent message is stored.");
forEach.onDefaultParameterGroup().withOptionalParameter("counterVariableName").ofType(typeLoader.load(String.class)).defaultingTo("counter").withExpressionSupport(NOT_SUPPORTED).describedAs("Property name used to store the number of message being iterated.");
}
use of com.google.gson.reflect.TypeToken in project FortniteAPI by Xilixir.
the class FortniteAPI method getFriendListData.
public Friend[] getFriendListData(String userId) throws IOException {
// request
GenericUrl url = new GenericUrl("https://friends-public-service-prod06.ol.epicgames.com/friends/api/public/friends/" + userId + "?includePending=true");
HttpRequest request = factory.buildGetRequest(url);
// headers
request.getHeaders().setAuthorization("bearer " + this.auth.getAccessToken());
String json = request.execute().parseAsString();
Friend[] friends = new Gson().fromJson(json, new TypeToken<Friend[]>() {
}.getType());
log("Retrieved friend info");
return friends;
}
use of com.google.gson.reflect.TypeToken in project Saiy-PS by brandall76.
the class ResolveAPIAI method unpack.
public void unpack(@NonNull final String gsonResponse) {
if (DEBUG) {
MyLog.i(CLS_NAME, "unpacking");
}
final Gson gson = new GsonBuilder().disableHtmlEscaping().create();
final AIResponse response = gson.fromJson(gsonResponse, new TypeToken<AIResponse>() {
}.getType());
nluAPIAI = new NLUAPIAI(confidenceArray, resultsArray, response.getResult().getMetadata().getIntentName(), response.getResult().getParameters());
new NLUCoerce(getNLUAPIAI(), getContext(), getSupportedLanguage(), getVRLocale(), getTTSLocale(), getConfidenceArray(), getResultsArray()).coerce();
}
Aggregations