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

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

Introduction

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

Prototype

public abstract void writeFieldName(SerializableString name) throws IOException, JsonGenerationException;

Source Link

Document

Method similar to #writeFieldName(String) , main difference being that it may perform better as some of processing (such as quoting of certain characters, or encoding into external encoding if supported by generator) can be done just once and reused for later calls.

Usage

From source file:io.debezium.document.JacksonWriter.java

protected void writeDocument(Document document, JsonGenerator generator) throws IOException {
    generator.writeStartObject();//w  ww .j ava  2s.c  o  m
    try {
        document.stream().forEach((field) -> {
            try {
                generator.writeFieldName(field.getName().toString());
                writeValue(field.getValue(), generator);
            } catch (IOException e) {
                throw new WritingError(e);
            }
        });
        generator.writeEndObject();
    } catch (WritingError e) {
        throw e.wrapped();
    }
}

From source file:com.streamsets.datacollector.bundles.content.SdcInfoContentGenerator.java

private void writeAttribute(JsonGenerator jg, String attName, Object value) throws IOException {
    jg.writeFieldName(attName);
    writeObject(jg, value);// ww w.j  ava2s.  c o m
}

From source file:de.rallye.mapper.GroupPositionsSerializer.java

@Override
public void serialize(Map<Integer, Node> value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException/*,
                          JsonProcessingException*/ {

    jgen.writeStartArray();//  w  w w. j a  v a 2  s.  c  o  m

    for (Integer groupId : value.keySet()) {
        int nodeId = value.get(groupId).nodeID;

        jgen.writeStartObject();

        jgen.writeFieldName(Group.GROUP_ID);
        jgen.writeNumber(groupId);

        jgen.writeFieldName(Node.NODE_ID);
        jgen.writeNumber(nodeId);

        jgen.writeEndObject();

    }

    jgen.writeEndArray();

}

From source file:models.ProcessSerializer.java

@Override
public void serialize(Process process, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    jgen.writeStartObject();//w w w .  ja v a 2  s. c  o  m
    jgen.writeStringField("id", process.getId());
    jgen.writeFieldName("unit");
    jgen.writeObject(process.getUnit());
    jgen.writeFieldName("keywords");
    jgen.writeObject(process.getKeywords());

    jgen.writeFieldName("groups");
    jgen.writeStartArray();
    for (Group group : process.getGroups()) {
        jgen.writeStartObject();
        jgen.writeStringField("id", group.getId());
        jgen.writeStringField("label", group.getLabel());
        jgen.writeEndObject();
    }
    jgen.writeEndArray();

    jgen.writeFieldName("relations");
    jgen.writeStartArray();
    for (DerivedRelation relation : process.getUpstreamDerivedRelations()) {
        jgen.writeObject(relation);
    }
    for (DerivedRelation relation : process.getDownstreamDerivedRelations()) {
        jgen.writeObject(relation);
    }
    jgen.writeEndArray();

    jgen.writeFieldName("impacts");
    jgen.writeStartObject();
    for (Impact impact : process.getImpacts().values()) {
        jgen.writeFieldName(impact.getType().getId());
        jgen.writeStartObject();
        jgen.writeFieldName("value");
        jgen.writeObject(impact.getValue());
        jgen.writeFieldName("upstream");
        jgen.writeObject(getUpstreamImpacts(process, impact));
        jgen.writeFieldName("composition");
        jgen.writeObject(getImpactComposition(process, impact));
        jgen.writeEndObject();
    }
    jgen.writeEndObject();

    jgen.writeFieldName("flows");
    jgen.writeStartObject();
    for (ElementaryFlow flow : process.getCalculatedFlows().values()) {
        jgen.writeFieldName(flow.getType().getId());
        jgen.writeStartObject();
        jgen.writeFieldName("value");
        jgen.writeObject(flow.getValue());
        jgen.writeFieldName("upstream");
        jgen.writeObject(getUpstreamFlows(process, flow));
        jgen.writeEndObject();
    }
    jgen.writeEndObject();

    jgen.writeEndObject();
}

From source file:net.nullschool.grains.jackson.datatype.GrainSerializer.java

private void serializeExtension(String key, Object value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {

    if (value != null) {
        // This extension's value is not the default value _null_, so write it to the stream.
        jgen.writeFieldName(key);
        JsonSerializer<Object> serializer = findLateSerializer(value.getClass(), provider);
        serializer.serialize(value, jgen, provider);
    }//from  ww w  .  j a va 2s  .co  m
}

From source file:org.cloudcoder.dataanalysis.ProgsnapExport.java

private String encodeLine(String tagname, Object value) throws IOException {
    StringWriter sw = new StringWriter();
    JsonFactory factory = new JsonFactory();
    JsonGenerator jg = factory.createGenerator(sw);
    jg.writeStartObject();/*from   w  ww.j a va2s.co  m*/
    jg.writeStringField("tag", tagname);
    jg.writeFieldName("value");
    writeJsonFieldValue(jg, value);
    jg.writeEndObject();
    jg.close();
    return sw.toString();
}

From source file:com.proofpoint.event.client.EventFieldMetadata.java

private void writeMultimap(JsonGenerator jsonGenerator, Multimap<?, ?> value, Deque<Object> objectStack)
        throws IOException {
    jsonGenerator.writeStartObject();//from   w w w .  java 2 s.  c om
    for (Map.Entry<?, ? extends Collection<?>> entry : value.asMap().entrySet()) {
        jsonGenerator.writeFieldName((String) entry.getKey());
        writeArray(jsonGenerator, entry.getValue(), objectStack);
    }
    jsonGenerator.writeEndObject();
}

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

@Test
public void testIt() throws IOException {
    FileType fileType = new FileType("Canon Raw", new Extension(".", "cr2", true), false);

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    JsonGenerator generator = jsonFactory.createGenerator(out, JsonEncoding.UTF8);

    generator.writeStartObject();// w  ww  .jav a2s. c o  m
    generator.writeStringField("id", fileType.getId());
    generator.writeBooleanField("dependent", fileType.isDependent());

    generator.writeFieldName("extension");
    generator.writeStartObject();

    generator.writeStringField("extension", fileType.getExtension().getExtension());
    generator.writeBooleanField("default", fileType.getExtension().isDefault());
    generator.writeStringField("delimiter", fileType.getExtension().getDelimiter());

    generator.writeEndObject();

    //    generator.writeFieldName( "id" );
    //    generator.writeString( fileType.getId() );

    generator.writeEndObject();

    generator.close();
    assertEquals(JSON, out.toString());
}

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

@Test
public void testIt() throws IOException {
    FileType fileType = new FileType("Canon Raw", new Extension(".", "cr2", true), false);

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    JsonGenerator generator = jsonFactory.createGenerator(out, JsonEncoding.UTF8);

    generator.writeStartObject();/* w  w  w .  java2 s.com*/
    generator.writeStringField("id", fileType.getId());
    generator.writeBooleanField("dependent", fileType.isDependent());

    generator.writeFieldName("extension");
    generator.writeStartObject();

    generator.writeStringField("extension", fileType.getExtension().getExtension());
    generator.writeBooleanField("default", fileType.getExtension().isDefault());
    generator.writeStringField("delimiter", fileType.getExtension().getDelimiter());

    generator.writeEndObject();

    //    generator.writeFieldName( "id" );
    //    generator.writeString( fileType.getId() );

    generator.writeEndObject();

    generator.close();
    assertEquals(BSON, Hex.encodeHexString(out.toByteArray()));
}

From source file:org.eclipse.winery.repository.resources.servicetemplates.plans.PlansResource.java

@POST
@RestDoc(methodDescription = "<p>Linked plans are currently not supported. Existing plans with the same id are overwritten</p> <p>@return JSON with .tableData: Array with row data for dataTable</p>")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces(MediaType.APPLICATION_JSON)//from  www.java 2  s.co  m
// the supertype consumes JSON and XML at org.eclipse.winery.repository.resources._support.collections.EntityCollectionResource.addNewElement(EntityT)
// @formatter:off
public Response onPost(@FormDataParam("planName") String name, @FormDataParam("planType") String type,
        @FormDataParam("planLanguage") @RestDocParam(description = "the plan language (e..g, BPMN or BPEL). Full URL.") String language,
        @FormDataParam("file") @RestDocParam(description = "(optional in the case of BPMN4TOSCA) file containing the plan.") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail,
        @FormDataParam("file") FormDataBodyPart body) {
    // @formatter:on
    if (StringUtils.isEmpty(name)) {
        return Response.status(Status.BAD_REQUEST).entity("planName must be given").build();
    }
    if (StringUtils.isEmpty(type)) {
        return Response.status(Status.BAD_REQUEST).entity("planType must be given").build();
    }
    if (StringUtils.isEmpty(language)) {
        return Response.status(Status.BAD_REQUEST).entity("planLanguage must be given").build();
    }

    boolean bpmn4toscaMode = org.eclipse.winery.common.constants.Namespaces.URI_BPMN4TOSCA_20.equals(language);
    if (!bpmn4toscaMode) {
        if (uploadedInputStream == null) {
            return Response.status(Status.BAD_REQUEST).entity("file must be given").build();
        }
    }

    // A plan carries both a name and an ID
    // To be user-friendly, we create the ID based on the name
    // the drawback is, that we do not allow two plans with the same name
    // during creation, but allow renaming plans to the same name (as we do
    // not allow ID renaming)
    String xmlId = Utils.createXMLidAsString(name);

    // BEGIN: Store plan file

    // Determine Id
    PlansId plansId = new PlansId((ServiceTemplateId) ((ServiceTemplateResource) this.res).getId());
    PlanId planId = new PlanId(plansId, new XMLId(xmlId, false));
    // Ensure overwriting
    if (Repository.INSTANCE.exists(planId)) {
        try {
            Repository.INSTANCE.forceDelete(planId);
            // Quick hack to remove the deleted plan from the plans element
            ((ServiceTemplateResource) this.res).synchronizeReferences();
        } catch (IOException e) {
            return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
        }
    }

    String fileName;
    if (bpmn4toscaMode) {
        fileName = xmlId + Constants.SUFFIX_BPMN4TOSCA;
        RepositoryFileReference ref = new RepositoryFileReference(planId, fileName);
        try {
            Repository.INSTANCE.putContentToFile(ref, "{}", MediaType.APPLICATION_JSON_TYPE);
        } catch (IOException e1) {
            return Response.status(Status.INTERNAL_SERVER_ERROR)
                    .entity("Could not create empty plan. " + e1.getMessage()).build();
        }
    } else {
        // We use the filename also as local file name. Alternatively, we could use the xml id
        // With URL encoding, this should not be an issue
        fileName = Util.URLencode(fileDetail.getFileName());

        // Really store it
        RepositoryFileReference ref = new RepositoryFileReference(planId, fileName);
        try {
            Repository.INSTANCE.putContentToFile(ref, uploadedInputStream, body.getMediaType());
        } catch (IOException e1) {
            return Response.status(Status.INTERNAL_SERVER_ERROR)
                    .entity("Could not store plan. " + e1.getMessage()).build();
        }
    }
    // END: Store plan file

    TPlan plan = new TPlan();
    plan.setId(xmlId);
    plan.setName(name);
    plan.setPlanType(type);
    plan.setPlanLanguage(language);
    PlansResource.setPlanModelReference(plan, planId, fileName);
    this.list.add(plan);

    // prepare result
    JsonFactory jsonFactory = new JsonFactory();
    StringWriter sw = new StringWriter();
    try {
        JsonGenerator jGenerator = jsonFactory.createGenerator(sw);
        jGenerator.writeStartObject();
        jGenerator.writeFieldName("tableData");
        jGenerator.writeStartArray();
        jGenerator.writeString(xmlId);
        jGenerator.writeString(""); // precondition
        jGenerator.writeString(name);
        jGenerator.writeString(PlanTypesManager.INSTANCE.getShortName(type));
        jGenerator.writeString(PlanLanguagesManager.INSTANCE.getShortName(language));
        jGenerator.writeEndArray();
        jGenerator.writeEndObject();
        jGenerator.close();
        sw.close();
    } catch (JsonGenerationException e) {
        PlansResource.logger.error(e.getMessage(), e);
        return Response.serverError().build();
    } catch (IOException e) {
        PlansResource.logger.error(e.getMessage(), e);
        return Response.serverError().build();
    }

    Response res = BackendUtils.persist(this.res);
    if (res.getStatus() == 204) {
        // everything OK, return created
        return Response.created(Utils.createURI(Util.URLencode(xmlId))).entity(sw.toString()).build();
    } else {
        return res;
    }
}