Example usage for com.fasterxml.jackson.core JsonParser getLongValue

List of usage examples for com.fasterxml.jackson.core JsonParser getLongValue

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonParser getLongValue.

Prototype

public abstract long getLongValue() throws IOException, JsonParseException;

Source Link

Document

Numeric accessor that can be called when the current token is of type JsonToken#VALUE_NUMBER_INT and it can be expressed as a Java long primitive type.

Usage

From source file:org.oscim.utils.overpass.OverpassAPIReader.java

private void parseNode(JsonParser jp) throws JsonParseException, IOException {

    long id = 0;//from  w w w.j a  v  a2s  .c  om
    double lat = 0, lon = 0;
    TagSet tags = null;

    while (jp.nextToken() != JsonToken.END_OBJECT) {

        String name = jp.getCurrentName();
        jp.nextToken();

        if ("id".equals(name))
            id = jp.getLongValue();

        else if ("lat".equals(name))
            lat = jp.getDoubleValue();

        else if ("lon".equals(name))
            lon = jp.getDoubleValue();

        else if ("tags".equals(name))
            tags = parseTags(jp);

    }

    // log("node: "+id + " "+ lat + " " + lon);
    OsmNode node = new OsmNode(lat, lon, tags, id);
    ownNodes.add(node);
    nodesById.put(Long.valueOf(id), node);
}

From source file:org.apache.ode.jacob.soup.jackson.MessageDeserializer.java

@Override
public Message deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    long id = 0;/*www  .ja  v  a 2  s. c o  m*/
    String action = null;
    ChannelRef to = null;
    ChannelRef replyTo = null;
    Map<String, Object> headers = null;
    Object body = null;

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String fieldname = jp.getCurrentName();
        if (jp.getCurrentToken() == JsonToken.FIELD_NAME) {
            // if we're not already on the field, advance by one.
            jp.nextToken();
        }

        if ("id".equals(fieldname)) {
            id = jp.getLongValue();
        } else if ("action".equals(fieldname)) {
            action = jp.getText();
        } else if ("to".equals(fieldname)) {
            to = jp.readValueAs(ChannelRef.class);
        } else if ("replyTo".equals(fieldname)) {
            replyTo = jp.readValueAs(ChannelRef.class);
        } else if ("headers".equals(fieldname)) {
            headers = jp.readValueAs(mapTypeRef);
        } else if ("body".equals(fieldname)) {
            body = jp.readValueAs(Object.class);
        }
    }

    if (action == null) {
        throw ctxt.mappingException(Message.class);
    }

    if (to == null) {
        throw ctxt.mappingException(Message.class);
    }

    Message msg = new Message(to, replyTo, action);
    msg.setHeaders(headers);
    msg.setBody(body);
    msg.setId(id);

    return msg;
}

From source file:org.oscim.utils.overpass.OverpassAPIReader.java

private void parseWay(JsonParser jp) throws JsonParseException, IOException {

    long id = 0;/*from w w w .  j a  va 2  s  .c  om*/
    TagSet tags = null;
    ArrayList<OsmNode> wayNodes = new ArrayList<OsmNode>();

    while (jp.nextToken() != JsonToken.END_OBJECT) {

        String name = jp.getCurrentName();
        jp.nextToken();

        if ("id".equals(name))
            id = jp.getLongValue();

        else if ("nodes".equals(name)) {
            while (jp.nextToken() != JsonToken.END_ARRAY) {
                Long nodeId = Long.valueOf(jp.getLongValue());

                OsmNode node = nodesById.get(nodeId);
                if (node != null)
                    // log("missing node " + nodeId);
                    // else
                    wayNodes.add(node);
            }
        } else if ("tags".equals(name))
            tags = parseTags(jp);
    }

    // log("way: "+ id + " " + wayNodes.size());
    OsmWay way = new OsmWay(tags, id, wayNodes);
    ownWays.add(way);
    waysById.put(Long.valueOf(id), way);
}

From source file:org.oscim.utils.overpass.OverpassAPIReader.java

private void parseRelation(JsonParser jp) throws JsonParseException, IOException {

    long id = 0;//from   www.  j av  a2 s.c o  m
    TagSet tags = null;
    ArrayList<TmpRelation> members = new ArrayList<TmpRelation>();

    while (jp.nextToken() != JsonToken.END_OBJECT) {

        String name = jp.getCurrentName();
        jp.nextToken();

        if ("id".equals(name))
            id = jp.getLongValue();

        else if ("members".equals(name)) {
            while (jp.nextToken() != JsonToken.END_ARRAY) {
                TmpRelation member = new TmpRelation();

                while (jp.nextToken() != JsonToken.END_OBJECT) {
                    name = jp.getCurrentName();
                    jp.nextToken();

                    if ("type".equals(name))
                        member.type = jp.getText();

                    else if ("ref".equals(name))
                        member.id = Long.valueOf(jp.getLongValue());

                    else if ("role".equals(name))
                        member.role = jp.getText();
                }
                members.add(member);
            }
        } else if ("tags".equals(name))
            tags = parseTags(jp);
    }

    OsmRelation relation = new OsmRelation(tags, id, members.size());
    ownRelations.add(relation);
    relationsById.put(Long.valueOf(id), relation);
    relationMembersForRelation.put(relation, members);
}

From source file:com.ntsync.shared.RequestGenerator.java

/**
 * /*from  w  w  w  .j a  v  a2  s  .co m*/
 * @param key
 * @param clientId
 * @param response
 * @return
 * @throws HeaderParseException
 */
public static SyncResponse processServerResponse(SecretKey key, String clientId, final byte[] response)
        throws HeaderParseException {
    short version = SyncDataHelper.readShort(response, 0);
    SyncState syncState = null;

    Map<Long, String> newGroupIdMap = null;
    Map<Long, String> newContactIdMap = null;
    SyncAnchor newSyncAnchor = new SyncAnchor();
    int skippedRows = 0;
    List<RawContact> serverContactList = new ArrayList<RawContact>();
    List<ContactGroup> serverGroupList = new ArrayList<ContactGroup>();

    String newClientId = clientId;
    Restrictions restr = null;
    if (version == RequestGenerator.PROT_VERSION) {
        int headerLength = SyncDataHelper.readInt(response, 2);

        JsonParser jp = null;
        try {
            jp = getJsonFactory().createParser(response, HEADER_POS, headerLength);
            jp.nextToken();
            while (jp.nextToken() != JsonToken.END_OBJECT) {
                String fieldname = jp.getCurrentName();
                // move to value, or START_OBJECT/START_ARRAY
                if (jp.nextToken() == null) {
                    break;
                }
                if (CLIENT_FIELD_NAME.equals(fieldname)) {
                    while (jp.nextToken() != JsonToken.END_OBJECT) {
                        String clientField = jp.getCurrentName();
                        if (jp.nextToken() == null) {
                            break;
                        }
                        if (PARAM_SYNC_ANCHOR.equals(clientField)) {
                            while (jp.nextToken() != JsonToken.END_OBJECT) {
                                String anchorType = jp.getCurrentName();
                                if (jp.nextToken() == null) {
                                    break;
                                }
                                long syncAnchor = jp.getLongValue();
                                if (anchorType != null && anchorType.length() > 0) {
                                    newSyncAnchor.setAnchor((byte) anchorType.charAt(0), syncAnchor);
                                }
                            }
                        } else if (PARAM_CLIENTID.equals(clientField)) {
                            newClientId = jp.getValueAsString();
                        } else if (TAG_GROUPIDS.equals(clientField)) {
                            newGroupIdMap = extractNewIdList(jp);
                        } else if (TAG_CONTACTIDS.equals(clientField)) {
                            newContactIdMap = extractNewIdList(jp);
                        } else {
                            LOG.warn("Unsupported Client-Header-Field: {}", clientField);
                        }
                    }
                } else if (SERVER_FIELD_NAME.equals(fieldname)) {
                    while (jp.nextToken() != JsonToken.END_OBJECT) {
                        String serverField = jp.getCurrentName();
                        if (jp.nextToken() == null) {
                            break;
                        }
                        if (RequestGenerator.SYNCSTATE_FIELD_NAME.equals(serverField)) {
                            String syncStateStr = jp.getValueAsString();
                            if (syncStateStr != null && syncStateStr.length() > 0) {
                                syncState = SyncState.fromErrorVal(syncStateStr);
                            }
                        } else if (RequestGenerator.TAG_SERVER_CONFIG.equals(serverField)) {
                            restr = parseRestr(jp);
                        }
                    }

                }
            }

            final int respLen = response.length;

            if (respLen > headerLength + HEADER_POS) {
                skippedRows = getUpdatedRows(key, serverContactList, serverGroupList, response, headerLength,
                        respLen);
            }
        } catch (UnsupportedEncodingException ex) {
            throw new RuntimeException(ex);
        } catch (JsonParseException ex) {
            throw new HeaderParseException(ex);
        } catch (IOException e) {
            throw new HeaderParseException(e);
        } finally {
            if (jp != null) {
                try {
                    jp.close();
                } catch (IOException ex) {
                    LOG.warn("Could not close JSONParser", ex);
                }
            }
        }
    }

    return new SyncResponse(syncState, serverContactList, serverGroupList, newSyncAnchor, newClientId,
            newGroupIdMap, newContactIdMap, skippedRows, restr);
}

From source file:net.openhft.chronicle.wire.benchmarks.Data.java

public void readFrom(JsonParser parser) throws IOException {
    parser.nextToken();//from   w w w  . j  av  a2s .  co  m
    while (parser.nextToken() != JsonToken.END_OBJECT) {
        String fieldname = parser.getCurrentName();
        parser.nextToken();
        switch (fieldname) {
        case "price":
            setPrice(parser.getDoubleValue());
            break;
        case "flag":
            flag = parser.getBooleanValue();
            break;
        case "text":
            setText(parser.getValueAsString());
            break;
        case "side":
            side = Side.valueOf(parser.getValueAsString());
            break;
        case "smallInt":
            smallInt = parser.getIntValue();
            break;
        case "longInt":
            longInt = parser.getLongValue();
            break;
        }
    }
}

From source file:name.gumartinm.weather.information.parser.JPOSForecastParser.java

private void getForecastWeatherDataObjects(final Forecast forecastWeatherData, final JsonParser jParser,
        final String fieldname) throws JsonParseException, IOException {

    if ("cod".equals(fieldname)) {
        final String stringCod = jParser.getText();
        forecastWeatherData.setCod(Long.valueOf(stringCod));
    }//from w w w.j a v a  2 s  .c om
    if ("message".equals(fieldname)) {
        forecastWeatherData.setMessage(jParser.getDoubleValue());
    }
    if ("city".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            final JsonToken nextToken = jParser.nextToken(); // move to
            // value
            if ("id".equals(namefield)) {
                forecastWeatherData.getCity().setId(jParser.getLongValue());
            }
            if ("name".equals(namefield)) {
                forecastWeatherData.getCity().setName(jParser.getText());
            }
            if ("coord".equals(namefield)) {
                if (nextToken == JsonToken.START_OBJECT) {
                    this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield);
                }
            }
            if ("country".equals(namefield)) {
                forecastWeatherData.getCity().setCountry(jParser.getText());
            }
            if ("population".equals(namefield)) {
                forecastWeatherData.getCity().setPopulation(jParser.getLongValue());
            }
        }
    }
    if ("cnt".equals(fieldname)) {
        forecastWeatherData.setCnt(jParser.getIntValue());
    }
    if ("coord".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("lon".equals(namefield)) {
                forecastWeatherData.getCity().getCoord().setLon(jParser.getDoubleValue());
            }
            if ("lat".equals(namefield)) {
                forecastWeatherData.getCity().getCoord().setLat(jParser.getDoubleValue());
            }
        }
    }
    if ("list".equals(fieldname)) {
        final name.gumartinm.weather.information.model.forecastweather.List list = new name.gumartinm.weather.information.model.forecastweather.List();
        list.setTemp(new Temp());
        list.setWeather(new ArrayList<Weather>());
        forecastWeatherData.getList().add(list);
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            final JsonToken nextToken = jParser.nextToken(); // move to
            // value
            if ("dt".equals(namefield)) {
                list.setDt(jParser.getLongValue());
            }
            if ("temp".equals(namefield)) {
                if (nextToken == JsonToken.START_OBJECT) {
                    this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield);
                }
            }
            if ("pressure".equals(namefield)) {
                list.setPressure(jParser.getDoubleValue());
            }
            if ("humidity".equals(namefield)) {
                list.setHumidity(jParser.getDoubleValue());
            }
            if ("weather".equals(namefield)) {
                if (nextToken == JsonToken.START_ARRAY) {
                    JsonToken tokenNext = jParser.nextToken();
                    while (tokenNext != JsonToken.END_ARRAY) {
                        if (tokenNext == JsonToken.START_OBJECT) {
                            this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield);
                        }
                        tokenNext = jParser.nextToken();
                    }
                }
            }
            if ("speed".equals(namefield)) {
                list.setSpeed(jParser.getDoubleValue());
            }
            if ("deg".equals(namefield)) {
                list.setDeg(jParser.getDoubleValue());
            }
            if ("clouds".equals(namefield)) {
                list.setClouds(jParser.getDoubleValue());
            }
            if ("rain".equals(namefield)) {
                list.setRain(jParser.getDoubleValue());
            }
        }
    }
    if ("temp".equals(fieldname)) {
        final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList()
                .get((forecastWeatherData.getList().size() - 1));
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("day".equals(namefield)) {
                list.getTemp().setDay(jParser.getDoubleValue());
            }
            if ("min".equals(namefield)) {
                list.getTemp().setMin(jParser.getDoubleValue());
            }
            if ("max".equals(namefield)) {
                list.getTemp().setMax(jParser.getDoubleValue());
            }
            if ("night".equals(namefield)) {
                list.getTemp().setNight(jParser.getDoubleValue());
            }
            if ("eve".equals(namefield)) {
                list.getTemp().setEve(jParser.getDoubleValue());
            }
            if ("morn".equals(namefield)) {
                list.getTemp().setMorn(jParser.getDoubleValue());
            }
        }
    }
    if ("weather".equals(fieldname)) {
        final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList()
                .get((forecastWeatherData.getList().size() - 1));
        final Weather weather = new Weather();
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value

            if ("id".equals(namefield)) {
                weather.setId(jParser.getIntValue());
            }
            if ("main".equals(namefield)) {
                weather.setMain(jParser.getText());
            }
            if ("description".equals(namefield)) {
                weather.setDescription(jParser.getText());
            }
            if ("icon".equals(namefield)) {
                weather.setIcon(jParser.getText());
            }
        }
        list.getWeather().add(weather);
    }
}

From source file:org.springframework.security.oauth2.common.OAuth2AccessTokenJackson2Deserializer.java

@Override
public OAuth2AccessToken deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    String tokenValue = null;//from   w ww .  ja va 2  s . c o m
    String tokenType = null;
    String refreshToken = null;
    Long expiresIn = null;
    Set<String> scope = null;
    Map<String, Object> additionalInformation = new LinkedHashMap<String, Object>();

    // TODO What should occur if a parameter exists twice
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String name = jp.getCurrentName();
        jp.nextToken();
        if (OAuth2AccessToken.ACCESS_TOKEN.equals(name)) {
            tokenValue = jp.getText();
        } else if (OAuth2AccessToken.TOKEN_TYPE.equals(name)) {
            tokenType = jp.getText();
        } else if (OAuth2AccessToken.REFRESH_TOKEN.equals(name)) {
            refreshToken = jp.getText();
        } else if (OAuth2AccessToken.EXPIRES_IN.equals(name)) {
            try {
                expiresIn = jp.getLongValue();
            } catch (JsonParseException e) {
                expiresIn = Long.valueOf(jp.getText());
            }
        } else if (OAuth2AccessToken.SCOPE.equals(name)) {
            String text = jp.getText();
            scope = OAuth2Utils.parseParameterList(text);
        } else {
            additionalInformation.put(name, jp.readValueAs(Object.class));
        }
    }

    // TODO What should occur if a required parameter (tokenValue or tokenType) is missing?

    DefaultOAuth2AccessToken accessToken = new DefaultOAuth2AccessToken(tokenValue);
    accessToken.setTokenType(tokenType);
    if (expiresIn != null) {
        accessToken.setExpiration(new Date(System.currentTimeMillis() + (expiresIn * 1000)));
    }
    if (refreshToken != null) {
        accessToken.setRefreshToken(new DefaultOAuth2RefreshToken(refreshToken));
    }
    accessToken.setScope(scope);
    accessToken.setAdditionalInformation(additionalInformation);

    return accessToken;
}

From source file:org.hyperledger.dropwizard.hocon.HoconDeserializer.java

protected ConfigValue deserializeScalar(JsonParser jp, DeserializationContext ctxt) throws IOException {
    switch (jp.getCurrentToken()) {
    case VALUE_EMBEDDED_OBJECT:
        throw ctxt.mappingException(JsonValue.class);
    case VALUE_FALSE:
        return ConfigValueFactory.fromAnyRef(false);
    case VALUE_TRUE:
        return ConfigValueFactory.fromAnyRef(true);
    case VALUE_NULL:
        return ConfigValueFactory.fromAnyRef(null);
    case VALUE_NUMBER_FLOAT:
    // very cumbersome... but has to be done
    {/*from w w  w. j  a v  a 2 s  .  c  o  m*/
        if (jp.getNumberType() == JsonParser.NumberType.BIG_DECIMAL) {
            return ConfigValueFactory.fromAnyRef(jp.getDecimalValue());
        }
        return ConfigValueFactory.fromAnyRef(jp.getDoubleValue());
    }
    case VALUE_NUMBER_INT: {
        switch (jp.getNumberType()) {
        case LONG:
            return ConfigValueFactory.fromAnyRef(jp.getLongValue());
        case INT:
            return ConfigValueFactory.fromAnyRef(jp.getIntValue());
        default:
            return ConfigValueFactory.fromAnyRef(jp.getBigIntegerValue());
        }
    }
    case VALUE_STRING:
        return ConfigValueFactory.fromAnyRef(jp.getText());
    default: // errors, should never get here
        //        case END_ARRAY:
        //        case END_OBJECT:
        //        case FIELD_NAME:
        //        case NOT_AVAILABLE:
        //        case START_ARRAY:
        //        case START_OBJECT:
        throw ctxt.mappingException(_valueClass);
    }
}

From source file:com.adobe.communities.ugc.migration.importer.ScoresImportServlet.java

private void importFile(final JsonParser jsonParser, final UserPropertiesManager userManager,
        final ResourceResolver resolver) throws ServletException, IOException, RepositoryException {
    Map<String, Boolean> scoreTypes = getScoreTypes(resolver);
    JsonToken token = jsonParser.nextToken();

    while (!token.equals(JsonToken.END_OBJECT)) {
        final String authId = jsonParser.getCurrentName();
        token = jsonParser.nextToken();/*from  w  w w  .  j a va2 s.co m*/
        if (!token.equals(JsonToken.START_OBJECT)) {
            throw new ServletException("Expected to see start object, got " + token);
        }
        final Map<String, Long> scores = new HashMap<String, Long>();
        token = jsonParser.nextToken();
        while (!token.equals(JsonToken.END_OBJECT)) {
            final String scoreName = jsonParser.getCurrentName();
            jsonParser.nextToken();
            final Long scoreValue = jsonParser.getLongValue();
            scores.put(scoreName, scoreValue);
            if (!scoreTypes.containsKey(scoreName)) {
                LOG.warn(
                        "A score of type [{}] was imported for [{}], but that score type hasn't been configured "
                                + "on this server",
                        scoreName, authId);
            }
            token = jsonParser.nextToken();
        }
        updateProfileScore(authId, scores, userManager, resolver);
        token = jsonParser.nextToken();
    }
}