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

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

Introduction

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

Prototype

@Override
public abstract void close() throws IOException;

Source Link

Document

Closes the parser so that no further iteration or data access can be made; will also close the underlying input source if parser either owns the input source, or feature Feature#AUTO_CLOSE_SOURCE is enabled.

Usage

From source file:net.floodlightcontroller.loadbalancer.VipsResource.java

protected LBVip jsonToVip(String json) throws IOException {

    if (json == null)
        return null;

    MappingJsonFactory f = new MappingJsonFactory();
    JsonParser jp;
    LBVip vip = new LBVip();

    try {//w  w  w .j a va 2s . c om
        jp = f.createJsonParser(json);
    } catch (JsonParseException e) {
        throw new IOException(e);
    }

    jp.nextToken();
    if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
        throw new IOException("Expected START_OBJECT");
    }

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        if (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
            throw new IOException("Expected FIELD_NAME");
        }

        String n = jp.getCurrentName();
        jp.nextToken();
        if (jp.getText().equals(""))
            continue;

        if (n.equals("id")) {
            vip.id = jp.getText();
            continue;
        }
        if (n.equals("tenant_id")) {
            vip.tenantId = jp.getText();
            continue;
        }
        if (n.equals("name")) {
            vip.name = jp.getText();
            continue;
        }
        if (n.equals("network_id")) {
            vip.netId = jp.getText();
            continue;
        }
        if (n.equals("protocol")) {
            String tmp = jp.getText();
            if (tmp.equalsIgnoreCase("TCP")) {
                vip.protocol = IPv4.PROTOCOL_TCP;
            } else if (tmp.equalsIgnoreCase("UDP")) {
                vip.protocol = IPv4.PROTOCOL_UDP;
            } else if (tmp.equalsIgnoreCase("ICMP")) {
                vip.protocol = IPv4.PROTOCOL_ICMP;
            }
            continue;
        }
        if (n.equals("address")) {
            vip.address = IPv4.toIPv4Address(jp.getText());
            continue;
        }
        if (n.equals("port")) {
            vip.port = Short.parseShort(jp.getText());
            continue;
        }
        if (n.equals("pool_id")) {
            vip.pools.add(jp.getText());
            continue;
        }

        log.warn("Unrecognized field {} in " + "parsing Vips", jp.getText());
    }
    jp.close();

    return vip;
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

/**
 * Parse the specified input stream and return a user.
 *
 * @param inputStream input stream/*from  w w  w  . ja v a2  s .  co m*/
 * @return the specified input stream parsed into a user
 */
@Override
public User parseUser(final InputStream inputStream) {
    checkNotNull(inputStream);
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String id = null;
        String profileId = null;
        boolean genotyped = false;
        List<Profile> profiles = new ArrayList<Profile>();

        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();
            if ("id".equals(field)) {
                id = parser.getText();
            } else if ("profiles".equals(field)) {
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        String profileField = parser.getCurrentName();
                        parser.nextToken();
                        if ("id".equals(profileField)) {
                            profileId = parser.getText();
                        } else if ("genotyped".equals(profileField)) {
                            genotyped = parser.getBooleanValue();
                        }
                    }
                    profiles.add(new Profile(profileId, genotyped));
                }
            }
        }
        return new User(id, profiles);
    } catch (IOException e) {
        logger.warn("could not parse user", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}

From source file:com.microsoft.windowsazure.storage.table.TableParser.java

/**
 * Reserved for internal use. Parses the operation response as a collection of entities. Reads entity data from the
 * specified input stream using the specified class type and optionally projects each entity result with the
 * specified resolver into an {@link ODataPayload} containing a collection of {@link TableResult} objects.
 * //from   w ww.j a  v a 2 s . c  om
 * @param inStream
 *            The <code>InputStream</code> to read the data to parse from.
 * @param clazzType
 *            The class type <code>T</code> implementing {@link TableEntity} for the entities returned. Set to
 *            <code>null</code> to ignore the returned entities and copy only response properties into the
 *            {@link TableResult} objects.
 * @param resolver
 *            An {@link EntityResolver} instance to project the entities into instances of type <code>R</code>. Set
 *            to <code>null</code> to return the entities as instances of the class type <code>T</code>.
 * @param opContext
 *            An {@link OperationContext} object used to track the execution of the operation.
 * @return
 *         An {@link ODataPayload} containing a collection of {@link TableResult} objects with the parsed operation
 *         response.
 * @throws ParseException
 *             if an error occurs while parsing the stream.
 * @throws InstantiationException
 *             if an error occurs while constructing the result.
 * @throws IllegalAccessException
 *             if an error occurs in reflection while parsing the result.
 * @throws StorageException
 *             if a storage service error occurs.
 * @throws IOException
 *             if an error occurs while accessing the stream.
 * @throws JsonParseException
 *             if an error occurs while parsing the stream.
 */
@SuppressWarnings("unchecked")
private static <T extends TableEntity, R> ODataPayload<?> parseJsonQueryResponse(final InputStream inStream,
        final Class<T> clazzType, final EntityResolver<R> resolver, final TableRequestOptions options,
        final OperationContext opContext) throws ParseException, InstantiationException, IllegalAccessException,
        StorageException, JsonParseException, IOException {
    ODataPayload<T> corePayload = null;
    ODataPayload<R> resolvedPayload = null;
    ODataPayload<?> commonPayload = null;

    JsonParser parser = createJsonParserFromStream(inStream);

    try {

        if (resolver != null) {
            resolvedPayload = new ODataPayload<R>();
            commonPayload = resolvedPayload;
        } else {
            corePayload = new ODataPayload<T>();
            commonPayload = corePayload;
        }

        if (!parser.hasCurrentToken()) {
            parser.nextToken();
        }

        ODataUtilities.assertIsStartObjectJsonToken(parser);

        // move into data  
        parser.nextToken();

        // if there is a clazz type and if JsonNoMetadata, create a classProperties dictionary to use for type inference once 
        // instead of querying the cache many times
        HashMap<String, PropertyPair> classProperties = null;
        if (options.getTablePayloadFormat() == TablePayloadFormat.JsonNoMetadata && clazzType != null) {
            classProperties = PropertyPair.generatePropertyPairs(clazzType);
        }

        while (parser.getCurrentToken() != null) {
            if (parser.getCurrentToken() == JsonToken.FIELD_NAME
                    && parser.getCurrentName().equals(ODataConstants.VALUE)) {
                // move to start of array
                parser.nextToken();

                ODataUtilities.assertIsStartArrayJsonToken(parser);

                // go to properties
                parser.nextToken();

                while (parser.getCurrentToken() == JsonToken.START_OBJECT) {
                    final TableResult res = parseJsonEntity(parser, clazzType, classProperties, resolver,
                            options, opContext);
                    if (corePayload != null) {
                        corePayload.tableResults.add(res);
                    }

                    if (resolver != null) {
                        resolvedPayload.results.add((R) res.getResult());
                    } else {
                        corePayload.results.add((T) res.getResult());
                    }

                    parser.nextToken();
                }

                ODataUtilities.assertIsEndArrayJsonToken(parser);
            }

            parser.nextToken();
        }
    } finally {
        parser.close();
    }

    return commonPayload;
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

@Override
public Ancestry parseAncestry(final InputStream inputStream) {
    checkNotNull(inputStream);/*  ww w  .  jav a  2  s.  c  om*/
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String id = null;
        String label = null;
        double proportion = 0.0d;
        double unassigned = 0.0d;
        List<Ancestry> subPopulations = new ArrayList<Ancestry>();
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();

            if ("id".equals(field)) {
                id = parser.getText();
            } else if ("ancestry".equals(field)) {
                while (parser.nextToken() != JsonToken.END_OBJECT) {
                    String ancestryField = parser.getCurrentName();
                    parser.nextToken();

                    if ("label".equals(ancestryField)) {
                        label = parser.getText();
                    } else if ("proportion".equals(ancestryField)) {
                        proportion = Double.parseDouble(parser.getText());
                    } else if ("unassigned".equals(ancestryField)) {
                        unassigned = Double.parseDouble(parser.getText());
                    } else if ("sub_populations".equals(ancestryField)) {
                        subPopulations = parseSubPopulation(id, subPopulations, parser);
                    }
                }
            }
        }
        return new Ancestry(id, label, proportion, unassigned, subPopulations);
    } catch (IOException e) {
        logger.warn("could not parse ancestry", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

@Override
public List<Carrier> parseCarriers(final InputStream inputStream) {
    checkNotNull(inputStream);//  w w  w.j a  v  a 2  s  . c o  m
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String id = null;
        String reportId = null;
        String description = null;
        int mutations = 0;
        List<Carrier> carriers = new ArrayList<Carrier>();
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();

            if ("id".equals(field)) {
                id = parser.getText();
            } else if ("carriers".equals(field)) {
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        String carrierField = parser.getCurrentName();
                        parser.nextToken();

                        if ("report_id".equals(carrierField)) {
                            reportId = parser.getText();
                        } else if ("description".equals(carrierField)) {
                            description = parser.getText();
                        } else if ("mutations".equals(carrierField)) {
                            mutations = Integer.parseInt(parser.getText());
                        }
                    }
                    carriers.add(new Carrier(id, reportId, description, mutations));
                    reportId = null;
                    description = null;
                    mutations = 0;
                }
            }
        }
        return carriers;
    } catch (IOException e) {
        logger.warn("could not parse carriers", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}

From source file:com.cedarsoft.serialization.test.performance.XmlParserPerformance.java

private void benchParse(@Nonnull JsonFactory factory, @Nonnull byte[] contentSample)
        throws XMLStreamException, IOException {
    for (int i = 0; i < BIG; i++) {
        JsonParser parser = factory.createParser(contentSample);

        assertEquals(JsonToken.START_OBJECT, parser.nextToken());

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("id", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
        String id = parser.getText();
        assertEquals("Canon Raw", id);

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("dependent", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_FALSE, parser.nextToken());
        boolean dependent = parser.getBooleanValue();
        assertFalse(dependent);/* www . jav a2  s. c om*/

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("extension", parser.getCurrentName());
        assertEquals(JsonToken.START_OBJECT, parser.nextToken());

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("extension", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
        String extension = parser.getText();
        assertEquals("cr2", extension);

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("default", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_TRUE, parser.nextToken());
        boolean isDefault = parser.getBooleanValue();
        assertTrue(isDefault);

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("delimiter", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
        String delimiter = parser.getText();
        assertEquals(".", delimiter);

        assertEquals(JsonToken.END_OBJECT, parser.nextToken());
        assertEquals(JsonToken.END_OBJECT, parser.nextToken());
        assertNull(parser.nextToken());

        parser.close();

        FileType type = new FileType(id, new Extension(delimiter, extension, isDefault), dependent);
        assertNotNull(type);
    }
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

@Override
public List<DrugResponse> parseDrugResponses(final InputStream inputStream) {
    checkNotNull(inputStream);// w ww.  ja  v a 2 s  .  co m
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String id = null;
        String reportId = null;
        String description = null;
        String status = null;
        List<DrugResponse> drugResponses = new ArrayList<DrugResponse>();
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();

            if ("id".equals(field)) {
                id = parser.getText();
            } else if ("drug_responses".equals(field)) {
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        String drugResponseField = parser.getCurrentName();
                        parser.nextToken();

                        if ("report_id".equals(drugResponseField)) {
                            reportId = parser.getText();
                        } else if ("description".equals(drugResponseField)) {
                            description = parser.getText();
                        } else if ("status".equals(drugResponseField)) {
                            status = parser.getText();
                        }
                    }
                    drugResponses.add(new DrugResponse(id, reportId, description, status));
                    reportId = null;
                    description = null;
                    status = null;
                }
            }
        }
        return drugResponses;
    } catch (IOException e) {
        logger.warn("could not parse drug responses", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}

From source file:com.cedarsoft.serialization.test.performance.XmlParserPerformance.java

private void benchParse(@Nonnull JsonFactory factory, @Nonnull String contentSample)
        throws XMLStreamException, IOException {
    for (int i = 0; i < BIG; i++) {
        JsonParser parser = factory.createParser(new StringReader(contentSample));

        assertEquals(JsonToken.START_OBJECT, parser.nextToken());

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("dependent", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_FALSE, parser.nextToken());
        boolean dependent = parser.getBooleanValue();
        assertFalse(dependent);//  ww  w  . j a  va2  s. c o  m

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("id", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
        String id = parser.getText();
        assertEquals("Canon Raw", id);

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("extension", parser.getCurrentName());
        assertEquals(JsonToken.START_OBJECT, parser.nextToken());

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("isDefault", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_TRUE, parser.nextToken());
        boolean isDefault = parser.getBooleanValue();
        assertTrue(isDefault);

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("delimiter", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
        String delimiter = parser.getText();
        assertEquals(".", delimiter);

        assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
        assertEquals("extension", parser.getCurrentName());
        assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
        String extension = parser.getText();
        assertEquals("cr2", extension);

        assertEquals(JsonToken.END_OBJECT, parser.nextToken());
        assertEquals(JsonToken.END_OBJECT, parser.nextToken());
        assertNull(parser.nextToken());

        parser.close();

        FileType type = new FileType(id, new Extension(delimiter, extension, isDefault), dependent);
        assertNotNull(type);
    }
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

@Override
public List<Risk> parseRisks(final InputStream inputStream) {
    checkNotNull(inputStream);//  w  w  w. jav  a  2 s.com
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String id = null;
        String reportId = null;
        String description = null;
        double risk = 0.0d;
        double populationRisk = 0.0d;
        List<Risk> risks = new ArrayList<Risk>();
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();

            if ("id".equals(field)) {
                id = parser.getText();
            } else if ("risks".equals(field)) {
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        String riskField = parser.getCurrentName();
                        parser.nextToken();

                        if ("report_id".equals(riskField)) {
                            reportId = parser.getText();
                        } else if ("description".equals(riskField)) {
                            description = parser.getText();
                        } else if ("risk".equals(riskField)) {
                            risk = Double.parseDouble(parser.getText());
                        } else if ("population_risk".equals(riskField)) {
                            populationRisk = Double.parseDouble(parser.getText());
                        }
                    }
                    risks.add(new Risk(id, reportId, description, risk, populationRisk));
                    reportId = null;
                    description = null;
                    risk = 0.0d;
                    populationRisk = 0.0d;
                }
            }
        }
        return risks;
    } catch (IOException e) {
        logger.warn("could not parse risks", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

@Override
public UserName parseNames(final InputStream inputStream) {
    checkNotNull(inputStream);//from w w  w .  j  av  a  2 s . c o m
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String id = null;
        String firstName = null;
        String lastName = null;
        String profileId = null;
        String profileFirstName = null;
        String profileLastName = null;
        List<ProfileName> profileNames = new ArrayList<ProfileName>();

        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();
            if ("id".equals(field)) {
                id = parser.getText();
            } else if ("first_name".equals(field)) {
                firstName = parser.getText();
            } else if ("last_name".equals(field)) {
                lastName = parser.getText();
            } else if ("profiles".equals(field)) {
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        String profileNameField = parser.getCurrentName();
                        parser.nextToken();
                        if ("id".equals(profileNameField)) {
                            profileId = parser.getText();
                        } else if ("first_name".equals(profileNameField)) {
                            profileFirstName = parser.getText();
                        } else if ("last_name".equals(profileNameField)) {
                            profileLastName = parser.getText();
                        }
                    }
                    profileNames.add(new ProfileName(profileId, profileFirstName, profileLastName));
                }
            }
        }
        return new UserName(id, firstName, lastName, profileNames);
    } catch (IOException e) {
        logger.warn("could not parse names", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}