Example usage for com.fasterxml.jackson.core JsonGenerator writeStartObject

List of usage examples for com.fasterxml.jackson.core JsonGenerator writeStartObject

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator writeStartObject.

Prototype

public abstract void writeStartObject() throws IOException, JsonGenerationException;

Source Link

Document

Method for writing starting marker of a JSON Object value (character '{'; plus possible white space decoration if pretty-printing is enabled).

Usage

From source file:gr.abiss.calipso.uischema.serializer.UiSchemaSerializer.java

@Override
public void serialize(UiSchema schema, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    try {// w  w w  . j av  a2 s  .  c  o m
        Class domainClass = schema.getDomainClass();

        if (null == domainClass) {
            throw new RuntimeException("formSchema has no domain class set");
        } else {
            // start json
            jgen.writeStartObject();

            // write superclass hint
            ModelResource superResource = (ModelResource) domainClass.getSuperclass()
                    .getAnnotation(ModelResource.class);
            if (superResource != null) {
                jgen.writeFieldName("superPathFragment");
                jgen.writeString(superResource.path());
            }

            // write pathFragment
            ModelResource modelResource = (ModelResource) domainClass.getAnnotation(ModelResource.class);
            jgen.writeFieldName("pathFragment");
            jgen.writeString(modelResource.path());

            // write simple class name
            jgen.writeFieldName("simpleClassName");
            jgen.writeString(domainClass.getSimpleName());

            // start fields
            jgen.writeFieldName("fields");
            jgen.writeStartObject();

            PropertyDescriptor[] descriptors = new PropertyUtilsBean().getPropertyDescriptors(domainClass);

            for (int i = 0; i < descriptors.length; i++) {

                PropertyDescriptor descriptor = descriptors[i];
                String name = descriptor.getName();
                if (!ignoredFieldNames.contains(name)) {
                    String fieldValue = this.getDataType(domainClass, descriptor, name);
                    if (StringUtils.isNotBlank(fieldValue)) {
                        jgen.writeFieldName(name);
                        jgen.writeStartObject();
                        jgen.writeFieldName("fieldType");
                        jgen.writeString(fieldValue);
                        jgen.writeEndObject();
                    }
                }

            }
            // end fields
            jgen.writeEndObject();
            // end json
            jgen.writeEndObject();

        }

    } catch (Exception e) {
        new RuntimeException("Failed serializing form schema", e);
    }
}

From source file:com.github.hateoas.forms.spring.halforms.ValueSuggestSerializer.java

@Override
public void serialize(final ValueSuggest<?> value, final JsonGenerator gen, final SerializerProvider provider)
        throws IOException, JsonProcessingException {

    Iterator<?> iterator = value.getValues().iterator();
    if (!iterator.hasNext()) {
        return;//from   w ww . ja v  a 2 s .c o  m
    }

    if (value.getType() == SuggestType.INTERNAL) {
        directSerializer.serialize(value, gen, provider);
    } else {
        gen.writeStartObject();

        Map<String, Object> curiedMap = mapper.map(value.getValues());

        if (value.getType() == SuggestType.EXTERNAL) {
            String embeddedRel;
            if (!curiedMap.isEmpty()) {
                embeddedRel = curiedMap.keySet().iterator().next();
            } else {
                embeddedRel = relProvider.getCollectionResourceRelFor(iterator.next().getClass());
            }
            gen.writeStringField("embedded", embeddedRel);
        } else {
            gen.writeStringField("href", (String) value.getValues().iterator().next());
        }

        if (value.getTextField() != null) {
            gen.writeStringField("prompt-field", value.getTextField());
        }
        if (value.getValueField() != null) {
            gen.writeStringField("value-field", value.getValueField());
        }
        gen.writeEndObject();
    }

}

From source file:com.baidubce.services.bmr.BmrClient.java

/**
 * Add steps to a BMR cluster./* w ww . j a  v  a  2s .c  om*/
 *
 * @param request containing the ID of target BMR cluster and several steps to be added.
 * @return The response containing a list of IDs of newly added steps.
 */
public AddStepsResponse addSteps(AddStepsRequest request) {
    checkNotNull(request, "request should not be null.");
    checkNotNull(request.getSteps(), "The parameter steps should not be null.");
    checkStringNotEmpty(request.getClusterId(), "The parameter clusterId should not be null or empty string.");

    StringWriter writer = new StringWriter();
    List<StepConfig> steps = request.getSteps();
    try {
        JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeArrayFieldStart("steps");
        for (StepConfig step : steps) {
            jsonGenerator.writeStartObject();
            if (step.getName() != null) {
                jsonGenerator.writeStringField("name", step.getName());
            }
            jsonGenerator.writeStringField("type", step.getType());
            jsonGenerator.writeStringField("actionOnFailure", step.getActionOnFailure());
            jsonGenerator.writeObjectFieldStart("properties");
            for (String propertyKey : step.getProperties().keySet()) {
                jsonGenerator.writeObjectField(propertyKey, step.getProperties().get(propertyKey));
            }
            jsonGenerator.writeEndObject();
            jsonGenerator.writeEndObject();
        }
        jsonGenerator.writeEndArray();
        jsonGenerator.writeEndObject();
        jsonGenerator.close();
    } catch (IOException e) {
        throw new BceClientException("Fail to generate json", e);
    }

    byte[] json = null;
    try {
        json = writer.toString().getBytes(DEFAULT_ENCODING);
    } catch (UnsupportedEncodingException e) {
        throw new BceClientException("Fail to get UTF-8 bytes", e);
    }

    InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, CLUSTER,
            request.getClusterId(), STEP);
    internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length));
    internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json");

    internalRequest.setContent(RestartableInputStream.wrap(json));

    if (request.getClientToken() != null) {
        internalRequest.addParameter("clientToken", request.getClientToken());
    }

    return this.invokeHttpClient(internalRequest, AddStepsResponse.class);
}

From source file:com.basho.riak.client.query.MapReduce.java

/**
 * @param jg//from ww w . j a v  a2 s .  c o  m
 */
private void writeMapReducePhases(JsonGenerator jg) throws IOException {
    int cnt = 0;
    synchronized (phases) {
        final int lastPhase = phases.size();
        for (MapReducePhase phase : phases) {
            cnt++;
            jg.writeStartObject();
            jg.writeFieldName(phase.getType().toString());
            jg.writeStartObject();

            switch (phase.getType()) {
            case MAP:
            case REDUCE:
                MapPhase mapPhase = (MapPhase) phase;
                FunctionToJson.newWriter(mapPhase.getPhaseFunction(), jg).write();
                if (mapPhase.getArg() != null) {
                    jg.writeObjectField("arg", mapPhase.getArg());
                }
                break;
            case LINK:
                jg.writeStringField("bucket", ((LinkPhase) phase).getBucket());
                jg.writeStringField("tag", ((LinkPhase) phase).getTag());
                break;
            }

            //the final phase results should be returned, unless specifically set otherwise
            if (cnt == lastPhase) {
                jg.writeBooleanField("keep", isKeepResult(true, phase.isKeep()));
            } else {
                jg.writeBooleanField("keep", isKeepResult(false, phase.isKeep()));
            }

            jg.writeEndObject();
            jg.writeEndObject();
        }
    }
}

From source file:org.h2gis.drivers.geojson.GeoJsonWriteDriver.java

/**
 * Write a GeoJSON feature./*from  www .  j a va  2  s .c o m*/
 *
 * Features in GeoJSON contain a geometry object and additional properties,
 * and a feature collection represents a list of features.
 *
 * A complete GeoJSON data structure is always an object (in JSON terms). In
 * GeoJSON, an object consists of a collection of name/value pairs -- also
 * called members. For each member, the name is always a string. Member
 * values are either a string, number, object, array or one of the literals:
 * true, false, and null. An array consists of elements where each element
 * is a value as described above.
 *
 * Syntax:
 *
 * { "type": "Feature", "geometry":{"type": "Point", "coordinates": [102.0,
 * 0.5]}, "properties": {"prop0": "value0"} }
 *
 * @param writer
 * @param resultSetMetaData
 * @param geoFieldIndex
 */
private void writeFeature(JsonGenerator jsonGenerator, ResultSet rs, int geoFieldIndex)
        throws IOException, SQLException {
    // feature header
    jsonGenerator.writeStartObject();
    jsonGenerator.writeStringField("type", "Feature");
    //Write the first geometry
    writeGeometry((Geometry) rs.getObject(geoFieldIndex), jsonGenerator);
    //Write the properties
    writeProperties(jsonGenerator, rs);
    // feature footer
    jsonGenerator.writeEndObject();
}

From source file:org.lambdamatic.internal.elasticsearch.codec.BooleanQuerySerializer.java

@Override
public void serialize(final BooleanQuery booleanQuery, final JsonGenerator generator,
        final SerializerProvider serializers) throws IOException, JsonProcessingException {
    // if the booleanQuery does not contain other boolean queries in its elements, just write the
    // elements as an array
    if (!containsBooleanQueries(booleanQuery)) {
        generator.writeStartArray();/*  w w w. ja  va 2  s . c o  m*/
        for (Query query : booleanQuery.getQueries()) {
            generator.writeObject(query);
        }
        generator.writeEndArray();
    } else {
        // otherwise...
        generator.writeStartObject();
        generator.writeObjectFieldStart("bool");
        switch (booleanQuery.getType()) {
        case AND:
            // TODO: also support 'must_not' if the query is inverted.
            generator.writeArrayFieldStart("must");
            for (Query query : booleanQuery.getQueries()) {
                generator.writeObject(query);
            }
            generator.writeEndArray(); // end of 'must'
            break;
        case OR:
            generator.writeArrayFieldStart("should");
            for (Query query : booleanQuery.getQueries()) {
                generator.writeObject(query);
            }
            generator.writeEndArray();// end of 'should'
            break;
        default:
            throw new CodecException("Unexpected boolean type:" + booleanQuery.getType());
        }
        generator.writeEndObject(); // end of 'bool'
        generator.writeEndObject(); // end of root
    }
}

From source file:org.elasticsearch.metrics.ElasticsearchReporter.java

/**
 * This index template is automatically applied to all indices which start with the index name
 * The index template simply configures the name not to be analyzed
 *///from  w  w w.  j a  va2s.co  m
private void checkForIndexTemplate() {
    try {
        HttpURLConnection connection = openConnection("/_template/metrics_template", "HEAD");
        if (connection == null) {
            LOGGER.error("Could not connect to any configured elasticsearch instances: {}",
                    Arrays.asList(hosts));
            return;
        }
        connection.disconnect();

        boolean isTemplateMissing = connection.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND;

        // nothing there, lets create it
        if (isTemplateMissing) {
            LOGGER.debug("No metrics template found in elasticsearch. Adding...");
            HttpURLConnection putTemplateConnection = openConnection("/_template/metrics_template", "PUT");
            if (putTemplateConnection == null) {
                LOGGER.error("Error adding metrics template to elasticsearch");
                return;
            }

            JsonGenerator json = new JsonFactory().createGenerator(putTemplateConnection.getOutputStream());
            json.writeStartObject();
            json.writeStringField("template", index + "*");
            json.writeObjectFieldStart("mappings");

            json.writeObjectFieldStart("_default_");
            json.writeObjectFieldStart("_all");
            json.writeBooleanField("enabled", false);
            json.writeEndObject();
            json.writeObjectFieldStart("properties");
            json.writeObjectFieldStart("name");
            json.writeObjectField("type", "string");
            json.writeObjectField("index", "not_analyzed");
            json.writeEndObject();
            json.writeEndObject();
            json.writeEndObject();

            json.writeEndObject();
            json.writeEndObject();
            json.flush();

            putTemplateConnection.disconnect();
            if (putTemplateConnection.getResponseCode() != 200) {
                LOGGER.error(
                        "Error adding metrics template to elasticsearch: {}/{}"
                                + putTemplateConnection.getResponseCode(),
                        putTemplateConnection.getResponseMessage());
            }
        }
        checkedForIndexTemplate = true;
    } catch (IOException e) {
        LOGGER.error("Error when checking/adding metrics template to elasticsearch", e);
    }
}

From source file:com.oneops.metrics.es.ElasticsearchReporter.java

/**
 * This index template is automatically applied to all indices which start with the index name
 * The index template simply configures the name not to be analyzed
 *///from  www. java2  s . c om
private void checkForIndexTemplate() {
    try {
        HttpURLConnection connection = openConnection("/_template/metrics_template", "HEAD");
        if (connection == null) {
            LOGGER.error("Could not connect to any configured elasticsearch instances: {}",
                    Arrays.asList(hosts));
            return;
        }
        connection.disconnect();

        boolean isTemplateMissing = connection.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND;

        // nothing there, lets create it
        if (isTemplateMissing) {
            LOGGER.debug("No metrics template found in elasticsearch. Adding...");
            HttpURLConnection putTemplateConnection = openConnection("/_template/metrics_template", "PUT");
            JsonGenerator json = new JsonFactory().createGenerator(putTemplateConnection.getOutputStream());
            json.writeStartObject();
            json.writeStringField("template", index + "*");
            json.writeObjectFieldStart("mappings");

            json.writeObjectFieldStart("_default_");
            json.writeObjectFieldStart("_all");
            json.writeBooleanField("enabled", false);
            json.writeEndObject();
            json.writeObjectFieldStart("properties");
            json.writeObjectFieldStart("name");
            json.writeObjectField("type", "string");
            json.writeObjectField("index", "not_analyzed");
            json.writeEndObject();
            json.writeEndObject();
            json.writeEndObject();

            json.writeEndObject();
            json.writeEndObject();
            json.flush();

            putTemplateConnection.disconnect();
            if (putTemplateConnection.getResponseCode() != 200) {
                LOGGER.error(
                        "Error adding metrics template to elasticsearch: {}/{}"
                                + putTemplateConnection.getResponseCode(),
                        putTemplateConnection.getResponseMessage());
            }
        }
        checkedForIndexTemplate = true;
    } catch (IOException e) {
        LOGGER.error("Error when checking/adding metrics template to elasticsearch", e);
    }
}

From source file:com.attribyte.essem.model.StoredGraph.java

/**
 * Generates JSON for this key./*from  www  . j  av a  2  s .  co  m*/
 * @param generator The generator.
 * @throws java.io.IOException on generation error.
 */
public void generateJSON(final JsonGenerator generator) throws IOException {
    generator.writeStartObject();
    generator.writeStringField("id", id);
    generator.writeStringField("uid", uid);
    generator.writeStringField("index", index);
    generator.writeStringField("application", key.application);
    generator.writeStringField("host", key.host);
    generator.writeStringField("instance", key.instance);
    generator.writeStringField("name", key.name);
    generator.writeStringField("field", key.field);
    generator.writeStringField("range", range);
    generator.writeNumberField("startTimestamp", startTimestamp);
    generator.writeNumberField("endTimestamp", endTimestamp);
    generator.writeStringField("downsampleFn", downsampleFn);
    if (rateUnit != null)
        generator.writeStringField("rateUnit", rateUnit);
    generator.writeStringField("title", title);
    generator.writeStringField("description", description);
    generator.writeStringField("xLabel", xLabel);
    generator.writeStringField("yLabel", yLabel);

    generator.writeArrayFieldStart("tag");
    for (String tag : tags) {
        generator.writeString(tag);
    }
    generator.writeEndArray();

    generator.writeStringField("created", DateTime.standardFormat(this.createTime));
    generator.writeEndObject();
}