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

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

Introduction

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

Prototype

public abstract String getCurrentName() throws IOException, JsonParseException;

Source Link

Document

Method that can be called to get the name associated with the current token: for JsonToken#FIELD_NAME s it will be the same as what #getText returns; for field values it will be preceding field name; and for others (array values, root-level values) null.

Usage

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

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

    final TypeAnnotation typeAnnot = new TypeAnnotation();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Term".equals(jp.getCurrentName())) {
                typeAnnot.setTerm(jp.nextTextValue());
            } else if ("Qualifier".equals(jp.getCurrentName())) {
                typeAnnot.setQualifier(jp.nextTextValue());
            } else if ("Documentation".equals(jp.getCurrentName())) {
                jp.nextToken();//from   w  w w. ja v  a 2  s.c  o  m
                typeAnnot.setDocumentation(jp.getCodec().readValue(jp, Documentation.class));
            } else if ("PropertyValue".equals(jp.getCurrentName())) {
                jp.nextToken();
                typeAnnot.getPropertyValues().add(jp.getCodec().readValue(jp, PropertyValue.class));
            }
        }
    }

    return typeAnnot;
}

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

/**
 * Process all things that do not contain special ODataTags.
 *
 * @param jsonParser the parser//from  w ww. ja v  a  2 s.  c o  m
 * @throws ODataUnmarshallingException If unable to unmarshall
 * @throws IOException If unable to read input parser
 */
private void process(JsonParser jsonParser) throws IOException, ODataUnmarshallingException {
    if (jsonParser.getCurrentToken() == JsonToken.FIELD_NAME) {
        LOG.info("Starting to parse {} token", jsonParser.getCurrentName());
        String key = jsonParser.getCurrentName();
        jsonParser.nextToken();

        JsonToken token = jsonParser.getCurrentToken();
        if (token == JsonToken.START_ARRAY) {
            if (JsonConstants.VALUE.equals(key)) {
                throw new ODataUnmarshallingException("Feed is not supported");
            }
            values.put(key, getCollectionValue(jsonParser));
        } else if (token == JsonToken.START_OBJECT) {
            values.put(key, getEmbeddedObject(jsonParser));
        } else {
            if (token.equals(JsonToken.VALUE_NULL)) {
                values.put(key, null);
            } else {
                values.put(key, jsonParser.getText());
            }
        }
    }
}

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

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

    final Function function = new Function();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                function.setName(jp.nextTextValue());
            } else if ("IsBound".equals(jp.getCurrentName())) {
                function.setBound(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("IsComposable".equals(jp.getCurrentName())) {
                function.setComposable(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("EntitySetPath".equals(jp.getCurrentName())) {
                function.setEntitySetPath(jp.nextTextValue());
            } else if ("Parameter".equals(jp.getCurrentName())) {
                jp.nextToken();//from   w ww  .  ja  v a 2 s  .  c o  m
                function.getParameters().add(jp.getCodec().readValue(jp, Parameter.class));
            } else if ("ReturnType".equals(jp.getCurrentName())) {
                function.setReturnType(parseReturnType(jp, "Function"));
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                function.setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return function;
}

From source file:no.ssb.jsonstat.v2.deser.DimensionDeserializer.java

private void parseCategory(Dimension.Builder dimension, JsonParser p, DeserializationContext ctxt)
        throws IOException {
    Map<String, String> index = null;
    Map<String, String> label = null;
    while (p.nextValue() != JsonToken.END_OBJECT) {
        switch (p.getCurrentName()) {
        case "index":
            index = parseIndex(p, ctxt);
            break;
        case "label":
            label = parseCategoryLabel(p, ctxt);
            break;
        case "unit":
            // TODO: Support units.
            parseUnit(p, ctxt);/*  w ww. j  av  a  2 s  .c om*/
            break;
        default:
            ctxt.handleUnknownProperty(p, this, Dimension.Builder.class, p.getCurrentName());
            break;
        }
    }
    checkArgument(!(index == null && label == null), "either label or index is required");

    // Once we have everything, we can build the dimension.

    if (index == null) {
        checkArgument(label.size() >= 1,
                "category label must contain a least one element if " + "no index is provided");
        dimension.withIndexedLabels(ImmutableMap.copyOf(label));
        return;
    }
    if (label == null) {
        dimension.withCategories(ImmutableSet.copyOf(index.keySet()));
        return;
    }

    // TODO: Maybe the checks should reside inside the builder?
    checkArgument(label.size() == index.size(), "label and index's sizes were inconsistent");

    ImmutableMap<String, String> withIndex = index.keySet().stream()
            .collect(toImmutableMap(Function.identity(), label::get));
    dimension.withIndexedLabels(withIndex);

}

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

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

    final DataServices dataServices = new DataServices();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("DataServiceVersion".equals(jp.getCurrentName())) {
                dataServices.setDataServiceVersion(jp.nextTextValue());
            } else if ("MaxDataServiceVersion".equals(jp.getCurrentName())) {
                dataServices.setMaxDataServiceVersion(jp.nextTextValue());
            } else if ("Schema".equals(jp.getCurrentName())) {
                jp.nextToken();//from   w  w  w. java  2  s.c om
                dataServices.getSchemas().add(jp.getCodec().readValue(jp, Schema.class));
            }
        }
    }

    return dataServices;
}

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

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

    final Term term = new Term();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Name".equals(jp.getCurrentName())) {
                term.setName(jp.nextTextValue());
            } else if ("Type".equals(jp.getCurrentName())) {
                term.setType(jp.nextTextValue());
            } else if ("BaseTerm".equals(jp.getCurrentName())) {
                term.setBaseTerm(jp.nextTextValue());
            } else if ("DefaultValue".equals(jp.getCurrentName())) {
                term.setDefaultValue(jp.nextTextValue());
            } else if ("Nullable".equals(jp.getCurrentName())) {
                term.setNullable(BooleanUtils.toBoolean(jp.nextTextValue()));
            } else if ("MaxLength".equals(jp.getCurrentName())) {
                term.setMaxLength(jp.nextTextValue());
            } else if ("Precision".equals(jp.getCurrentName())) {
                term.setPrecision(BigInteger.valueOf(jp.nextLongValue(0L)));
            } else if ("Scale".equals(jp.getCurrentName())) {
                term.setScale(BigInteger.valueOf(jp.nextLongValue(0L)));
            } else if ("SRID".equals(jp.getCurrentName())) {
                term.setSrid(jp.nextTextValue());
            } else if ("AppliesTo".equals(jp.getCurrentName())) {
                for (String split : StringUtils.split(jp.nextTextValue())) {
                    term.getAppliesTo().add(CSDLElement.valueOf(split));
                }/*from w  w w.j  av a 2s  .com*/
            } else if ("Annotation".equals(jp.getCurrentName())) {
                jp.nextToken();
                term.setAnnotation(jp.getCodec().readValue(jp, Annotation.class));
            }
        }
    }

    return term;
}

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

private void getCurrentWeatherData(final Current currentWeatherData, final JsonParser jParser)
        throws JsonParseException, IOException {
    if (jParser.nextToken() == JsonToken.START_OBJECT) {

        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String fieldname = jParser.getCurrentName();
            final JsonToken nextToken = jParser.nextToken();
            if (nextToken == JsonToken.START_OBJECT) {
                this.getCurrentWeatherDataObjects(currentWeatherData, jParser, fieldname);
            }//  ww w. j  ava  2  s.  co m
            if (nextToken == JsonToken.START_ARRAY) {
                JsonToken tokenNext = jParser.nextToken();
                while (tokenNext != JsonToken.END_ARRAY) {
                    if (tokenNext == JsonToken.START_OBJECT) {
                        this.getCurrentWeatherDataObjects(currentWeatherData, jParser, fieldname);
                    }
                    tokenNext = jParser.nextToken();
                }
            }
            if ((nextToken == JsonToken.VALUE_NUMBER_INT) || (nextToken == JsonToken.VALUE_STRING)) {
                this.getCurrentWeatherDataObjects(currentWeatherData, jParser, fieldname);
            }
        }
    }
}

From source file:org.emfjson.jackson.streaming.StreamReader.java

protected ReferenceEntry createReferenceEntry(JsonParser parser, EReference reference, EObject owner)
        throws IOException {

    String id = null;//  w ww. ja  v a  2  s .c om

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        String field = parser.getCurrentName();
        if (field.equalsIgnoreCase(Constants.EJS_REF_KEYWORD)) {
            id = parser.nextTextValue();
        }
    }

    return new ReferenceEntry(owner, reference, id);
}

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

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

    final ReferentialConstraintRole refConstRole = new ReferentialConstraintRole();

    for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) {
        final JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.FIELD_NAME) {
            if ("Role".equals(jp.getCurrentName())) {
                refConstRole.setRole(jp.nextTextValue());
            } else if ("PropertyRef".equals(jp.getCurrentName())) {
                jp.nextToken();/*ww  w  .  j a va 2s .com*/
                refConstRole.getPropertyRefs().add(jp.getCodec().readValue(jp, PropertyRef.class));
            }
        }
    }

    return refConstRole;
}

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

private void getForecastWeatherData(final Forecast forecastWeatherData, final JsonParser jParser)
        throws JsonParseException, IOException {
    if (jParser.nextToken() == JsonToken.START_OBJECT) {

        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String fieldname = jParser.getCurrentName();
            final JsonToken nextToken = jParser.nextToken();
            if (nextToken == JsonToken.START_OBJECT) {
                this.getForecastWeatherDataObjects(forecastWeatherData, jParser, fieldname);
            }/*from  w  w  w .j  a  v  a2 s  . c  om*/
            if (nextToken == JsonToken.START_ARRAY) {
                JsonToken tokenNext = jParser.nextToken();
                while (tokenNext != JsonToken.END_ARRAY) {
                    if (tokenNext == JsonToken.START_OBJECT) {
                        this.getForecastWeatherDataObjects(forecastWeatherData, jParser, fieldname);
                    }
                    tokenNext = jParser.nextToken();
                }
            }
            if ((nextToken == JsonToken.VALUE_NUMBER_INT) || (nextToken == JsonToken.VALUE_STRING)) {
                this.getForecastWeatherDataObjects(forecastWeatherData, jParser, fieldname);
            }
        }
    }
}