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

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

Introduction

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

Prototype

public abstract JsonToken getCurrentToken();

Source Link

Document

Accessor to find which token parser currently points to, if any; null will be returned if none.

Usage

From source file:com.msopentech.odatajclient.engine.data.metadata.edm.EntitySetDeserializer.java

@Override
protected AbstractEntitySet doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final AbstractEntitySet entitySet = ODataVersion.V3 == client.getWorkingVersion()
            ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.EntitySet()
            : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                entitySet.setName(jp.nextTextValue());
            } else if ("EntityType".equals(jp.getCurrentName())) {
                entitySet.setEntityType(jp.nextTextValue());
            } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet) entitySet)
                        .setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
                jp.nextToken();//  www.  j  a v  a  2 s  . c  o m
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet) entitySet)
                        .getNavigationPropertyBindings()
                        .add(jp.getCodec().readValue(jp, NavigationPropertyBinding.class));
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EntitySet) entitySet)
                        .setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return entitySet;
}

From source file:org.mongojack.internal.DBRefDeserializer.java

@Override
public DBRef deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    // First of all, make sure that we can get a copy of the DBCollection
    if (jp instanceof JacksonDBCollectionProvider) {
        K id = null;/*from w  w w  .  j a  va2  s.  com*/
        String collectionName = null;
        JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.VALUE_NULL) {
            return null;
        }
        if (token == JsonToken.VALUE_EMBEDDED_OBJECT) {
            // Someones already kindly decoded it for us
            Object object = jp.getEmbeddedObject();
            if (object instanceof com.mongodb.DBRef) {
                if (keyDeserializer != null) {
                    id = keyDeserializer.deserialize(jp, ctxt);
                } else {
                    id = (K) ((com.mongodb.DBRef) object).getId();
                }
                collectionName = ((com.mongodb.DBRef) object).getRef();
            } else {
                throw ctxt.instantiationException(DBRef.class,
                        "Don't know what to do with embedded object: " + object);
            }
        } else if (token == JsonToken.START_OBJECT) {
            token = jp.nextValue();
            while (token != JsonToken.END_OBJECT) {
                if (jp.getCurrentName().equals("$id")) {
                    if (keyDeserializer != null) {
                        id = keyDeserializer.deserialize(jp, ctxt);
                    } else {
                        id = (K) jp.getEmbeddedObject();
                    }
                } else if (jp.getCurrentName().equals("$ref")) {
                    collectionName = jp.getText();
                } else {
                    // Ignore the rest
                }
                token = jp.nextValue();
            }
        }
        if (id == null) {
            return null;
        }
        if (collectionName == null) {
            throw ctxt.instantiationException(DBRef.class, "DBRef contains no collection name");
        }

        JacksonDBCollection coll = ((JacksonDBCollectionProvider) jp).getDBCollection();
        JacksonDBCollection<T, K> refColl = coll.getReferenceCollection(collectionName, type, keyType);
        return new FetchableDBRef<T, K>(id, refColl);
    } else {
        throw ctxt.instantiationException(DBRef.class,
                "DBRef can only be deserialised by this deserializer if parser implements "
                        + JacksonDBCollectionProvider.class.getName() + " parser is actually "
                        + jp.getClass().getName());
    }
}

From source file:com.msopentech.odatajclient.engine.data.metadata.edm.EnumTypeDeserializer.java

@Override
protected AbstractEnumType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final AbstractEnumType enumType = ODataVersion.V3 == client.getWorkingVersion()
            ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.EnumType()
            : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.EnumType();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                enumType.setName(jp.nextTextValue());
            } else if ("UnderlyingType".equals(jp.getCurrentName())) {
                enumType.setUnderlyingType(jp.nextTextValue());
            } else if ("IsFlags".equals(jp.getCurrentName())) {
                enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("Member".equals(jp.getCurrentName())) {
                jp.nextToken();/*from w  w  w . ja va 2  s .co  m*/
                if (enumType instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.EnumType) {
                    ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.EnumType) enumType).getMembers()
                            .add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.data.metadata.edm.v3.Member.class));
                } else {
                    ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EnumType) enumType).getMembers()
                            .add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.data.metadata.edm.v4.Member.class));
                }
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.EnumType) enumType)
                        .setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return enumType;
}

From source file:org.fluentd.jvmwatcher.JvmWatcher.java

/**
 * @param parser/*from  www .j  av  a  2 s  . co m*/
 * @throws JsonParseException
 * @throws IOException
 */
private void loadTarget(JsonParser parser) throws JsonParseException, IOException {
    if (parser.nextToken() == JsonToken.START_ARRAY) {
        while (parser.nextToken() != JsonToken.END_ARRAY) {
            if (parser.getCurrentToken() == JsonToken.START_OBJECT) {
                String shortName = null;
                String pattern = null;
                while (parser.nextToken() != JsonToken.END_OBJECT) {
                    if ((parser.getCurrentToken() == JsonToken.FIELD_NAME)
                            && (parser.getText().compareTo("shortname") == 0)) {
                        if (parser.nextToken() == JsonToken.VALUE_STRING) {
                            shortName = parser.getText();
                        }
                    }
                    if ((parser.getCurrentToken() == JsonToken.FIELD_NAME)
                            && (parser.getText().compareTo("pattern") == 0)) {
                        if (parser.nextToken() == JsonToken.VALUE_STRING) {
                            pattern = parser.getText();
                        }
                    }
                }
                // add target pattern
                Pattern regexPattern = Pattern.compile(pattern);
                LocalJvmInfo.addTargetProcessPattern(shortName, regexPattern);
            }
        }
    }
}

From source file:com.sdl.odata.renderer.json.writer.JsonPropertyWriterTest.java

private Map<String, Object> getMapFromJson(String json) throws IOException {
    Map<String, Object> map = new HashMap<>();
    JsonParser jsonParser = new JsonFactory().createParser(json);
    jsonParser.nextToken();/*from   w ww  . ja  v  a  2 s.c o  m*/
    while (jsonParser.nextToken() != null) {
        String key = jsonParser.getText();
        jsonParser.nextToken();
        if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) {
            map.put(key, getJsonArray(jsonParser));
        } else {
            map.put(key, jsonParser.getText());
        }
    }
    return map;
}

From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java

/**
 * Parse the complex values.//from w w  w.  j a v  a2s .  c  o  m
 *
 * @param jsonParser the parser
 * @return list of parsed result objects
 * @throws IOException If unable to read input parser
 */
private List<Object> getCollectionValue(JsonParser jsonParser) throws IOException {
    LOG.info("Start parsing {} array", jsonParser.getCurrentName());
    List<Object> list = new ArrayList<>();
    while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
        if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) {
            Object embedded = getEmbeddedObject(jsonParser);
            list.add(embedded);
        }
        if (!"}".equals(jsonParser.getText())) {
            list.add(jsonParser.getText());
        } else {
            LOG.info("Array is over.");
        }
    }
    return list;
}

From source file:com.msopentech.odatajclient.engine.metadata.edm.ComplexTypeDeserializer.java

@Override
protected AbstractComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final AbstractComplexType complexType = ODataVersion.V3 == client.getWorkingVersion()
            ? new com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType()
            : new com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                complexType.setName(jp.nextTextValue());
            } else if ("Abstract".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType)
                        .setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("BaseType".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType)
                        .setBaseType(jp.nextTextValue());
            } else if ("OpenType".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType)
                        .setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("Property".equals(jp.getCurrentName())) {
                jp.nextToken();/*w  w w. j av  a  2s  .com*/
                if (complexType instanceof com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType) {
                    ((com.msopentech.odatajclient.engine.metadata.edm.v3.ComplexType) complexType)
                            .getProperties().add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.metadata.edm.v3.Property.class));
                } else {
                    ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType)
                            .getProperties().add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.metadata.edm.v4.Property.class));
                }
            } else if ("NavigationProperty".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType)
                        .getNavigationProperties().add(jp.getCodec().readValue(jp,
                                com.msopentech.odatajclient.engine.metadata.edm.v4.NavigationProperty.class));
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.metadata.edm.v4.ComplexType) complexType)
                        .setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return complexType;
}

From source file:org.gvnix.web.json.DataBinderDeserializer.java

/**
 * Deserializes JSON object into Map<String, String> format to use it in a
 * Spring {@link DataBinder}./*  w  w w . j  a v  a 2 s.  co m*/
 * <p/>
 * Iterate over every object's property and delegates on
 * {@link #readField(JsonParser, DeserializationContext, JsonToken, String)}
 * 
 * @param parser JSON parser
 * @param ctxt context
 * @param prefix object DataBinder path
 * @return property values
 * @throws IOException
 * @throws JsonProcessingException
 */
public Map<String, String> readObject(JsonParser parser, DeserializationContext ctxt, String prefix)
        throws IOException, JsonProcessingException {
    JsonToken t = parser.getCurrentToken();

    if (t == JsonToken.START_OBJECT) {
        t = parser.nextToken();
        // Skip it to locate on first object data token
    }

    // Deserialize object properties
    Map<String, String> deserObj = new HashMap<String, String>();
    for (; t != JsonToken.END_OBJECT; t = parser.nextToken()) {
        Map<String, String> field = readField(parser, ctxt, t, prefix);
        deserObj.putAll(field);
    }
    return deserObj;
}

From source file:org.gvnix.web.json.DataBinderDeserializer.java

/**
 * Deserializes JSON array into Map<String, String> format to use it in a
 * Spring {@link DataBinder}./*from  w  w w . ja  v a2  s . co  m*/
 * <p/>
 * Iterate over every array's item to generate a prefix for property names
 * on DataBinder style (
 * <em>{prefix}[{index}].<em>) and delegates on {@link #readField(JsonParser, DeserializationContext, JsonToken, String)}
 * 
 * @param parser JSON parser
 * @param ctxt context
 * @param prefix array dataBinder path
 * @return
 * @throws IOException
 * @throws JsonProcessingException
 */
protected Map<String, String> readArray(JsonParser parser, DeserializationContext ctxt, String prefix)
        throws IOException, JsonProcessingException {
    JsonToken t = parser.getCurrentToken();

    if (t == JsonToken.START_ARRAY) {
        t = parser.nextToken();
        // Skip it to locate on first array data token
    }

    // Deserialize array properties
    int i = 0;
    Map<String, String> deserObj = new HashMap<String, String>();
    for (; t != JsonToken.END_ARRAY; t = parser.nextToken()) {
        // Property name must include prefix this way:
        // degrees[0].description
        Map<String, String> field = readField(parser, ctxt, t,
                prefix.concat("[").concat(Integer.toString(i++)).concat("]."));
        deserObj.putAll(field);
    }
    return deserObj;
}

From source file:com.msopentech.odatajclient.engine.data.metadata.edm.ComplexTypeDeserializer.java

@Override
protected AbstractComplexType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    final AbstractComplexType complexType = ODataVersion.V3 == client.getWorkingVersion()
            ? new com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType()
            : new com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                complexType.setName(jp.nextTextValue());
            } else if ("Abstract".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType)
                        .setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("BaseType".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType)
                        .setBaseType(jp.nextTextValue());
            } else if ("OpenType".equals(jp.getCurrentName())) {
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType)
                        .setOpenType(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("Property".equals(jp.getCurrentName())) {
                jp.nextToken();/*from   w  w  w  .j a v a 2  s . co m*/
                if (complexType instanceof com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType) {
                    ((com.msopentech.odatajclient.engine.data.metadata.edm.v3.ComplexType) complexType)
                            .getProperties().add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.data.metadata.edm.v3.Property.class));
                } else {
                    ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType)
                            .getProperties().add(jp.getCodec().readValue(jp,
                                    com.msopentech.odatajclient.engine.data.metadata.edm.v4.Property.class));
                }
            } else if ("NavigationProperty".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType)
                        .getNavigationProperties().add(jp.getCodec().readValue(jp,
                                com.msopentech.odatajclient.engine.data.metadata.edm.v4.NavigationProperty.class));
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                ((com.msopentech.odatajclient.engine.data.metadata.edm.v4.ComplexType) complexType)
                        .setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return complexType;
}