List of usage examples for com.fasterxml.jackson.databind ObjectMapper createArrayNode
@Override
public ArrayNode createArrayNode()
Note: return type is co-variant, as basic ObjectCodec abstraction can not refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)
From source file:org.bimserver.servlets.ServiceRunnerServlet.java
private void processServiceList(HttpServletRequest request, HttpServletResponse response) { BimDatabase database = getBimServer().getDatabase(); ObjectMapper mapper = new ObjectMapper(); ObjectNode result = mapper.createObjectNode(); ArrayNode array = mapper.createArrayNode(); ArrayNode capabilities = mapper.createArrayNode(); capabilities.add("WEBSOCKET"); result.set("capabilities", capabilities); result.set("services", array); try (DatabaseSession session = database.createSession()) { for (PluginDescriptor pluginDescriptor : session.getAllOfType( StorePackage.eINSTANCE.getPluginDescriptor(), PluginDescriptor.class, OldQuery.getDefault())) { if (pluginDescriptor.getPluginInterfaceClassName().equals(ServicePlugin.class.getName())) { ServicePlugin servicePlugin = getBimServer().getPluginManager() .getServicePlugin(pluginDescriptor.getPluginClassName(), true); if (servicePlugin instanceof BimBotsServiceInterface) { try { BimBotsServiceInterface bimBotsServiceInterface = (BimBotsServiceInterface) servicePlugin; ObjectNode descriptorJson = mapper.createObjectNode(); descriptorJson.put("id", pluginDescriptor.getOid()); descriptorJson.put("name", pluginDescriptor.getName()); descriptorJson.put("description", pluginDescriptor.getDescription()); descriptorJson.put("provider", getBimServer().getServerSettingsCache().getServerSettings().getName()); descriptorJson.put("providerIcon", getBimServer().getServerSettingsCache().getServerSettings().getIcon()); ArrayNode inputs = mapper.createArrayNode(); ArrayNode outputs = mapper.createArrayNode(); for (String schemaName : bimBotsServiceInterface.getAvailableInputs()) { inputs.add(schemaName); }/*from w ww.j a va 2s . c om*/ for (String schemaName : bimBotsServiceInterface.getAvailableOutputs()) { outputs.add(schemaName); } descriptorJson.set("inputs", inputs); descriptorJson.set("outputs", outputs); ObjectNode oauth = mapper.createObjectNode(); String siteAddress = getBimServer().getServerSettingsCache().getServerSettings() .getSiteAddress(); oauth.put("authorizationUrl", siteAddress + "/oauth/authorize"); oauth.put("registerUrl", siteAddress + "/oauth/register"); oauth.put("tokenUrl", siteAddress + "/oauth/access"); descriptorJson.set("oauth", oauth); descriptorJson.put("resourceUrl", siteAddress + "/services"); array.add(descriptorJson); } catch (Exception e) { LOGGER.error("", e); } } } } response.setContentType("application/json"); response.getOutputStream().write(mapper.writeValueAsBytes(result)); } catch (BimserverDatabaseException e) { LOGGER.error("", e); } catch (JsonProcessingException e) { LOGGER.error("", e); } catch (IOException e) { LOGGER.error("", e); } }
From source file:org.flowable.cmmn.editor.json.converter.util.ListenerConverterUtil.java
public static ObjectNode convertListenersToJson(ObjectMapper objectMapper, String jsonPropertyName, List<FlowableListener> listeners) { if (listeners != null) { ObjectNode listenersNode = objectMapper.createObjectNode(); ArrayNode itemsNode = objectMapper.createArrayNode(); for (FlowableListener listener : listeners) { ObjectNode propertyItemNode = objectMapper.createObjectNode(); if (StringUtils.isNotEmpty(listener.getEvent())) { propertyItemNode.put(CmmnStencilConstants.PROPERTY_LISTENER_EVENT, listener.getEvent()); }//from w ww .j a v a 2 s. c om if (StringUtils.isNotEmpty(listener.getSourceState())) { propertyItemNode.put(CmmnStencilConstants.PROPERTY_LISTENER_SOURCE_STATE, listener.getSourceState()); } if (StringUtils.isNotEmpty(listener.getTargetState())) { propertyItemNode.put(CmmnStencilConstants.PROPERTY_LISTENER_TARGET_STATE, listener.getTargetState()); } if (ImplementationType.IMPLEMENTATION_TYPE_CLASS.equals(listener.getImplementationType())) { propertyItemNode.put(CmmnStencilConstants.PROPERTY_LISTENER_CLASS_NAME, listener.getImplementation()); } else if (ImplementationType.IMPLEMENTATION_TYPE_EXPRESSION .equals(listener.getImplementationType())) { propertyItemNode.put(CmmnStencilConstants.PROPERTY_LISTENER_EXPRESSION, listener.getImplementation()); } else if (ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION .equals(listener.getImplementationType())) { propertyItemNode.put(CmmnStencilConstants.PROPERTY_LISTENER_DELEGATE_EXPRESSION, listener.getImplementation()); } if (CollectionUtils.isNotEmpty(listener.getFieldExtensions())) { ArrayNode fieldsArray = objectMapper.createArrayNode(); for (FieldExtension fieldExtension : listener.getFieldExtensions()) { ObjectNode fieldNode = objectMapper.createObjectNode(); fieldNode.put(CmmnStencilConstants.PROPERTY_FIELD_NAME, fieldExtension.getFieldName()); if (StringUtils.isNotEmpty(fieldExtension.getStringValue())) { fieldNode.put(CmmnStencilConstants.PROPERTY_FIELD_STRING_VALUE, fieldExtension.getStringValue()); } if (StringUtils.isNotEmpty(fieldExtension.getExpression())) { fieldNode.put(CmmnStencilConstants.PROPERTY_FIELD_EXPRESSION, fieldExtension.getExpression()); } fieldsArray.add(fieldNode); } propertyItemNode.set(CmmnStencilConstants.PROPERTY_LISTENER_FIELDS, fieldsArray); } itemsNode.add(propertyItemNode); } listenersNode.set(jsonPropertyName, itemsNode); return listenersNode; } return null; }
From source file:org.flowable.editor.dmn.converter.DmnJsonConverterUtil.java
public static JsonNode migrateModel(JsonNode decisionTableNode, ObjectMapper objectMapper) { // check if model is version 1 if (decisionTableNode.get("modelVersion") == null || decisionTableNode.get("modelVersion").isNull()) { // split input rule nodes into operator and expression nodes ///*w ww . j ava2 s . c o m*/ // determine input node ids JsonNode inputExpressionNodes = decisionTableNode.get("inputExpressions"); Map<String, String> inputExpressionIds = new HashMap<>(); if (inputExpressionNodes != null && !inputExpressionNodes.isNull()) { for (JsonNode inputExpressionNode : inputExpressionNodes) { if (inputExpressionNode.get("id") != null && !inputExpressionNode.get("id").isNull()) { String inputId = inputExpressionNode.get("id").asText(); String inputType = null; if (inputExpressionNode.get("type") != null && !inputExpressionNode.get("type").isNull()) { inputType = inputExpressionNode.get("type").asText(); } inputExpressionIds.put(inputId, inputType); } } } // split input rule nodes JsonNode ruleNodes = decisionTableNode.get("rules"); ArrayNode newRuleNodes = objectMapper.createArrayNode(); if (ruleNodes != null && !ruleNodes.isNull()) { for (JsonNode ruleNode : ruleNodes) { ObjectNode newRuleNode = objectMapper.createObjectNode(); for (String inputExpressionId : inputExpressionIds.keySet()) { if (ruleNode.has(inputExpressionId)) { String operatorId = inputExpressionId + "_operator"; String expressionId = inputExpressionId + "_expression"; String operatorValue = null; String expressionValue = null; if (ruleNode.get(inputExpressionId) != null && !ruleNode.get(inputExpressionId).isNull()) { String oldExpression = ruleNode.get(inputExpressionId).asText(); if (StringUtils.isNotEmpty(oldExpression)) { if (oldExpression.indexOf(' ') != -1) { operatorValue = oldExpression.substring(0, oldExpression.indexOf(' ')); expressionValue = oldExpression.substring(oldExpression.indexOf(' ') + 1); } else { // no prefixed operator expressionValue = oldExpression; } // remove outer escape quotes if (expressionValue.startsWith("\"") && expressionValue.endsWith("\"")) { expressionValue = expressionValue.substring(1, expressionValue.length() - 1); } // if build in date function if (expressionValue.startsWith("fn_date(")) { expressionValue = expressionValue.substring(9, expressionValue.lastIndexOf('\'')); } else if (expressionValue.startsWith("date:toDate(")) { expressionValue = expressionValue.substring(13, expressionValue.lastIndexOf('\'')); } // determine type is null if (StringUtils.isEmpty(inputExpressionIds.get(inputExpressionId))) { String expressionType = determineExpressionType(expressionValue); inputExpressionIds.put(inputExpressionId, expressionType); } } } // add new operator kv if (StringUtils.isNotEmpty(operatorValue)) { newRuleNode.put(operatorId, operatorValue); } else { // default value newRuleNode.put(operatorId, "=="); } // add new expression kv if (StringUtils.isNotEmpty(expressionValue)) { newRuleNode.put(expressionId, expressionValue); } else { // default value newRuleNode.put(expressionId, "-"); } } } Iterator<String> ruleProperty = ruleNode.fieldNames(); while (ruleProperty.hasNext()) { String outputExpressionId = ruleProperty.next(); if (!inputExpressionIds.containsKey(outputExpressionId)) { // is output expression String outputExpressionValue = ruleNode.get(outputExpressionId).asText(); // remove outer escape quotes if (StringUtils.isNotEmpty(outputExpressionValue) && outputExpressionValue.startsWith("\"") && outputExpressionValue.endsWith("\"")) { outputExpressionValue = outputExpressionValue.substring(1, outputExpressionValue.length() - 1); } // if build in date function if (outputExpressionValue.startsWith("fn_date(")) { outputExpressionValue = outputExpressionValue.substring(9, outputExpressionValue.lastIndexOf('\'')); } else if (outputExpressionValue.startsWith("date:toDate(")) { outputExpressionValue = outputExpressionValue.substring(13, outputExpressionValue.lastIndexOf('\'')); } newRuleNode.put(outputExpressionId, outputExpressionValue); } } newRuleNodes.add(newRuleNode); } // set input expression nodes types if (inputExpressionNodes != null && !inputExpressionNodes.isNull()) { for (JsonNode inputExpressionNode : inputExpressionNodes) { if (inputExpressionNode.get("id") != null && !inputExpressionNode.get("id").isNull()) { String inputId = inputExpressionNode.get("id").asText(); ((ObjectNode) inputExpressionNode).put("type", inputExpressionIds.get(inputId)); } } } // replace rules node ObjectNode decisionTableObjectNode = (ObjectNode) decisionTableNode; decisionTableObjectNode.replace("rules", newRuleNodes); } } return decisionTableNode; }
From source file:org.flowable.engine.impl.bpmn.behavior.DmnActivityBehavior.java
protected void setVariablesOnExecution(List<Map<String, Object>> executionResult, String decisionKey, DelegateExecution execution, ObjectMapper objectMapper) { if (executionResult == null || executionResult.isEmpty()) { return;/* w w w .j av a 2s. c om*/ } // multiple rule results // put on execution as JSON array; each entry contains output id (key) and output value (value) if (executionResult.size() > 1) { ArrayNode ruleResultNode = objectMapper.createArrayNode(); for (Map<String, Object> ruleResult : executionResult) { ObjectNode outputResultNode = objectMapper.createObjectNode(); for (Map.Entry<String, Object> outputResult : ruleResult.entrySet()) { outputResultNode.set(outputResult.getKey(), objectMapper.convertValue(outputResult.getValue(), JsonNode.class)); } ruleResultNode.add(outputResultNode); } execution.setVariable(decisionKey, ruleResultNode); } else { // single rule result // put on execution output id (key) and output value (value) Map<String, Object> ruleResult = executionResult.get(0); for (Map.Entry<String, Object> outputResult : ruleResult.entrySet()) { execution.setVariable(outputResult.getKey(), outputResult.getValue()); } } }
From source file:org.onosproject.cli.net.IntentsListCommand.java
private JsonNode json(Iterable<Intent> intents) { ObjectMapper mapper = new ObjectMapper(); ArrayNode result = mapper.createArrayNode(); Tools.stream(intents).filter(intent -> contentFilter.filter(jsonForEntity(intent, Intent.class).toString())) .forEach(intent -> result.add(jsonForEntity(intent, Intent.class))); return result; }
From source file:org.roda.core.common.ClassificationPlanUtils.java
public static ConsumesOutputStream retrieveClassificationPlan(User user, String filename) throws RequestNotValidException, NotFoundException, GenericException, AuthorizationDeniedException { try {//w w w . j a v a2 s . c o m JsonFactory factory = new JsonFactory(); ObjectMapper mapper = new ObjectMapper(factory); ObjectNode root = mapper.createObjectNode(); ArrayNode array = mapper.createArrayNode(); List<String> descriptionsLevels = RodaUtils.copyList( RodaCoreFactory.getRodaConfiguration().getList(RodaConstants.LEVELS_CLASSIFICATION_PLAN)); Filter allButRepresentationsFilter = new Filter( new OneOfManyFilterParameter(RodaConstants.AIP_LEVEL, descriptionsLevels)); IndexService index = RodaCoreFactory.getIndexService(); boolean justActive = true; IterableIndexResult<IndexedAIP> res = index.findAll(IndexedAIP.class, allButRepresentationsFilter, null, Sublist.ALL, user, justActive, new ArrayList<>()); Iterator<IndexedAIP> it = res.iterator(); while (it.hasNext()) { array.add(aipToJSON(it.next())); } root.set("dos", array); return new ConsumesOutputStream() { @Override public void consumeOutputStream(OutputStream out) throws IOException { try { mapper.writeValue(out, root); } catch (IOException e) { throw e; } finally { IOUtils.closeQuietly(out); } } @Override public String getFileName() { return filename; } @Override public String getMediaType() { return RodaConstants.MEDIA_TYPE_APPLICATION_JSON; } }; } catch (IOException e) { throw new GenericException(e); } }
From source file:org.roda.core.common.ClassificationPlanUtils.java
public static ObjectNode aipToJSON(IndexedAIP indexedAIP) throws IOException, RequestNotValidException, NotFoundException, GenericException, AuthorizationDeniedException { JsonFactory factory = new JsonFactory(); ObjectMapper mapper = new ObjectMapper(factory); ModelService model = RodaCoreFactory.getModelService(); ObjectNode node = mapper.createObjectNode(); if (indexedAIP.getTitle() != null) { node = node.put("title", indexedAIP.getTitle()); }// w ww . jav a 2 s . co m if (indexedAIP.getId() != null) { node = node.put("id", indexedAIP.getId()); } if (indexedAIP.getParentID() != null) { node = node.put("parentId", indexedAIP.getParentID()); } if (indexedAIP.getLevel() != null) { node = node.put("descriptionlevel", indexedAIP.getLevel()); } AIP modelAIP = model.retrieveAIP(indexedAIP.getId()); if (modelAIP.getType() != null) { node = node.put("type", modelAIP.getType()); } if (modelAIP != null) { List<DescriptiveMetadata> descriptiveMetadata = modelAIP.getDescriptiveMetadata(); if (descriptiveMetadata != null && !descriptiveMetadata.isEmpty()) { ArrayNode metadata = mapper.createArrayNode(); for (DescriptiveMetadata dm : descriptiveMetadata) { ObjectNode dmNode = mapper.createObjectNode(); if (dm.getId() != null) { dmNode = dmNode.put("id", dm.getId()); } if (dm.getType() != null) { dmNode = dmNode.put("metadataType", dm.getType()); } if (dm.getVersion() != null) { dmNode = dmNode.put("metadataVersion", dm.getVersion()); } Binary b = model.retrieveDescriptiveMetadataBinary(modelAIP.getId(), dm.getId()); InputStream is = b.getContent().createInputStream(); dmNode = dmNode.put("content", new String(Base64.encodeBase64(IOUtils.toByteArray(is)))); IOUtils.closeQuietly(is); dmNode = dmNode.put("contentEncoding", "Base64"); metadata = metadata.add(dmNode); } node.set("metadata", metadata); } } return node; }