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

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

Introduction

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

Prototype

public JsonNode get(String paramString) 

Source Link

Usage

From source file:org.dswarm.graph.resources.MaintainResource.java

@POST
@Path("/deprecate/datamodel")
@Consumes(MediaType.APPLICATION_JSON)/*from   w ww.  ja v  a  2s .com*/
@Produces(MediaType.APPLICATION_JSON)
public Response deprecateDataModel(final String jsonObjectString, @Context final GraphDatabaseService database)
        throws DMPGraphException {

    MaintainResource.LOG.info("try to deprecate data model in graph db");

    final ObjectNode requestJSON = deserializeJSON(jsonObjectString, DEPRECATE_DATA_MODEL_TYPE);

    final String dataModelUri = requestJSON.get(DMPStatics.DATA_MODEL_URI_IDENTIFIER).asText();

    final TransactionHandler tx = new Neo4jTransactionHandler(database);
    final NamespaceIndex namespaceIndex = new NamespaceIndex(database, tx);

    final String prefixedDataModelUri = namespaceIndex.createPrefixedURI(dataModelUri);

    MaintainResource.LOG.info("try to deprecate statements in data model '{}' ('{}') in graph db", dataModelUri,
            prefixedDataModelUri);

    final BasicNeo4jProcessor processor = new DataModelNeo4jProcessor(database, tx, namespaceIndex,
            prefixedDataModelUri);

    final RelationshipDeprecator dataModelDeprecator = new DataModelNeo4jDeprecator(processor, true,
            prefixedDataModelUri);

    dataModelDeprecator.work();

    final int relationshipsDeprecated = dataModelDeprecator.getRelationshipsDeprecated();

    if (relationshipsDeprecated > 0) {

        // update data model version only when some statements are deprecated the DB
        dataModelDeprecator.getVersionHandler().updateLatestVersion();
    }

    dataModelDeprecator.closeTransaction();

    LOG.info("deprecated '{}' relationships in data model '{}' ('{}') in graph db", relationshipsDeprecated,
            dataModelUri, prefixedDataModelUri);

    final ObjectNode resultJSON = simpleObjectMapper.createObjectNode();
    resultJSON.put("deprecated", relationshipsDeprecated);
    final String result = serializeJSON(resultJSON, DEPRECATE_DATA_MODEL_TYPE);

    return Response.ok(result, MediaType.APPLICATION_JSON_TYPE).build();
}

From source file:org.dswarm.graph.resources.MaintainResource.java

@POST
@Path("/deprecate/records")
@Consumes(MediaType.APPLICATION_JSON)/*from w  w w .  java 2  s .  c o m*/
@Produces(MediaType.APPLICATION_JSON)
public Response deprecateRecords(final String jsonObjectString, @Context final GraphDatabaseService database)
        throws DMPGraphException {

    MaintainResource.LOG.info("try to deprecate records in a data model in graph db");

    final ObjectNode requestJSON = deserializeJSON(jsonObjectString, DEPRECATE_RECORDS_TYPE);

    final String dataModelUri = requestJSON.get(DMPStatics.DATA_MODEL_URI_IDENTIFIER).asText();

    final Collection<String> recordURIs = getRecordURIs(requestJSON);

    final TransactionHandler tx = new Neo4jTransactionHandler(database);
    final NamespaceIndex namespaceIndex = new NamespaceIndex(database, tx);

    final String prefixedDataModelUri = namespaceIndex.createPrefixedURI(dataModelUri);

    final Collection<String> prefixedRecordURIs = prefixRecordURIs(recordURIs, namespaceIndex);

    MaintainResource.LOG.info("try to deprecate '{}' records in data model '{}' ('{}') in graph db",
            prefixedRecordURIs.size(), dataModelUri, prefixedDataModelUri);

    final BasicNeo4jProcessor processor = new DataModelNeo4jProcessor(database, tx, namespaceIndex,
            prefixedDataModelUri);

    final RelationshipDeprecator recordsDeprecator = new RecordsNeo4jDeprecator(processor, true,
            prefixedDataModelUri, prefixedRecordURIs);

    recordsDeprecator.work();

    final int relationshipsDeprecated = recordsDeprecator.getRelationshipsDeprecated();

    if (relationshipsDeprecated > 0) {

        // update data model version only when some statements are deprecated the DB
        recordsDeprecator.getVersionHandler().updateLatestVersion();
    }

    recordsDeprecator.closeTransaction();

    LOG.info("deprecated '{}' records with '{}' relationships in data model '{}' ('{}') in graph db",
            prefixedRecordURIs.size(), relationshipsDeprecated, dataModelUri, prefixedDataModelUri);

    final ObjectNode resultJSON = simpleObjectMapper.createObjectNode();
    resultJSON.put("deprecated", relationshipsDeprecated);
    final String result = serializeJSON(resultJSON, DEPRECATE_DATA_MODEL_TYPE);

    return Response.ok(result, MediaType.APPLICATION_JSON_TYPE).build();

}

From source file:org.apache.streams.rss.serializer.SyndEntryActivitySerializer.java

public Activity deserializeWithRomeExtension(ObjectNode entry, boolean withExtension) {
    Preconditions.checkNotNull(entry);/*from  w w w . ja  va 2 s .c  o m*/

    Activity activity = new Activity();
    Provider provider = buildProvider(entry);
    Actor actor = buildActor(entry);
    ActivityObject activityObject = buildActivityObject(entry);

    activityObject.setUrl(provider.getUrl());
    activityObject.setAuthor(actor.getAuthor());

    activity.setUrl(provider.getUrl());
    activity.setProvider(provider);
    activity.setActor(actor);
    activity.setVerb("post");
    activity.setId("id:rss:post:" + activity.getUrl());

    JsonNode published = entry.get("publishedDate");
    if (published != null) {
        try {
            activity.setPublished(RFC3339Utils.parseToUTC(published.textValue()));
        } catch (Exception e) {
            LOGGER.warn("Failed to parse date : {}", published.textValue());

            DateTime now = DateTime.now().withZone(DateTimeZone.UTC);
            activity.setPublished(now);
        }
    }

    activity.setUpdated(activityObject.getUpdated());
    activity.setObject(activityObject);

    if (withExtension) {
        activity = addRomeExtension(activity, entry);
    }

    return activity;
}

From source file:com.sammyun.controller.console.MemberController.java

/**
 * /*  w  w  w.  ja  v a  2s.  co  m*/
 */
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(Member member, HttpServletRequest request, RedirectAttributes redirectAttributes,
        long areaId, ModelMap model) {
    Member preMember = memberService.find(member.getId());
    if (preMember == null) {
        addFlashMessage(redirectAttributes, ERROR_MESSAGE);
        return ERROR_VIEW;
    }
    preMember.setRealName(member.getRealName());

    preMember.setEmail(member.getEmail());
    preMember.setGender(member.getGender());
    preMember.setBirth(member.getBirth());
    Area newArea = areaService.find(areaId);
    preMember.setArea(newArea);
    preMember.setAddress(member.getAddress());
    preMember.setZipCode(member.getZipCode());
    preMember.setIsEnabled(member.getIsEnabled());
    preMember.setIconPhoto(member.getIconPhoto());
    preMember.setIsEnabled(member.getIsEnabled());
    // preMember.setIsUpdate(true);
    // DigestUtils.md5Hex(member.getPassword())
    if (preMember.getMobile().equals(member.getMobile())) {
        // ?????
        if ((member.getPassword() != null) && (!member.getPassword().equals(""))) {
            String md5Password = DigestUtils.md5Hex(member.getPassword());
            ObjectNode modifyIMUserPasswordWithAdminTokenNode = easemobIMUsers
                    .modifyUserPassword(preMember.getUsername(), md5Password.toLowerCase());
            if ((null != modifyIMUserPasswordWithAdminTokenNode) && (modifyIMUserPasswordWithAdminTokenNode
                    .get("statusCode").asText().equalsIgnoreCase("200"))) {
                preMember.setPassword(md5Password);
                memberService.update(preMember);
                model.addAttribute("menuId", Member.class.getSimpleName());
                addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
                return "redirect:list.ct";
            } else {
                model.addAttribute("menuId", Member.class.getSimpleName());
                addFlashMessage(redirectAttributes, ERROR_MESSAGE);
                return ERROR_VIEW;
            }
        } else {
            memberService.update(preMember);
            addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
            model.addAttribute("menuId", Member.class.getSimpleName());
            return "redirect:list.ct";
        }
    }
    // ????
    else {
        String preUserName = preMember.getUsername();
        String password = preMember.getPassword();
        preMember.setMobile(member.getMobile());
        preMember.setUsername(member.getMobile());
        if (member.getPassword() != null) {
            preMember.setPassword(DigestUtils.md5Hex(member.getPassword()));
            password = DigestUtils.md5Hex(member.getPassword());
        }
        // // ????
        // ObjectNode friendNode = EasemobIMUsers.getFriends(preUserName);
        // List<String> friendList = new ArrayList<String>();
        // JsonNode arrNode = friendNode.get("data");
        // if (arrNode.isArray())
        // {
        // for (final JsonNode objNode : arrNode)
        // {
        // friendList.add(objNode.asText());
        // }
        // }
        // im
        easemobIMUsers.deleteUserByUserPrimaryKey(preUserName);
        // 
        easemobIMUsers.createUserSingle(preMember.getUsername(), password.toLowerCase());
        memberService.update(preMember);
        // // ????
        // if (friendList.size() > 0)
        // {
        // for (String friend : friendList)
        // {
        // easemobIMUsers.addFriend(preMember.getUsername(), friend);
        // }
        // }
        model.addAttribute("menuId", Member.class.getSimpleName());
        addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
        return "redirect:list.ct";
    }
}

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

/** Creates a list of JsonNodes containing the mapping for fields that will _enable_ or _disable_ field data depending on fielddata_info is present 
 *  (note this can convert a property to a dynamic template, but never the other way round)
 * @param instream//from  www .ja va2s  .  co  m
 * @param f
 * @param field_lookups
 * @param fielddata_info 3tuple containing not_analyzed, analyzed, and override
 * @param mapper
 * @return
 */
protected static Stream<Tuple2<Either<String, Tuple2<String, String>>, JsonNode>> createFieldLookups(
        final Stream<String> instream, final Function<String, Either<String, Tuple2<String, String>>> f,
        final LinkedHashMap<Either<String, Tuple2<String, String>>, JsonNode> field_lookups,
        final Optional<Tuple3<JsonNode, JsonNode, Boolean>> fielddata_info,
        final SearchIndexSchemaDefaultBean search_index_schema_override,
        final Map<Either<String, Tuple2<String, String>>, String> type_override, final ObjectMapper mapper,
        final String index_type) {
    return instream.<Tuple2<Either<String, Tuple2<String, String>>, JsonNode>>map(Lambdas.wrap_u(fn -> {
        final Either<String, Tuple2<String, String>> either_tmp = f.apply(fn);
        final Optional<String> maybe_type = Optional.ofNullable(type_override.get(either_tmp));

        // add type if present
        final Either<String, Tuple2<String, String>> either = maybe_type
                .<Either<String, Tuple2<String, String>>>map(type -> {
                    return either_tmp.<Either<String, Tuple2<String, String>>>either(s -> Either.left(s),
                            t2 -> Either.right(Tuples._2T(t2._1(), type)));
                }).orElse(either_tmp);

        final ObjectNode mutable_field_metadata = (ObjectNode) Optional.ofNullable(field_lookups.get(either))
                .map(j -> j.deepCopy())
                .orElse(either.either(Lambdas.wrap_fj_u(__ -> mapper.readTree(BACKUP_FIELD_MAPPING_PROPERTIES)),
                        Lambdas.wrap_fj_u(__ -> mapper.readTree(BACKUP_FIELD_MAPPING_TEMPLATES))));
        //(note that these 2 mappings don't have "type"s - therefore they will result in default_templates not properties - you need the type to generate a property)

        final ObjectNode mutable_field_mapping_tmp = either.isLeft() ? mutable_field_metadata
                : (ObjectNode) mutable_field_metadata.get("mapping");

        //(override with type if set)
        maybe_type.ifPresent(type -> mutable_field_mapping_tmp.put("type", type));

        final boolean has_type = mutable_field_mapping_tmp.has("type");

        final Tuple2<ObjectNode, Either<String, Tuple2<String, String>>> toplevel_eithermod = Lambdas
                .get(() -> {
                    if (either.isLeft() && !has_type) {
                        final ObjectNode top_level = (ObjectNode) mapper.createObjectNode().set("mapping",
                                mutable_field_metadata);
                        return Tuples._2T(top_level,
                                Either.<String, Tuple2<String, String>>right(Tuples._2T(fn, "*")));
                    } else { // right[dynamic] *OR* (left[properties] and has-type)
                        return Tuples._2T(mutable_field_metadata, either);
                    }
                });

        final ObjectNode mutable_field_mapping = toplevel_eithermod._2().isLeft() ? toplevel_eithermod._1()
                : (ObjectNode) toplevel_eithermod._1().get("mapping");

        // Special case ... if we're columnar and we're merging with tokenized and non-dual then convert to untokenized instead 
        if (fielddata_info.filter(t3 -> t3._3()).isPresent() && mutable_field_mapping.equals(
                mapper.convertValue(search_index_schema_override.tokenized_string_field(), JsonNode.class))) {
            mutable_field_mapping.removeAll();
            mutable_field_mapping.setAll((ObjectNode) mapper
                    .convertValue(search_index_schema_override.untokenized_string_field(), ObjectNode.class));
        }

        if (toplevel_eithermod._2().isRight()) {
            if (!toplevel_eithermod._1().has(PATH_MATCH_NAME) && !toplevel_eithermod._1().has(RAW_MATCH_NAME)) {
                toplevel_eithermod._1().put(PATH_MATCH_NAME, toplevel_eithermod._2().right().value()._1());

                if (!toplevel_eithermod._1().has(TYPE_MATCH_NAME))
                    toplevel_eithermod._1().put(TYPE_MATCH_NAME, toplevel_eithermod._2().right().value()._2());
            }
            if (!has_type) {
                if (toplevel_eithermod._2().right().value()._2().equals("*")) { // type is mandatory
                    mutable_field_mapping.put("type", "{dynamic_type}");
                } else {
                    mutable_field_mapping.put("type", toplevel_eithermod._2().right().value()._2());
                }
            }
        }
        handleMappingFields(mutable_field_mapping, fielddata_info, mapper, index_type);
        setMapping(mutable_field_mapping, fielddata_info, mapper, index_type);
        return Tuples._2T(toplevel_eithermod._2(), toplevel_eithermod._1());
    }));

}

From source file:com.almende.eve.agent.google.GoogleCalendarAgent.java

/**
 * Set access token and refresh token, used to authorize the calendar agent.
 * These tokens must be retrieved via Oauth 2.0 authorization.
 * /* w  ww  .  j  av  a  2  s  .c o m*/
 * @param access_token
 *            the access_token
 * @param token_type
 *            the token_type
 * @param expires_in
 *            the expires_in
 * @param refresh_token
 *            the refresh_token
 * @throws IOException
 *             Signals that an I/O exception has occurred.
 */
public void setAuthorization(@Name("access_token") final String access_token,
        @Name("token_type") final String token_type, @Name("expires_in") final Integer expires_in,
        @Name("refresh_token") final String refresh_token) throws IOException {
    final State state = getState();

    // retrieve user information
    final String url = "https://www.googleapis.com/oauth2/v1/userinfo";
    final Map<String, String> headers = new HashMap<String, String>();
    headers.put("Authorization", token_type + " " + access_token);
    final String resp = HttpUtil.get(url, headers);

    final ObjectNode info = JOM.getInstance().readValue(resp, ObjectNode.class);
    final String email = info.has("email") ? info.get("email").asText() : null;
    final String name = info.has("name") ? info.get("name").asText() : null;

    final DateTime expires_at = calculateExpiresAt(expires_in);
    final Authorization auth = new Authorization(access_token, token_type, expires_at, refresh_token);

    // store the tokens in the state
    state.put("auth", auth);
    state.put("email", email);
    state.put("name", name);
}

From source file:com.joyent.manta.client.multipart.ServerSideMultipartManager.java

@Override
public ServerSideMultipartUpload initiateUpload(final String path, final Long contentLength,
        final MantaMetadata mantaMetadata, final MantaHttpHeaders httpHeaders) throws IOException {
    Validate.notBlank(path, "Path to object must not be blank");

    final MantaMetadata metadata;

    if (mantaMetadata == null) {
        metadata = new MantaMetadata();
    } else {//from w w  w.j  a v a 2 s.c om
        metadata = mantaMetadata;
    }

    final MantaHttpHeaders headers;

    if (httpHeaders == null) {
        headers = new MantaHttpHeaders();
    } else {
        headers = httpHeaders;
    }

    /* We explicitly set the content-length header if it is passed as a method parameter
     * so that the server will validate the size of the upload when it is committed. */
    if (contentLength != null && headers.getContentLength() == null) {
        headers.setContentLength(contentLength);
    }

    final String postPath = uploadsPath();
    final HttpPost post = httpHelper.getRequestFactory().post(postPath);

    final byte[] jsonRequest = createMpuRequestBody(path, metadata, headers);
    final HttpEntity entity = new ExposedByteArrayEntity(jsonRequest, ContentType.APPLICATION_JSON);
    post.setEntity(entity);

    final int expectedStatusCode = HttpStatus.SC_CREATED;
    final CloseableHttpClient httpClient = httpHelper.getConnectionContext().getHttpClient();

    try (CloseableHttpResponse response = httpClient.execute(post)) {
        StatusLine statusLine = response.getStatusLine();

        validateStatusCode(expectedStatusCode, statusLine.getStatusCode(), "Unable to create multipart upload",
                post, response, path, jsonRequest);
        validateEntityIsPresent(post, response, path, jsonRequest);

        try (InputStream in = response.getEntity().getContent()) {
            ObjectNode mpu = MantaObjectMapper.INSTANCE.readValue(in, ObjectNode.class);

            JsonNode idNode = mpu.get("id");
            Validate.notNull(idNode, "No multipart id returned in response");
            UUID uploadId = UUID.fromString(idNode.textValue());

            JsonNode partsDirectoryNode = mpu.get("partsDirectory");
            Validate.notNull(partsDirectoryNode, "No parts directory returned in response");
            String partsDirectory = partsDirectoryNode.textValue();

            return new ServerSideMultipartUpload(uploadId, path, partsDirectory);
        } catch (NullPointerException | IllegalArgumentException e) {
            String msg = "Expected response field was missing or malformed";
            MantaMultipartException me = new MantaMultipartException(msg, e);
            annotateException(me, post, response, path, jsonRequest);
            throw me;
        } catch (JsonParseException e) {
            String msg = "Response body was not JSON";
            MantaMultipartException me = new MantaMultipartException(msg, e);
            annotateException(me, post, response, path, jsonRequest);
            throw me;
        }
    }
}

From source file:io.robusta.rra.representation.implementation.JacksonRepresentation.java

@Override
public Representation remove(String key) throws RepresentationException {
    throwIfNotObject();/*from  w  ww  .j  a  v  a 2  s. co m*/
    int i = 0;
    if (key.contains(".")) {
        String[] keys = key.split("\\.");
        if (keys.length == 0) {
            throw new IllegalArgumentException(
                    "Malformed key " + keys + " ; use something like user.school.id");
        }
        ObjectNode current = asObject();
        for (i = 0; i < keys.length - 1; i++) {
            current = (ObjectNode) current.get(keys[i]);
            if (current == null) {
                throw new IllegalArgumentException(
                        "There is no valid object for key " + keys[i] + " in '" + key + "'");
            }
        }
        if (current.get(keys[keys.length - 1]) == null) {
            throw new IllegalArgumentException(
                    "There is no valid object for key " + keys[keys.length - 1] + " in '" + key + "'");
        }
        current.remove(keys[keys.length - 1]);
    } else {
        if (document.get(key) == null) {
            throw new IllegalArgumentException("There is no valid object for key " + key);
        }
        asObject().remove(key);
    }
    return this;
}

From source file:com.joyent.manta.client.multipart.ServerSideMultipartManager.java

@Override
public MantaMultipartStatus getStatus(final ServerSideMultipartUpload upload) throws IOException {
    Validate.notNull(upload, "Upload state object must not be null");

    final String partsDirectory;

    if (upload.getPartsDirectory() == null) {
        partsDirectory = uuidPrefixedPath(upload.getId());
    } else {/*w  w w  . j a v  a  2  s  .c  o  m*/
        partsDirectory = upload.getPartsDirectory();
    }

    final String getPath = partsDirectory + SEPARATOR + "state";
    final HttpGet get = httpHelper.getRequestFactory().get(getPath);

    final int expectedStatusCode = HttpStatus.SC_OK;
    final CloseableHttpClient httpClient = httpHelper.getConnectionContext().getHttpClient();

    try (CloseableHttpResponse response = httpClient.execute(get)) {
        StatusLine statusLine = response.getStatusLine();

        if (statusLine.getStatusCode() == HttpStatus.SC_NOT_FOUND) {
            return MantaMultipartStatus.UNKNOWN;
        }

        validateStatusCode(expectedStatusCode, statusLine.getStatusCode(),
                "Unable to get status for multipart upload", get, response, null, null);
        validateEntityIsPresent(get, response, null, null);

        try (InputStream in = response.getEntity().getContent()) {
            ObjectNode objectNode = MantaObjectMapper.INSTANCE.readValue(in, ObjectNode.class);

            JsonNode stateNode = objectNode.get("state");
            Validate.notNull(stateNode, "Unable to get state from response");
            String state = stateNode.textValue();
            Validate.notBlank(state, "State field was blank in response");

            if (state.equalsIgnoreCase("created")) {
                return MantaMultipartStatus.CREATED;
            }
            if (state.equalsIgnoreCase("finalizing")) {
                return extractMultipartStatusResult(objectNode);
            }
            if (state.equalsIgnoreCase("done")) {
                return extractMultipartStatusResult(objectNode);
            }

            return MantaMultipartStatus.UNKNOWN;
        } catch (JsonParseException e) {
            String msg = "Response body was not JSON";
            MantaMultipartException me = new MantaMultipartException(msg, e);
            annotateException(me, get, response, null, null);
            throw me;
        } catch (NullPointerException | IllegalArgumentException e) {
            String msg = "Expected response field was missing or malformed";
            MantaMultipartException me = new MantaMultipartException(msg, e);
            annotateException(me, get, response, null, null);
            throw me;
        }
    }
}

From source file:org.lendingclub.mercator.dynect.DynectScanner.java

private List<String> scanZones() {

    Instant startTime = Instant.now();

    logger.info("Scanning all zones in Dynect");
    ObjectNode response = getDynectClient().get("REST/Zone/");

    JsonNode zoneData = response.path("data");
    List<String> zonesList = new ArrayList<String>();

    if (zoneData.isArray()) {
        zoneData.forEach(zone -> {/*from  w  w  w. j  a va 2  s  .  c  om*/

            String zoneNode = zone.asText();
            String zoneName = Splitter.on("/").splitToList(zoneNode).get(3);
            zonesList.add(zoneName);
        });
    }

    logger.info("Scanning {} zones in Dynect to get more details", zonesList.size());

    for (String zone : zonesList) {
        response = getDynectClient().get("REST/Zone/" + zone);
        logger.debug("Scanning {} zone", zone);

        ObjectNode n = toZoneJson(response.get("data"));
        Preconditions.checkNotNull(getProjector().getNeoRxClient(), "neorx client must be set");
        String cypher = "MERGE (m:DynHostedZone {zoneName:{zone}}) "
                + "ON CREATE SET  m+={props}, m.createTs = timestamp(), m.updateTs=timestamp() "
                + "ON MATCH SET m+={props}, m.updateTs=timestamp();";
        getProjector().getNeoRxClient().execCypher(cypher, "zone", zone, "props", n);
    }

    Instant endTime = Instant.now();
    logger.info("Updating neo4j with the latest information of all {} zones from Dynect took {} secs",
            zonesList.size(), Duration.between(startTime, endTime).getSeconds());

    return zonesList;
}