Example usage for com.fasterxml.jackson.databind.node ArrayNode ArrayNode

List of usage examples for com.fasterxml.jackson.databind.node ArrayNode ArrayNode

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.node ArrayNode ArrayNode.

Prototype

public ArrayNode(JsonNodeFactory paramJsonNodeFactory) 

Source Link

Usage

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);
}