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

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

Introduction

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

Prototype

public abstract void writeStartArray() throws IOException, JsonGenerationException;

Source Link

Document

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

Usage

From source file:io.pdef.json.JsonJacksonFormat.java

private <T> void writeList(@Nonnull final List<T> object, final ListDescriptor<T> descriptor,
        final JsonGenerator generator) throws IOException {
    DataTypeDescriptor<T> elementd = descriptor.getElement();

    generator.writeStartArray();
    for (T element : object) {
        write(element, elementd, generator);
    }/*w  w w .j  av a  2  s  .  c o m*/
    generator.writeEndArray();
}

From source file:io.pdef.json.JsonJacksonFormat.java

private <T> void writeSet(@Nonnull final Set<T> object, final SetDescriptor<T> descriptor,
        final JsonGenerator generator) throws IOException {
    DataTypeDescriptor<T> elementd = descriptor.getElement();

    generator.writeStartArray();
    for (T element : object) {
        write(element, elementd, generator);
    }/*from w w  w  .j  a  va2  s. c o  m*/
    generator.writeEndArray();
}

From source file:org.neo4j.ontology.server.unmanaged.AnnotationResource.java

private void writeJsonNodeObjectParents(JsonGenerator jg, Node term, Label annotationLabel) throws IOException {
    jg.writeFieldName("parents"); // parents:
    jg.writeStartArray(); // [
    for (Relationship subClassOf : term.getRelationships(SUBCLASS_OF, OUTGOING)) {
        if (subClassOf.getEndNode().hasLabel(annotationLabel)) {
            jg.writeString(subClassOf.getEndNode().getProperty("uri").toString());
        }//  ww w.  j  a v  a2s .co m
    }
    jg.writeEndArray(); // ]
}

From source file:org.talend.dataprep.schema.csv.CSVSerializer.java

@Override
public InputStream serialize(InputStream rawContent, DataSetMetadata metadata, long limit) {
    try {//ww w. j  av a2  s  .c  om
        PipedInputStream pipe = new PipedInputStream();
        PipedOutputStream jsonOutput = new PipedOutputStream(pipe);
        // Serialize asynchronously for better performance (especially if caller doesn't consume all, see sampling).
        Runnable r = () -> {
            final Map<String, String> parameters = metadata.getContent().getParameters();
            final String separator = parameters.get(CSVFormatFamily.SEPARATOR_PARAMETER);
            try (CSVReader reader = new CSVReader(new InputStreamReader(rawContent, metadata.getEncoding()),
                    separator.charAt(0), '\"', '\0')) {
                JsonGenerator generator = new JsonFactory().createGenerator(jsonOutput);
                int i = 0;
                while (i++ < metadata.getContent().getNbLinesInHeader()) {
                    reader.readNext(); // Skip all header lines
                }
                generator.writeStartArray();
                writeLineContent(reader, metadata, generator, separator, limit);
                generator.writeEndArray();
                generator.flush();
            } catch (Exception e) {
                // Consumer may very well interrupt consumption of stream (in case of limit(n) use for sampling).
                // This is not an issue as consumer is allowed to partially consumes results, it's up to the
                // consumer to ensure data it consumed is consistent.
                LOGGER.debug("Unable to continue serialization for {}. Skipping remaining content.",
                        metadata.getId(), e);
            } finally {
                try {
                    jsonOutput.close();
                } catch (IOException e) {
                    LOGGER.error("Unable to close output", e);
                }
            }
        };
        executor.execute(r);
        return pipe;
    } catch (IOException e) {
        throw new TDPException(CommonErrorCodes.UNABLE_TO_SERIALIZE_TO_JSON, e);
    }
}

From source file:TDS.Shared.Messages.MessageJson.java

private void writeContextElement(MessageContext messageContext, JsonGenerator jsonWriter)
        throws JsonGenerationException, IOException {
    jsonWriter.writeStartObject(); // {
    jsonWriter.writeStringField("c", messageContext.getName()); // "c": "name"
    jsonWriter.writeFieldName("m_a"); // "m_a":
    jsonWriter.writeStartArray(); // [
    List<Message> messages = messageContext.getMessages();
    for (Message message : messages) {
        writeMessageElement(message, jsonWriter);
    }//from   w  w  w  .j  av a 2  s . c  o  m
    jsonWriter.writeEndArray(); // ]
    jsonWriter.writeEndObject(); // }
}

From source file:tds.student.web.backing.TestShellScriptsBacking.java

private void addTestSegments() throws IOException, ReturnStatusException {
    TestSession testSession = StudentContext.getSession();
    // _studentSettings = FacesContextHelper.getBean ("studentSettings",
    // StudentSettings.class);
    OpportunitySegments oppSegments = null;

    // load opp segments only if there are any test segments
    if (_testProps.getSegments().size() > 0) {
        oppSegments = this._iOpportunityService.getSegments(this._testOpportunity.getOppInstance(),
                !this._studentSettings.isReadOnly());
    }/*from   ww w .ja  v  a2s.c om*/

    StringWriter sw = new StringWriter();
    JsonFactory jsonFactory = new JsonFactory();
    JsonGenerator writer = jsonFactory.createGenerator(sw);

    writer.writeStartArray(); // [

    for (final TestSegment testSegment : _testProps.getSegments()) {
        OpportunitySegment oppSegment = null;

        // find opportunity segment
        if (oppSegments != null) {
            oppSegment = (OpportunitySegment) CollectionUtils.find(oppSegments, new Predicate() {
                @Override
                public boolean evaluate(Object arg0) {
                    if (StringUtils.equals(((OpportunitySegment) arg0).getId(), testSegment.getId()))
                        return true;
                    return false;
                }
            });
        }

        // figure out segment permeability
        int isPermeable = testSegment.getIsPermeable();
        int updatePermeable = isPermeable;

        // these are local override rules (reviewed with Larry)
        if (oppSegment != null) {
            /*
             * if -1, use the defined value for the segment as returned by
             * IB_GetSegments if not -1, then the local value defines the temporary
             * segment permeability
             */
            if (oppSegment.getIsPermeable() != -1) {
                isPermeable = oppSegment.getIsPermeable();

                /*
                 * The default permeability is restored when the student leaves the
                 * segment while testing. Assuming the segment is impermeable, this
                 * allows the student one entry into the segment during the sitting.
                 * When the student leaves the segment, is membrane is enforced by the
                 * student app. The database will restore the default value of the
                 * segment membrane when the test is paused.
                 */
                if (oppSegment.getRestorePermOn() != "segment") {
                    updatePermeable = oppSegment.getIsPermeable();
                }
            }

            // NOTE: When student enters segment, set isPermeable = updatePermeable
        }

        // if read only mode is enabled then we should let user have access
        if (_studentSettings.isReadOnly()) {
            isPermeable = 1;
            updatePermeable = 1;
        }

        // figure out segment approval
        int entryApproval = testSegment.getEntryApproval();
        int exitApproval = testSegment.getExitApproval();

        // NOTE: If proctorless test then don't require entry/exit approval
        // (nobody to approve it)
        if (testSession.isProctorless() || _studentSettings.isReadOnly()) {
            entryApproval = 0;
            exitApproval = 0;
        }
        // BUG #22642: Entry and Exit approvals are not needed from Test level
        // review screen when approval = 2
        else if (getViewPageNumber() > 0) {
            if (testSegment.getEntryApproval() == 2)
                entryApproval = 0;
            if (testSegment.getExitApproval() == 2)
                exitApproval = 0;
        }

        // write segment json
        writer.writeStartObject();
        writer.writeStringField("type", "object"); // {
        writer.writeStringField("id", testSegment.getId());
        writer.writeNumberField("position", testSegment.getPosition());
        writer.writeStringField("label", testSegment.getLabel());
        writer.writeBooleanField("itemReview", testSegment.isItemReview());
        writer.writeNumberField("isPermeable", isPermeable);
        writer.writeNumberField("updatePermeable", updatePermeable);
        writer.writeNumberField("entryApproval", entryApproval);
        writer.writeNumberField("exitApproval", exitApproval);

        // Looks like we don't use this variable in javascript (removed for 2012)
        // Test adaptiveSegment =
        // TestOpportunity.AdaptiveTest.GetSegmentTest(testSegment.ID);
        // writer.WriteObject("length", (adaptiveSegment != null) ?
        // adaptiveSegment.TotalMinLength : 0);

        writer.writeEndObject(); // }
    }

    writer.writeEndArray(); // ]

    writer.close();

    // write out javascript
    StringBuilder javascript = new StringBuilder();
    javascript.append("var tdsSegments = ");
    javascript.append(sw.toString());
    javascript.append("; ");

    this.getClientScript().addToJsCode(javascript.toString());

}

From source file:com.cedarsoft.couchdb.io.ViewResponseSerializer.java

public <K, V> void serialize(@Nonnull ViewResponse<K, V, ?> viewResponse,
        @Nonnull JacksonSerializer<? super K> keySerializer,
        @Nonnull JacksonSerializer<? super V> valueSerializer, @Nonnull OutputStream out) throws IOException {
    JsonFactory jsonFactory = JacksonSupport.getJsonFactory();
    JsonGenerator generator = jsonFactory.createJsonGenerator(out, JsonEncoding.UTF8);

    generator.writeStartObject();//from ww  w.  java 2s .  co  m

    generator.writeNumberField(PROPERTY_TOTAL_ROWS, viewResponse.getTotalRows());
    generator.writeNumberField(PROPERTY_OFFSET, viewResponse.getOffset());

    //Now the rows
    generator.writeFieldName(PROPERTY_ROWS);
    generator.writeStartArray();

    for (Row<K, V, ?> row : viewResponse.getRows()) {
        rowSerializer.serialize(row, keySerializer, valueSerializer, generator);
    }

    generator.writeEndArray();

    generator.writeEndObject();
    generator.close();
}

From source file:io.swagger.inflector.processors.JsonNodeExampleSerializer.java

public void writeTo(JsonGenerator jgen, Example o) throws IOException {
    if (o instanceof ObjectExample) {
        ObjectExample obj = (ObjectExample) o;
        for (String key : obj.keySet()) {
            Example value = (Example) obj.get(key);
            writeValue(jgen, key, value);
        }/*from w  ww  . j a va2  s  .  c om*/
    } else if (o instanceof ArrayExample) {
        jgen.writeStartArray();
        writeTo(jgen, o);
        jgen.writeEndArray();
    } else {
        writeValue(jgen, null, o);
    }
}

From source file:be.dnsbelgium.rdap.jackson.StructuredValueSerializer.java

@Override
public void serialize(StructuredValue value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {
    for (StructuredValue.Component c : value.getComponents()) {
        // in a structured context, a list-component must start with [ and end with ]
        if (AbstractList.class.isAssignableFrom(c.value.getClass())
                && ((AbstractList) c.value).getValues() != null
                && ((AbstractList) c.value).getValues().size() > 1) {
            jgen.writeStartArray();
            provider.findValueSerializer(c.value.getClass(), null).serialize(c.value, jgen, provider);
            jgen.writeEndArray();/*  w w w.j a  va2 s  . c  o m*/
        } else {
            provider.findValueSerializer(c.value.getClass(), null).serialize(c.value, jgen, provider);
        }
    }
}

From source file:org.canova.api.conf.Configuration.java

/**
 *  Writes out all the parameters and their properties (final and resource) to
 *  the given {@link Writer}/*from w  w w  . j  a v a 2s  . c om*/
 *  The format of the output would be
 *  { "properties" : [ {key1,value1,key1.isFinal,key1.resource}, {key2,value2,
 *  key2.isFinal,key2.resource}... ] }
 *  It does not output the parameters of the configuration object which is
 *  loaded from an input stream.
 * @param out the Writer to write to
 * @throws IOException
 */
public static void dumpConfiguration(Configuration conf, Writer out) throws IOException {
    Configuration config = new Configuration(conf, true);
    config.reloadConfiguration();
    JsonFactory dumpFactory = new JsonFactory();
    JsonGenerator dumpGenerator = dumpFactory.createGenerator(out);
    dumpGenerator.writeStartObject();
    dumpGenerator.writeFieldName("properties");
    dumpGenerator.writeStartArray();
    dumpGenerator.flush();
    for (Map.Entry<Object, Object> item : config.getProps().entrySet()) {
        dumpGenerator.writeStartObject();
        dumpGenerator.writeStringField("key", (String) item.getKey());
        dumpGenerator.writeStringField("value", config.get((String) item.getKey()));
        dumpGenerator.writeBooleanField("isFinal", config.finalParameters.contains(item.getKey()));
        dumpGenerator.writeStringField("resource", config.updatingResource.get(item.getKey()));
        dumpGenerator.writeEndObject();
    }
    dumpGenerator.writeEndArray();
    dumpGenerator.writeEndObject();
    dumpGenerator.flush();
}