Example usage for com.fasterxml.jackson.databind.node ObjectNode size

List of usage examples for com.fasterxml.jackson.databind.node ObjectNode size

Introduction

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

Prototype

public int size() 

Source Link

Usage

From source file:com.turn.shapeshifter.AutoSerializer.java

/**
 * {@inheritDoc}/*from   w w w.ja va  2  s.  co m*/
 * @throws SerializationException
 */
@Override
public JsonNode serialize(Message message, ReadableSchemaRegistry registry) throws SerializationException {
    ObjectNode object = new ObjectNode(JsonNodeFactory.instance);

    for (Descriptors.FieldDescriptor field : descriptor.getFields()) {
        String propertyName = AutoSchema.PROTO_FIELD_CASE_FORMAT.to(AutoSchema.JSON_FIELD_CASE_FORMAT,
                field.getName());
        if (field.isRepeated()) {
            if (message.getRepeatedFieldCount(field) > 0) {
                ArrayNode array = serializeRepeatedField(message, field, registry);
                if (array.size() != 0) {
                    object.put(propertyName, array);
                }
            }
        } else if (message.hasField(field)) {
            Object value = message.getField(field);
            JsonNode fieldNode = serializeValue(value, field, registry);
            if (!fieldNode.isNull()) {
                object.put(propertyName, fieldNode);
            }
        }
    }

    if (object.size() == 0) {
        return NullNode.instance;
    }

    return object;
}

From source file:com.almende.eve.test.agents.Test2Agent.java

/**
 * Prints the params./*w w w.j av a 2s  .  c  o m*/
 * 
 * @param params
 *            the params
 * @return the string
 */
public String printParams(final ObjectNode params) {
    return "fields: " + params.size();
}

From source file:com.ikanow.aleph2.v1.document_db.utils.TestJsonNodeBsonUtils.java

@Test
public void test_mapWritableWrapper() {
    final ObjectMapper mapper = BeanTemplateUtils.configureMapper(Optional.empty());

    final BasicDBObject m1 = new BasicDBObject();

    m1.put("test1", true);

    final BasicDBObject m2 = new BasicDBObject();
    m2.put("nested", m1);
    m2.put("test2", "test2");

    final BasicDBList a1 = new BasicDBList();
    a1.add(4);/*from   w  w  w  .  j  a v  a 2s  .c o  m*/
    a1.add(5);

    final BasicDBList a2 = new BasicDBList();
    a2.add(m1);
    a2.add(m1);

    m2.put("array", a2);
    m1.put("array", a1);

    final JsonNode j2 = JsonNodeBsonUtils.from(m2);

    assertEquals(3, j2.size());

    // Check j's contents
    assertEquals(Stream.of("nested", "test2", "array").sorted().collect(Collectors.toList()),
            Optionals.streamOf(j2.fieldNames(), false).sorted().collect(Collectors.toList()));
    assertEquals("test2", j2.get("test2").asText());

    final JsonNode j1 = j2.get("nested");
    assertEquals(2, j1.size());
    final JsonNode j1b = JsonNodeBsonUtils.from(m1);
    assertTrue("entrySet wrong: " + j1b.toString(), "{\"test1\":true,\"array\":[4,5]}".equals(j1b.toString())
            || "{\"array\":[4,5],\"test1\":true}".equals(j1b.toString())); //(tests entrySet)
    final ArrayNode an = mapper.createArrayNode();
    an.add(mapper.convertValue(4, JsonNode.class));
    an.add(mapper.convertValue(5, JsonNode.class));
    assertEquals(Arrays.asList(mapper.convertValue(true, JsonNode.class), an),
            Optionals.streamOf(((ObjectNode) j1).elements(), false).collect(Collectors.toList()));

    // OK, now test adding:

    assertEquals(2, j1.size());

    final ObjectNode o1 = (ObjectNode) j1;
    o1.put("added", "added_this");

    final ObjectNodeWrapper o1c = (ObjectNodeWrapper) o1;
    assertFalse(o1c.containsKey("not_present"));
    assertTrue(o1c.containsKey("added"));
    assertTrue(o1c.containsKey("test1"));

    assertEquals(Stream.of("test1", "array", "added").sorted().collect(Collectors.toList()),
            Optionals.streamOf(j1.fieldNames(), false).sorted().collect(Collectors.toList()));
    assertEquals(
            Arrays.asList(mapper.convertValue(true, JsonNode.class), an,
                    mapper.convertValue("added_this", JsonNode.class)),
            Optionals.streamOf(((ObjectNode) j1).elements(), false).collect(Collectors.toList()));
    assertTrue(j1.toString().contains("added_this"));
    assertTrue(j1.toString().contains("4,5"));

    assertEquals(mapper.convertValue("added_this", JsonNode.class), j1.get("added"));

    assertEquals(3, j1.size());

    // OK now test removing:

    assertEquals(null, o1.remove("not_present"));
    assertEquals(mapper.convertValue(true, JsonNode.class), o1.remove("test1"));
    assertEquals(2, o1.size());
    ObjectNode o1b = o1.remove(Arrays.asList("added", "array"));
    assertEquals(0, o1.size());
    assertEquals(0, o1b.size());

    o1.setAll(JsonNodeBsonUtils.from(m1)); // will be minus one object
    assertEquals(2, o1.size());
    assertTrue(o1c.containsValue(mapper.convertValue(true, JsonNode.class)));
    assertFalse(o1c.containsValue("banana"));

    final ObjectNodeWrapper o2 = (ObjectNodeWrapper) JsonNodeBsonUtils.from(m2);
    assertFalse(o2.isEmpty());
    assertTrue(o2.containsKey("array"));
    assertFalse(o2.containsValue("array"));
    assertTrue(o2.containsValue(mapper.convertValue("test2", JsonNode.class)));
    assertEquals(TextNode.class, o2.remove("test2").getClass());
    assertEquals(2, o2.size());
    o2.removeAll();
    assertEquals(0, o2.size());
}

From source file:com.ikanow.aleph2.search_service.elasticsearch.utils.TestJsonNodeWritableUtils.java

@SuppressWarnings("deprecation")
@Test/*from  ww  w  .  j a v a2s .  c o  m*/
public void test_mapWritableWrapper() {
    final ObjectMapper mapper = BeanTemplateUtils.configureMapper(Optional.empty());

    final MapWritable m1 = new MapWritable();

    m1.put(new Text("test1"), new BooleanWritable(true));

    final MapWritable m2 = new MapWritable();
    m2.put(new Text("nested"), m1);
    m2.put(new Text("test2"), new Text("test2"));

    final ArrayWritable a1 = new ArrayWritable(IntWritable.class);
    a1.set(new Writable[] { new IntWritable(4), new IntWritable(5) });

    final ArrayWritable a2 = new ArrayWritable(MapWritable.class);
    a2.set(new Writable[] { m1, m1 });

    m2.put(new Text("array"), a2);
    m1.put(new Text("array"), a1);

    final JsonNode j2 = JsonNodeWritableUtils.from(m2);

    assertEquals(3, j2.size());

    // Check j's contents
    assertEquals(Stream.of("nested", "test2", "array").sorted().collect(Collectors.toList()),
            Optionals.streamOf(j2.fieldNames(), false).sorted().collect(Collectors.toList()));
    assertEquals("test2", j2.get("test2").asText());

    final JsonNode j1 = j2.get("nested");
    assertEquals(2, j1.size());
    final JsonNode j1b = JsonNodeWritableUtils.from(m1);
    assertTrue("{\"test1\":true,\"array\":[4,5]}".equals(j1b.toString())
            || "{\"array\":[4,5],\"test1\":true}".equals(j1b.toString())); //(tests entrySet)
    final ArrayNode an = mapper.createArrayNode();
    an.add(mapper.convertValue(4, JsonNode.class));
    an.add(mapper.convertValue(5, JsonNode.class));
    assertEquals(Arrays.asList(mapper.convertValue(true, JsonNode.class), an),
            Optionals.streamOf(((ObjectNode) j1).elements(), false).collect(Collectors.toList()));

    // OK, now test adding:

    assertEquals(2, j1.size());

    final ObjectNode o1 = (ObjectNode) j1;
    o1.put("added", "added_this");

    final ObjectNodeWrapper o1c = (ObjectNodeWrapper) o1;
    assertFalse(o1c.containsKey("not_present"));
    assertTrue(o1c.containsKey("added"));
    assertTrue(o1c.containsKey("test1"));

    assertEquals(Stream.of("test1", "array", "added").sorted().collect(Collectors.toList()),
            Optionals.streamOf(j1.fieldNames(), false).sorted().collect(Collectors.toList()));
    assertEquals(
            Arrays.asList(mapper.convertValue(true, JsonNode.class), an,
                    mapper.convertValue("added_this", JsonNode.class)),
            Optionals.streamOf(((ObjectNode) j1).elements(), false).collect(Collectors.toList()));
    assertTrue(j1.toString().contains("added_this"));
    assertTrue(j1.toString().contains("4,5"));

    assertEquals(mapper.convertValue("added_this", JsonNode.class), j1.get("added"));

    assertEquals(3, j1.size());

    // OK now test removing:

    assertEquals(null, o1.remove("not_present"));
    assertEquals(mapper.convertValue(true, JsonNode.class), o1.remove("test1"));
    assertEquals(2, o1.size());
    ObjectNode o1b = o1.remove(Arrays.asList("added", "array"));
    assertEquals(0, o1.size());
    assertEquals(0, o1b.size());

    o1.putAll(JsonNodeWritableUtils.from(m1)); // will be minus one object
    assertEquals(2, o1.size());
    assertTrue(o1c.containsValue(mapper.convertValue(true, JsonNode.class)));
    assertFalse(o1c.containsValue("banana"));

    final ObjectNodeWrapper o2 = (ObjectNodeWrapper) JsonNodeWritableUtils.from(m2);
    assertFalse(o2.isEmpty());
    assertTrue(o2.containsKey("array"));
    assertFalse(o2.containsValue("array"));
    assertTrue(o2.containsValue(mapper.convertValue("test2", JsonNode.class)));
    assertEquals(TextNode.class, o2.remove("test2").getClass());
    assertEquals(2, o2.size());
    o2.removeAll();
    assertEquals(0, o2.size());
}

From source file:com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.java

private void convertMethodRequestParameters(EndpointMethod endpointMethod, ObjectNode requestNode,
        ObjectNode descriptorSchemasNode, ObjectNode descriptorMethodNode, ApiMethodConfig config,
        ApiConfig apiConfig) throws IllegalArgumentException, SecurityException, ApiConfigException {
    ObjectNode parametersNode = objectMapper.createObjectNode();
    Method method = endpointMethod.getMethod();
    List<ApiParameterConfig> parameterConfigs = config.getParameterConfigs();

    for (ApiParameterConfig parameterConfig : parameterConfigs) {
        switch (parameterConfig.getClassification()) {
        case INJECTED:
            // Do nothing.
            break;
        case API_PARAMETER:
            convertSimpleParameter(parameterConfig, parametersNode);
            break;
        case RESOURCE:
            // Inserts resource in.
            convertComplexParameter(parameterConfig, method, descriptorSchemasNode, descriptorMethodNode,
                    apiConfig, parameterConfigs);
            break;
        case UNKNOWN:
            throw new IllegalArgumentException("Unclassifiable parameter type found.");
        }/*  w  w  w.j a  v  a  2s  .co  m*/
    }
    // Set API parameter types if needed.
    if (parametersNode.size() != 0) {
        requestNode.set("parameters", parametersNode);
    }
    // Sets request body to auto-template if Lily request portion is set..
    if (descriptorMethodNode.get("request") != null) {
        requestNode.put("body", "autoTemplate(backendRequest)");
        requestNode.put("bodyName", "resource");
    } else {
        requestNode.put("body", "empty");
    }
}

From source file:org.opendaylight.sfc.sbrest.json.AclExporterFactory.java

private ObjectNode getActionsObjectNode(Actions actions) {
    if (actions == null) {
        return null;
    }//from www  .  java2  s.co  m

    ObjectNode actionsNode = mapper.createObjectNode();

    if (actions.getPacketHandling() != null) {
        String actionType = actions.getPacketHandling().getImplementedInterface().getSimpleName();

        switch (actionType) {
        case DENY:
            actionsNode.put(_DENY, "");
            break;
        case PERMIT:
            actionsNode.put(_PERMIT, "");
            break;
        default:
            actionsNode.put(_DENY, "");
            break;
        }
    }

    Actions1 actions1 = actions.getAugmentation(Actions1.class);
    if (actions1 != null) {
        SfcAction sfcAction = actions1.getSfcAction();

        if (sfcAction != null) {
            String sfcActionType = sfcAction.getImplementedInterface().getSimpleName();

            switch (sfcActionType) {
            case ACL_RENDERED_SERVICE_PATH:
                AclRenderedServicePath aclRenderedServicePath = (AclRenderedServicePath) sfcAction;
                actionsNode.put(_SERVICE_FUNCTION_ACL_RENDERED_SERVICE_PATH,
                        aclRenderedServicePath.getRenderedServicePath());
                break;
            }
        }
    }

    if (actionsNode.size() == 0) {
        return null;
    }

    return actionsNode;
}

From source file:com.glaf.core.web.rest.MxSystemParamResource.java

@GET
@POST//  w ww  .  j  a  v a 2 s .  c  o  m
@Path("/json")
@ResponseBody
@Produces({ MediaType.APPLICATION_OCTET_STREAM })
public byte[] json(@Context HttpServletRequest request) {
    ObjectNode responseJSON = new ObjectMapper().createObjectNode();
    String serviceKey = request.getParameter("serviceKey");
    String businessKey = request.getParameter("businessKey");
    try {
        Map<String, InputDefinition> paramMap = new java.util.HashMap<String, InputDefinition>();
        List<InputDefinition> params = systemParamService.getInputDefinitions(serviceKey);
        if (params != null && !params.isEmpty()) {
            for (InputDefinition def : params) {
                paramMap.put(def.getKeyName(), def);
            }
        }
        List<SystemParam> rows = systemParamService.getSystemParams(serviceKey, businessKey);
        if (rows != null && !rows.isEmpty()) {
            responseJSON.put("total", rows.size());
            ArrayNode rowsJSON = new ObjectMapper().createArrayNode();
            for (SystemParam param : rows) {
                ObjectNode json = new ObjectMapper().createObjectNode();
                InputDefinition def = paramMap.get(param.getKeyName());
                if (param.getTitle() != null) {
                    json.put("name", param.getTitle() + " (" + param.getKeyName() + ")");
                } else {
                    json.put("name", param.getKeyName());
                }
                json.put("title", param.getTitle());
                if (param.getStringVal() != null) {
                    json.put("value", param.getStringVal());
                }
                String javaType = param.getJavaType();
                if (def != null) {
                    javaType = def.getJavaType();
                    json.put("group", def.getTypeTitle());
                } else {
                    json.put("group", param.getTypeCd());
                }

                if ("Integer".equals(javaType)) {
                    json.put("editor", "numberbox");
                } else if ("Long".equals(javaType)) {
                    json.put("editor", "numberbox");
                } else if ("Double".equals(javaType)) {
                    json.put("editor", "numberbox");
                } else if ("Date".equals(javaType)) {
                    json.put("editor", "datebox");
                } else {
                    json.put("editor", "text");
                    if (def != null) {
                        String inputType = def.getInputType();
                        String validType = def.getValidType();

                        if (StringUtils.isNotEmpty(def.getRequired())) {
                            json.put("required", def.getRequired());
                        }
                        ObjectNode editor = new ObjectMapper().createObjectNode();
                        ObjectNode options = new ObjectMapper().createObjectNode();
                        if (validType != null) {
                            options.put("validType", validType);
                        }
                        if (inputType != null) {
                            if ("checkbox".equals(inputType)) {
                                options.put("on", true);
                                options.put("off", false);
                            }
                            if ("combobox".equals(inputType)) {
                                options.put("valueField", def.getValueField());
                                options.put("textField", def.getTextField());
                                if (def.getUrl() != null) {
                                    options.put("url", request.getContextPath() + def.getUrl());
                                }
                                if (StringUtils.isNotEmpty(def.getRequired())) {
                                    options.put("required", def.getRequired());
                                }
                            }
                        }
                        editor.put("type", inputType);
                        if (options.size() > 0) {
                            editor.set("options", options);
                        }
                        json.set("editor", editor);
                    }
                }

                rowsJSON.add(json);
            }
            responseJSON.set("rows", rowsJSON);
        }
        logger.debug(responseJSON.toString());
        return responseJSON.toString().getBytes("UTF-8");
    } catch (IOException e) {
        return responseJSON.toString().getBytes();
    }
}

From source file:org.wrml.runtime.format.text.html.WrmldocFormatter.java

protected ObjectNode buildLinksNode(final ObjectMapper objectMapper, final Map<URI, ObjectNode> schemaNodes,
        final Map<URI, LinkRelation> linkRelationCache, final ApiNavigator apiNavigator,
        final Resource resource, final Prototype defaultPrototype) {

    final Context context = getContext();
    final SchemaLoader schemaLoader = context.getSchemaLoader();
    final SyntaxLoader syntaxLoader = context.getSyntaxLoader();

    final URI defaultSchemaUri = (defaultPrototype != null) ? defaultPrototype.getSchemaUri() : null;

    final ObjectNode linksNode = objectMapper.createObjectNode();

    final Set<URI> responseSchemaUris = new HashSet<>();
    if (defaultSchemaUri != null) {
        responseSchemaUris.add(defaultSchemaUri);
    }//from  w  ww  .  j av  a  2 s.c o m

    for (final Method method : Method.values()) {
        final Set<URI> methodResponseSchemaUris = resource.getResponseSchemaUris(method);
        if (methodResponseSchemaUris != null && !methodResponseSchemaUris.isEmpty()) {
            responseSchemaUris.addAll(methodResponseSchemaUris);
        }
    }

    final ConcurrentHashMap<URI, LinkTemplate> linkTemplates = resource.getLinkTemplates();

    for (final URI schemaUri : responseSchemaUris) {
        final Prototype prototype = schemaLoader.getPrototype(schemaUri);
        final SortedMap<URI, LinkProtoSlot> linkProtoSlots = prototype.getLinkProtoSlots();
        if (linkProtoSlots == null || linkProtoSlots.isEmpty()) {
            continue;
        }

        final ObjectNode linkTemplatesNode = objectMapper.createObjectNode();

        final Set<URI> linkRelationUris = linkProtoSlots.keySet();
        for (final URI linkRelationUri : linkRelationUris) {
            final LinkProtoSlot linkProtoSlot = linkProtoSlots.get(linkRelationUri);

            if (schemaLoader.getDocumentSchemaUri().equals(linkProtoSlot.getDeclaringSchemaUri())) {
                // Skip over the built-in system-level link relations (which are all self-referential).
                continue;
            }

            final ObjectNode linkTemplateNode = objectMapper.createObjectNode();
            final String linkSlotName = linkProtoSlot.getName();
            linkTemplatesNode.put(linkSlotName, linkTemplateNode);

            final LinkRelation linkRelation = getLinkRelation(linkRelationCache, linkRelationUri);
            final Method method = linkRelation.getMethod();

            linkTemplateNode.put(PropertyName.method.name(), method.getProtocolGivenName());
            linkTemplateNode.put(PropertyName.rel.name(), syntaxLoader.formatSyntaxValue(linkRelationUri));
            linkTemplateNode.put(PropertyName.relationTitle.name(), linkRelation.getTitle());

            final URI responseSchemaUri;
            final URI requestSchemaUri;

            if (linkTemplates.containsKey(linkRelationUri)) {
                final LinkTemplate linkTemplate = linkTemplates.get(linkRelationUri);
                responseSchemaUri = linkTemplate.getResponseSchemaUri();
                requestSchemaUri = linkTemplate.getRequestSchemaUri();

                final UUID endPointId = linkTemplate.getEndPointId();
                if (endPointId != null) {
                    final Resource endPointResource = apiNavigator.getResource(endPointId);

                    final ObjectNode endPointNode = objectMapper.createObjectNode();

                    endPointNode.put(PropertyName.id.name(), syntaxLoader.formatSyntaxValue(endPointId));
                    endPointNode.put(PropertyName.pathSegment.name(), endPointResource.getPathSegment());
                    endPointNode.put(PropertyName.fullPath.name(), endPointResource.getPathText());
                    endPointNode.put(PropertyName.uriTemplate.name(),
                            endPointResource.getUriTemplate().getUriTemplateString());

                    linkTemplateNode.put(PropertyName.endpoint.name(), endPointNode);
                }

            } else {
                responseSchemaUri = linkProtoSlot.getResponseSchemaUri();
                requestSchemaUri = linkProtoSlot.getRequestSchemaUri();
            }

            if (responseSchemaUri != null) {
                final ObjectNode responseSchemaNode = getSchemaNode(objectMapper, schemaNodes,
                        responseSchemaUri, schemaLoader);
                linkTemplateNode.put(PropertyName.responseSchema.name(), responseSchemaNode);
            }

            if (requestSchemaUri != null) {
                final ObjectNode requestSchemaNode = getSchemaNode(objectMapper, schemaNodes, requestSchemaUri,
                        schemaLoader);
                linkTemplateNode.put(PropertyName.requestSchema.name(), requestSchemaNode);
            }

            final String signature = buildLinkSignature(linkSlotName, responseSchemaUri, requestSchemaUri,
                    schemaUri);
            linkTemplateNode.put(PropertyName.signature.name(), signature);
        }

        if (linkTemplatesNode.size() > 0) {
            final ObjectNode schemaNode = objectMapper.createObjectNode();
            final ObjectNode schemaDetailsNode = getSchemaNode(objectMapper, schemaNodes, schemaUri,
                    schemaLoader);
            schemaNode.put(PropertyName.schema.name(), schemaDetailsNode);
            schemaNode.put(PropertyName.linkTemplates.name(), linkTemplatesNode);
            linksNode.put(prototype.getUniqueName().getLocalName(), schemaNode);
        }
    }

    return linksNode;
}

From source file:org.apache.streams.plugins.cassandra.StreamsCassandraResourceGenerator.java

protected StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId,
        Character seperator) {/*from  w ww  .  j a v a 2 s .  c o m*/
    ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
    if (propertiesNode.get("id") != null) {
        builder.append("id text PRIMARY KEY,");
        builder.append(LS);
        propertiesNode.remove("id");
    }
    if (propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0) {
        builder = appendPropertiesNode(builder, schema, propertiesNode, seperator);
    }
    return builder;
}

From source file:org.apache.streams.plugins.elasticsearch.StreamsElasticsearchResourceGenerator.java

protected StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId,
        Character seperator) {//  w  w w . j a  v a  2  s.  co  m
    ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
    if (propertiesNode.get("id") != null) {
        builder.append("id text PRIMARY KEY,");
        builder.append(LS);
        propertiesNode.remove("id");
    }
    if (propertiesNode.isObject() && propertiesNode.size() > 0) {
        builder = appendPropertiesNode(builder, schema, propertiesNode, seperator);
    }
    return builder;
}