List of usage examples for com.fasterxml.jackson.databind.node ArrayNode ArrayNode
public ArrayNode(JsonNodeFactory paramJsonNodeFactory)
From source file:org.walkmod.conf.providers.yml.RemoveProvidersYMLAction.java
@Override public void doAction(JsonNode node) throws Exception { HashSet<String> providerSet = new HashSet<String>(); for (String elem : providers) { String[] partsType = elem.split(":"); if (partsType.length == 1) { elem = "org.walkmod:walkmod-" + elem + "-plugin:" + elem; }//from ww w .ja v a 2s . co m if (partsType.length != 3 && partsType.length != 1) { throw new TransformerException("Invalid conf-provider"); } providerSet.add(elem); } if (node.has("conf-providers")) { JsonNode aux = node.get("conf-providers"); if (aux.isArray()) { ArrayNode providersList = (ArrayNode) node.get("conf-providers"); Iterator<JsonNode> it = providersList.iterator(); ArrayNode newProvidersList = new ArrayNode(provider.getObjectMapper().getNodeFactory()); while (it.hasNext()) { JsonNode next = it.next(); if (next.isObject()) { String type = next.get("type").asText(); String[] parts = type.split(":"); if (parts.length == 1) { type = "org.walkmod:walkmod-" + type + "-plugin:" + type; } else if (parts.length != 3) { throw new TransformerException("Invalid conf-provider"); } if (!providerSet.contains(type)) { newProvidersList.add(next); } } } ObjectNode oNode = (ObjectNode) node; if (newProvidersList.size() > 0) { oNode.set("conf-providers", newProvidersList); } else { oNode.remove("conf-providers"); } provider.write(node); } } }
From source file:org.walkmod.conf.providers.yml.AddIncludesOrExcludesYMLAction.java
private void setIncludesOrExcludesList(ObjectNode node) { ArrayNode wildcardArray = null;//from ww w . j a va 2 s . c o m String label = "includes"; if (isExcludes) { label = "excludes"; } if (node.has(label)) { JsonNode wildcard = node.get(label); if (wildcard.isArray()) { wildcardArray = (ArrayNode) wildcard; } } if (wildcardArray == null) { wildcardArray = new ArrayNode(provider.getObjectMapper().getNodeFactory()); node.set(label, wildcardArray); } for (String includesItem : includes) { wildcardArray.add(includesItem); } }
From source file:org.walkmod.conf.providers.yml.AddChainYMLAction.java
@Override public void doAction(JsonNode chainsNode) throws Exception { ArrayNode chainsList = null;/* w ww. ja va2s . com*/ ObjectMapper mapper = provider.getObjectMapper(); if (chainsNode != null) { if (!chainsNode.has("chains")) { chainsList = new ArrayNode(mapper.getNodeFactory()); if (chainsNode.isObject()) { ObjectNode aux = (ObjectNode) chainsNode; aux.set("chains", chainsList); } else { throw new TransformerException("The root element is not a JSON node"); } } else { JsonNode aux = chainsNode.get("chains"); if (aux.isArray()) { chainsList = (ArrayNode) chainsNode.get("chains"); } else { throw new TransformerException("The plugins element is not a valid array"); } } } ObjectNode chainNode = new ObjectNode(mapper.getNodeFactory()); ReaderConfig readerCfg = chainCfg.getReaderConfig(); if (readerCfg != null) { if (chainsNode == null) { chainsNode = new ObjectNode(mapper.getNodeFactory()); ObjectNode aux = (ObjectNode) chainsNode; chainsList = new ArrayNode(mapper.getNodeFactory()); aux.set("chains", chainsList); } ObjectNode readerNode = new ObjectNode(mapper.getNodeFactory()); chainNode.set("reader", readerNode); populateWriterReader(readerNode, readerCfg.getPath(), readerCfg.getType(), readerCfg.getIncludes(), readerCfg.getExcludes(), readerCfg.getParameters()); } else { provider.addDefaultReaderConfig(chainCfg); } WalkerConfig walkerCfg = chainCfg.getWalkerConfig(); if (walkerCfg != null) { ObjectNode walkerNode = null; String type = walkerCfg.getType(); if (type != null) { if (chainsNode == null) { chainsNode = new ObjectNode(mapper.getNodeFactory()); ObjectNode aux = (ObjectNode) chainsNode; chainsList = new ArrayNode(mapper.getNodeFactory()); aux.set("chains", chainsList); } walkerNode = new ObjectNode(mapper.getNodeFactory()); chainNode.set("walker", walkerNode); walkerNode.set("type", new TextNode(type)); } Map<String, Object> wparams = walkerCfg.getParams(); if (wparams != null && !wparams.isEmpty()) { if (walkerNode == null) { if (chainsNode == null) { chainsNode = new ObjectNode(mapper.getNodeFactory()); ObjectNode aux = (ObjectNode) chainsNode; chainsList = new ArrayNode(mapper.getNodeFactory()); aux.set("chains", chainsList); } walkerNode = new ObjectNode(mapper.getNodeFactory()); chainNode.set("walker", walkerNode); } populateParams(walkerNode, wparams); } String rootNamespace = walkerCfg.getRootNamespace(); if (rootNamespace != null) { if (walkerNode == null) { if (chainsNode == null) { chainsNode = new ObjectNode(mapper.getNodeFactory()); ObjectNode aux = (ObjectNode) chainsNode; chainsList = new ArrayNode(mapper.getNodeFactory()); aux.set("chains", chainsList); } walkerNode = new ObjectNode(mapper.getNodeFactory()); chainNode.set("walker", walkerNode); } walkerNode.set("root-namespace", new TextNode(rootNamespace)); } List<TransformationConfig> transformationList = walkerCfg.getTransformations(); if (transformationList != null && !transformationList.isEmpty()) { ArrayNode transformationListNode = new ArrayNode(mapper.getNodeFactory()); if (walkerNode == null) { if (chainsNode == null) { ObjectNode aux = new ObjectNode(mapper.getNodeFactory()); aux.set("transformations", transformationListNode); chainsNode = aux; } else { chainNode.set("transformations", transformationListNode); } } else { walkerNode.set("transformations", transformationListNode); } for (TransformationConfig transCfg : transformationList) { ObjectNode transformationNode = new ObjectNode(mapper.getNodeFactory()); transformationListNode.add(transformationNode); createTransformation(transformationNode, transCfg); } } } WriterConfig writerCfg = chainCfg.getWriterConfig(); if (writerCfg != null) { if (chainsNode == null) { chainsNode = new ObjectNode(mapper.getNodeFactory()); ObjectNode aux = (ObjectNode) chainsNode; chainsList = new ArrayNode(mapper.getNodeFactory()); aux.set("chains", chainsList); } ObjectNode writerNode = new ObjectNode(mapper.getNodeFactory()); chainNode.set("writer", writerNode); populateWriterReader(writerNode, writerCfg.getPath(), writerCfg.getType(), writerCfg.getIncludes(), writerCfg.getExcludes(), writerCfg.getParams()); } else { provider.addDefaultWriterConfig(chainCfg); } if (chainsList != null) { int beforePos = -1; if (before != null) { Iterator<JsonNode> it = chainsList.iterator(); int i = 0; while (it.hasNext() && beforePos == -1) { JsonNode next = it.next(); if (next.get("name").equals(before)) { beforePos = i; } i++; } } if (beforePos == -1) { chainsList.add(chainNode); } else { chainsList.insert(beforePos, chainNode); } } if (readerCfg != null || walkerCfg != null || writerCfg != null) { provider.write(chainsNode); } }
From source file:org.walkmod.conf.providers.yml.AddProviderConfigYMLAction.java
@Override public void doAction(JsonNode node) throws Exception { ObjectMapper mapper = provider.getObjectMapper(); if (node.has("conf-providers")) { JsonNode list = node.get("conf-providers"); Iterator<JsonNode> it = list.iterator(); boolean found = false; while (it.hasNext() && !found) { JsonNode next = it.next();/*w ww .ja va 2s . c o m*/ found = providerCfg.getType().equals(next.get("type").asText()); } if (!found) { if (list.isArray()) { ArrayNode aux = (ArrayNode) list; ObjectNode prov = new ObjectNode(mapper.getNodeFactory()); prov.set("type", new TextNode(providerCfg.getType())); Map<String, Object> params = providerCfg.getParameters(); if (params != null && !params.isEmpty()) { populateParams(prov, params); } aux.add(prov); provider.write(node); return; } } } else { ArrayNode aux = new ArrayNode(mapper.getNodeFactory()); ObjectNode prov = new ObjectNode(mapper.getNodeFactory()); prov.set("type", new TextNode(providerCfg.getType())); Map<String, Object> params = providerCfg.getParameters(); if (params != null && !params.isEmpty()) { populateParams(prov, params); } aux.add(prov); ObjectNode auxNode = (ObjectNode) node; auxNode.set("conf-providers", aux); provider.write(node); return; } return; }
From source file:pl.edu.pwr.iiar.zak.thermalKit.deserializers.HeaterUnitDeserializerTest.java
@Test public void testDeserializeThermalInstances() throws Exception { Method method = HeaterUnitDeserializer.class.getDeclaredMethod("deserializeThermalInstances", ArrayNode.class); method.setAccessible(true);//from www . jav a 2 s. com JsonNodeFactory factory = JsonNodeFactory.instance; ArrayNode instanceArrayNode = new ArrayNode(factory); ObjectNode instanceNode = new ObjectNode(factory); instanceArrayNode.add(instanceNode); instanceNode.put("name", "upper"); instanceNode.put("primitiveType", "SLICEL"); ArrayNode attributeArrayNode = new ArrayNode(factory); instanceNode.put("attributes", attributeArrayNode); ObjectNode attributeNode = new ObjectNode(factory); attributeArrayNode.add(attributeNode); attributeNode.put("physicalName", "phyName1"); attributeNode.put("logicalName", "logName1"); attributeNode.put("value", "value1"); ArrayNode enablePinsNode = new ArrayNode(factory); instanceNode.put("enablePins", enablePinsNode); ObjectNode enablePinNode = new ObjectNode(factory); enablePinsNode.add(enablePinNode); enablePinNode.put("isOutputPin", false); enablePinNode.put("name", "D3"); System.out.print(instanceArrayNode.toString()); ArrayList<ThermalInstance> heaterInstances = (ArrayList<ThermalInstance>) method .invoke(new HeaterUnitDeserializer(), instanceArrayNode); ThermalInstance heaterInstance = heaterInstances.get(0); Assert.assertEquals(heaterInstance.getName(), "upper"); Assert.assertEquals(heaterInstance.getType().toString(), "SLICEL"); }
From source file:net.pterodactylus.sone.web.ajax.GetLikesAjaxPage.java
/** * Creates a JSON array (containing the IDs and the nice names) from the * given Sones, after sorting them by name. * * @param sones//from w w w. j a v a 2 s . com * The Sones to convert to an array * @return The Sones, sorted by name */ private static JsonNode getSones(Set<Sone> sones) { ArrayNode soneArray = new ArrayNode(instance); for (Sone sone : FluentIterable.from(sones).toSortedList(NICE_NAME_COMPARATOR)) { soneArray.add( new ObjectNode(instance).put("id", sone.getId()).put("name", SoneAccessor.getNiceName(sone))); } return soneArray; }
From source file:net.pterodactylus.sone.web.ajax.GetNotificationsAjaxPage.java
/** * {@inheritDoc}/*from ww w . j a v a 2 s. co m*/ */ @Override protected JsonReturnObject createJsonObject(FreenetRequest request) { Sone currentSone = getCurrentSone(request.getToadletContext(), false); Collection<Notification> notifications = webInterface.getNotifications().getNotifications(); List<Notification> filteredNotifications = ListNotificationFilters.filterNotifications(notifications, currentSone); Collections.sort(filteredNotifications, Notification.CREATED_TIME_SORTER); ArrayNode jsonNotifications = new ArrayNode(instance); for (Notification notification : filteredNotifications) { jsonNotifications.add(createJsonNotification(request, notification)); } return createSuccessJsonObject().put("notificationHash", filteredNotifications.hashCode()) .put("notifications", jsonNotifications).put("options", createJsonOptions(currentSone)); }
From source file:com.turn.shapeshifter.AutoParserTest.java
@Test public void testParseWithEmptyRepeated() throws Exception { Actor actor = Actor.newBuilder().setName("James Dean").build(); ObjectNode json = (ObjectNode) new AutoSerializer(Actor.getDescriptor()).serialize(actor, ReadableSchemaRegistry.EMPTY); json.put("quotes", new ArrayNode(JsonNodeFactory.instance)); Message parsedMessage = new AutoParser(Actor.getDescriptor()).parse(json, ReadableSchemaRegistry.EMPTY); Actor parsedActor = Actor.newBuilder().mergeFrom(parsedMessage).build(); Assert.assertEquals("James Dean", parsedActor.getName()); Assert.assertEquals(0, parsedActor.getQuotesCount()); }
From source file:org.walkmod.conf.providers.yml.AddTransformationYMLAction.java
@Override public void doAction(JsonNode chainsNode) throws Exception { ArrayNode transformationsNode = null; boolean isMultiModule = chainsNode.has("modules"); ObjectMapper mapper = provider.getObjectMapper(); if (!isMultiModule) { boolean validChainName = chain != null && !"".equals(chain) && !"default".equals(chain); if (!chainsNode.has("chains")) { if (chainsNode.has("transformations")) { JsonNode aux = chainsNode.get("transformations"); if (aux.isArray()) { transformationsNode = (ArrayNode) aux; }/*from w ww.jav a 2 s .c o m*/ if (!validChainName) { ObjectNode auxRoot = (ObjectNode) chainsNode; if (transformationsNode == null) { transformationsNode = new ArrayNode(mapper.getNodeFactory()); } auxRoot.set("transformations", transformationsNode); } else { // reset the root chainsNode = new ObjectNode(mapper.getNodeFactory()); ObjectNode auxRoot = (ObjectNode) chainsNode; // the default chain list added ObjectNode chainObject = new ObjectNode(mapper.getNodeFactory()); chainObject.set("name", new TextNode("default")); chainObject.set("transformations", transformationsNode); ArrayNode chainsListNode = new ArrayNode(mapper.getNodeFactory()); // the requested chain added ObjectNode newChain = new ObjectNode(mapper.getNodeFactory()); newChain.set("name", new TextNode(chain)); if (path != null && !"".equals(path.trim())) { ObjectNode readerNode = new ObjectNode(mapper.getNodeFactory()); newChain.set("reader", readerNode); populateWriterReader(readerNode, path, null, null, null, null); ObjectNode writerNode = new ObjectNode(mapper.getNodeFactory()); newChain.set("writer", writerNode); populateWriterReader(writerNode, path, null, null, null, null); } transformationsNode = new ArrayNode(mapper.getNodeFactory()); newChain.set("transformations", transformationsNode); if (before == null || !"default".equals(before)) { chainsListNode.add(chainObject); } chainsListNode.add(newChain); if (before != null && "default".equals(before)) { chainsListNode.add(chainObject); } auxRoot.set("chains", chainsListNode); } } else { ObjectNode auxRoot = (ObjectNode) chainsNode; transformationsNode = new ArrayNode(mapper.getNodeFactory()); boolean writeChainInfo = validChainName; if (!writeChainInfo) { writeChainInfo = path != null && !"".equals(path.trim()); chain = "default"; } if (writeChainInfo) { ArrayNode auxChainsList = new ArrayNode(mapper.getNodeFactory()); ObjectNode aux = new ObjectNode(mapper.getNodeFactory()); auxChainsList.add(aux); aux.set("name", new TextNode(chain)); if (path != null && !"".equals(path.trim())) { ObjectNode readerNode = new ObjectNode(mapper.getNodeFactory()); aux.set("reader", readerNode); populateWriterReader(readerNode, path, null, null, null, null); } auxRoot.set("chains", auxChainsList); if (path != null && !"".equals(path.trim())) { ObjectNode writerNode = new ObjectNode(mapper.getNodeFactory()); aux.set("writer", writerNode); populateWriterReader(writerNode, path, null, null, null, null); } auxRoot = aux; } auxRoot.set("transformations", transformationsNode); } } else { if (validChainName) { JsonNode aux = chainsNode.get("chains"); boolean found = false; if (aux.isArray()) { Iterator<JsonNode> it = aux.elements(); while (it.hasNext()) { JsonNode next = it.next(); if (next.has("name")) { String id = next.get("name").asText(); if (chain.equals(id)) { found = true; if (next.has("transformations")) { JsonNode auxTrans = next.get("transformations"); if (auxTrans.isArray()) { transformationsNode = (ArrayNode) auxTrans; } else { throw new Exception("The chain [" + chain + "] does not have a valid transformations node"); } } else if (next.isObject()) { ObjectNode auxNext = (ObjectNode) next; transformationsNode = new ArrayNode(mapper.getNodeFactory()); auxNext.set("transformations", transformationsNode); } else { throw new Exception( "The chain [" + chain + "] does not have a valid structure"); } } } } if (!found) { ChainConfig chainCfg = new ChainConfigImpl(); chainCfg.setName(chain); WalkerConfig walkerCfg = new WalkerConfigImpl(); List<TransformationConfig> transfs = new LinkedList<TransformationConfig>(); transfs.add(transformationCfg); walkerCfg.setTransformations(transfs); chainCfg.setWalkerConfig(walkerCfg); provider.addChainConfig(chainCfg, false, before); return; } } } else { ObjectNode node = new ObjectNode(mapper.getNodeFactory()); node.set("name", new TextNode(chain)); ArrayNode transNodes = new ArrayNode(mapper.getNodeFactory()); node.set("transformations", transNodes); ArrayNode array = (ArrayNode) chainsNode.get("chains"); array.add(node); ObjectNode transformationNode = new ObjectNode(mapper.getNodeFactory()); transNodes.add(transformationNode); createTransformation(transformationNode, transformationCfg); return; } } if (transformationsNode != null) { ObjectNode transformationNode = new ObjectNode(mapper.getNodeFactory()); if (order != null && order < transformationsNode.size()) { transformationsNode.insert(order, transformationNode); } else { transformationsNode.add(transformationNode); } createTransformation(transformationNode, transformationCfg); provider.write(chainsNode); return; } else if (chain != null) { throw new Exception("The chain [" + chain + "] does not exists"); } } }
From source file:net.pterodactylus.sone.web.ajax.GetStatusAjaxPage.java
/** * {@inheritDoc}//w w w . j a v a 2 s. c o m */ @Override protected JsonReturnObject createJsonObject(FreenetRequest request) { final Sone currentSone = getCurrentSone(request.getToadletContext(), false); /* load Sones. always return the status of the current Sone. */ Set<Sone> sones = new HashSet<Sone>( Collections.singleton(getCurrentSone(request.getToadletContext(), false))); String loadSoneIds = request.getHttpRequest().getParam("soneIds"); if (loadSoneIds.length() > 0) { String[] soneIds = loadSoneIds.split(","); for (String soneId : soneIds) { /* just add it, we skip null further down. */ sones.add(webInterface.getCore().getSone(soneId).orNull()); } } ArrayNode jsonSones = new ArrayNode(instance); for (Sone sone : sones) { if (sone == null) { continue; } jsonSones.add(createJsonSone(sone)); } /* load notifications. */ List<Notification> notifications = ListNotificationFilters .filterNotifications(webInterface.getNotifications().getNotifications(), currentSone); Collections.sort(notifications, Notification.CREATED_TIME_SORTER); /* load new posts. */ Collection<Post> newPosts = webInterface.getNewPosts(); if (currentSone != null) { newPosts = Collections2.filter(newPosts, new Predicate<Post>() { @Override public boolean apply(Post post) { return ListNotificationFilters.isPostVisible(currentSone, post); } }); } ArrayNode jsonPosts = new ArrayNode(instance); for (Post post : newPosts) { ObjectNode jsonPost = new ObjectNode(instance); jsonPost.put("id", post.getId()); jsonPost.put("sone", post.getSone().getId()); jsonPost.put("recipient", post.getRecipientId().orNull()); jsonPost.put("time", post.getTime()); jsonPosts.add(jsonPost); } /* load new replies. */ Collection<PostReply> newReplies = webInterface.getNewReplies(); if (currentSone != null) { newReplies = Collections2.filter(newReplies, new Predicate<PostReply>() { @Override public boolean apply(PostReply reply) { return ListNotificationFilters.isReplyVisible(currentSone, reply); } }); } /* remove replies to unknown posts. */ newReplies = Collections2.filter(newReplies, PostReply.HAS_POST_FILTER); ArrayNode jsonReplies = new ArrayNode(instance); for (PostReply reply : newReplies) { ObjectNode jsonReply = new ObjectNode(instance); jsonReply.put("id", reply.getId()); jsonReply.put("sone", reply.getSone().getId()); jsonReply.put("post", reply.getPostId()); jsonReply.put("postSone", reply.getPost().get().getSone().getId()); jsonReplies.add(jsonReply); } return createSuccessJsonObject().put("loggedIn", currentSone != null) .put("options", createJsonOptions(currentSone)).put("sones", jsonSones) .put("notificationHash", notifications.hashCode()).put("newPosts", jsonPosts) .put("newReplies", jsonReplies); }