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

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

Introduction

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

Prototype

@Override
public abstract void flush() throws IOException;

Source Link

Document

Method called to flush any buffered content to the underlying target (output stream, writer), and to flush the target itself as well.

Usage

From source file:Service.java

public static void main(String[] args) {

    StringWriter sw = new StringWriter();
    try {//from  ww  w  . j av  a 2  s  . c  o m
        JsonGenerator g = factory.createGenerator(sw);
        g.writeStartObject();
        g.writeNumberField("code", 200);
        g.writeArrayFieldStart("languages");
        for (Language l : Languages.get()) {
            g.writeStartObject();
            g.writeStringField("name", l.getName());
            g.writeStringField("locale", l.getLocaleWithCountryAndVariant().toString());
            g.writeEndObject();
        }
        g.writeEndArray();
        g.writeEndObject();
        g.flush();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    String languagesResponse = sw.toString();

    String errorResponse = codeResponse(500);
    String okResponse = codeResponse(200);

    Scanner sc = new Scanner(System.in);
    while (sc.hasNextLine()) {
        try {
            String line = sc.nextLine();
            JsonParser p = factory.createParser(line);
            String cmd = "";
            String text = "";
            String language = "";
            while (p.nextToken() != JsonToken.END_OBJECT) {
                String name = p.getCurrentName();
                if ("command".equals(name)) {
                    p.nextToken();
                    cmd = p.getText();
                }
                if ("text".equals(name)) {
                    p.nextToken();
                    text = p.getText();
                }
                if ("language".equals(name)) {
                    p.nextToken();
                    language = p.getText();
                }
            }
            p.close();

            if ("check".equals(cmd)) {
                sw = new StringWriter();
                JsonGenerator g = factory.createGenerator(sw);
                g.writeStartObject();
                g.writeNumberField("code", 200);
                g.writeArrayFieldStart("matches");
                for (RuleMatch match : new JLanguageTool(Languages.getLanguageForShortName(language))
                        .check(text)) {
                    g.writeStartObject();

                    g.writeNumberField("offset", match.getFromPos());

                    g.writeNumberField("length", match.getToPos() - match.getFromPos());

                    g.writeStringField("message", substituteSuggestion(match.getMessage()));

                    if (match.getShortMessage() != null) {
                        g.writeStringField("shortMessage", substituteSuggestion(match.getShortMessage()));
                    }

                    g.writeArrayFieldStart("replacements");
                    for (String replacement : match.getSuggestedReplacements()) {
                        g.writeString(replacement);
                    }
                    g.writeEndArray();

                    Rule rule = match.getRule();

                    g.writeStringField("ruleId", rule.getId());

                    if (rule instanceof AbstractPatternRule) {
                        String subId = ((AbstractPatternRule) rule).getSubId();
                        if (subId != null) {
                            g.writeStringField("ruleSubId", subId);
                        }
                    }

                    g.writeStringField("ruleDescription", rule.getDescription());

                    g.writeStringField("ruleIssueType", rule.getLocQualityIssueType().toString());

                    if (rule.getUrl() != null) {
                        g.writeArrayFieldStart("ruleUrls");
                        g.writeString(rule.getUrl().toString());
                        g.writeEndArray();
                    }

                    Category category = rule.getCategory();
                    CategoryId catId = category.getId();
                    if (catId != null) {
                        g.writeStringField("ruleCategoryId", catId.toString());

                        g.writeStringField("ruleCategoryName", category.getName());
                    }

                    g.writeEndObject();
                }
                g.writeEndArray();
                g.writeEndObject();
                g.flush();
                System.out.println(sw.toString());
            } else if ("languages".equals(cmd)) {
                System.out.println(languagesResponse);
            } else if ("quit".equals(cmd)) {
                System.out.println(okResponse);
                return;
            } else {
                System.out.println(errorResponse);
            }
        } catch (Exception e) {
            System.out.println(errorResponse);
        }
    }
}

From source file:Service.java

private static String codeResponse(int code) {
    StringWriter sw = new StringWriter();
    try {// w  ww. j  a v a 2 s .co m
        JsonGenerator g = factory.createGenerator(sw);
        g.writeStartObject();
        g.writeNumberField("code", code);
        g.writeEndObject();
        g.flush();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    return sw.toString();
}

From source file:com.meetingninja.csse.database.AgendaDatabaseAdapter.java

public static JsonNode update(String agendaID, Map<String, String> key_values)
        throws JsonGenerationException, IOException, InterruptedException {
    // prepare POST payload
    ByteArrayOutputStream json = new ByteArrayOutputStream();
    // this type of print stream allows us to get a string easily
    PrintStream ps = new PrintStream(json);

    // Create a generator to build the JSON string
    JsonGenerator jgen = JFACTORY.createGenerator(ps, JsonEncoding.UTF8);
    for (String key : key_values.keySet()) {
        jgen.flush();
        // Build JSON Object
        jgen.writeStartObject();//  w ww  .  j  a  v a  2 s. c om
        jgen.writeStringField(Keys.Agenda.ID, agendaID);
        jgen.writeStringField("field", key);
        jgen.writeStringField("value", key_values.get(key));
        jgen.writeEndObject();
        jgen.writeRaw("\f"); // write a form-feed to separate the payloads
    }

    jgen.close();
    // Get JSON Object payload from print stream
    String payload = json.toString("UTF8");
    ps.close();
    // The backend can only update a single field at a time
    String[] payloads = payload.split("\f\\s*"); // split at each form-feed
    Thread t = new Thread(new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.getLocalizedMessage();
            }
        }
    }));
    String response = "";
    for (String p : payloads) {
        t.run();
        response = updateHelper(p);
    }
    return MAPPER.readTree(response);
}

From source file:com.attribyte.essem.ESReporter.java

/**
 * Generates the ES bulk api "action" command.
 * @param generator The JSON generator./* w w w .  j av  a 2  s  .co m*/
 * @param objType The object type.
 * @throws IOException
 */
static final void generateAction(final JsonGenerator generator, final String objType) throws IOException {
    generator.writeStartObject();
    generator.writeObjectFieldStart("index");
    generator.writeStringField("_type", objType);
    generator.writeEndObject();
    generator.writeEndObject();
    generator.flush();
}

From source file:eu.project.ttc.readers.TermSuiteJsonCasSerializer.java

public static void serialize(Writer writer, JCas jCas) throws IOException {

    JsonFactory jsonFactory = new JsonFactory();
    JsonGenerator jg = jsonFactory.createGenerator(writer);
    jg.useDefaultPrettyPrinter();/*  ww  w  . j a v a2 s  .  co m*/
    jg.writeStartObject();
    jg.writeFieldName(F_SDI);
    writeSDI(jg, jCas);
    jg.writeFieldName(F_WORD_ANNOTATIONS);
    writeWordAnnotations(jg, jCas);
    jg.writeFieldName(F_TERM_OCC_ANNOTATIONS);
    writeTermOccAnnotations(jg, jCas);
    jg.writeFieldName(F_FIXED_EXPRESSIONS);
    writeFixedExpressions(jg, jCas);
    writeCoveredText(jg, jCas);
    jg.writeEndObject();
    jg.flush();
    writer.close();
}

From source file:com.meetingninja.csse.database.UserDatabaseAdapter.java

public static User update(String userID, Map<String, String> key_values)
        throws JsonGenerationException, IOException, InterruptedException {
    // prepare POST payload
    ByteArrayOutputStream json = new ByteArrayOutputStream();
    // this type of print stream allows us to get a string easily
    PrintStream ps = new PrintStream(json);

    // Create a generator to build the JSON string
    JsonGenerator jgen = JFACTORY.createGenerator(ps, JsonEncoding.UTF8);
    for (String key : key_values.keySet()) {
        if (key.equals(Keys.User.EMAIL) && !Utilities.isValidEmailAddress(key_values.get(Keys.User.EMAIL)))
            throw new IOException("Error : [Update User] Incorrect email format");
        else {/*from  www.j av  a  2  s.  c om*/
            jgen.flush();
            // Build JSON Object
            jgen.writeStartObject();
            jgen.writeStringField(Keys.User.ID, userID);
            jgen.writeStringField("field", key);
            jgen.writeStringField("value", key_values.get(key));
            jgen.writeEndObject();
            jgen.writeRaw("\f");
        }
    }

    jgen.close();
    // Get JSON Object payload from print stream
    String payload = json.toString("UTF8");
    ps.close();
    String[] payloads = payload.split("\f\\s*");

    Thread t = new Thread(new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.getLocalizedMessage();
            }
        }
    }));
    String response = "";
    for (String p : payloads) {
        t.run();
        response = updateHelper(p);
    }
    return parseUser(MAPPER.readTree(response));
}

From source file:com.cedarsoft.couchdb.DesignDocumentsUpdater.java

/**
 * Creates the json content for the design document
 *
 * @return a string containing the json content for this design document
 *
 * @throws IOException/*  w ww. j av a  2s .  c  o  m*/
 */
public static String createJson(@Nonnull DesignDocument designDocument, @Nullable Revision revision)
        throws IOException {
    //noinspection TypeMayBeWeakened
    StringWriter writer = new StringWriter();
    JsonGenerator generator = new JsonFactory().createJsonGenerator(writer);
    generator.writeStartObject();

    generator.writeStringField("_id", designDocument.getId());
    if (revision != null) {
        generator.writeStringField("_rev", revision.asString());
    }
    generator.writeStringField("language", "javascript");

    generator.writeObjectFieldStart("views");

    for (View view : designDocument.getViews()) {
        generator.writeObjectFieldStart(view.getName());

        generator.writeStringField("map", view.getMappingFunction());
        @Nullable
        String reduceFunction = view.getReduceFunction();
        if (reduceFunction != null) {
            generator.writeStringField("reduce", reduceFunction);
        }
        generator.writeEndObject();
    }

    generator.writeEndObject();
    generator.writeEndObject();
    generator.flush();
    return writer.toString();
}

From source file:com.attribyte.essem.ESReporter.java

static final void generateCounter(final JsonGenerator generator, final ReportProtos.EssemReport.Counter counter,
        final String application, final String host, final String instance, final long timestamp)
        throws IOException {
    generator.writeStartObject();//w w  w .j  ava  2  s  . c om
    writeStringField(generator, Fields.APPLICATION_FIELD, application);
    writeStringField(generator, Fields.HOST_FIELD, host);
    writeStringField(generator, Fields.INSTANCE_FIELD, instance);
    writeStringField(generator, Fields.NAME_FIELD, counter.getName().trim());
    generator.writeNumberField(Fields.COUNT_FIELD, counter.getCount());
    generator.writeNumberField(Fields.TIMESTAMP_FIELD, timestamp);
    generator.writeEndObject();
    generator.flush();
}

From source file:holon.contrib.http.JsonContent.java

@Override
public void render(Output out, Object context) throws IOException {
    JsonGenerator generator = mapper.getFactory().createGenerator(out.asWriter());
    generator.writeObject(context);//from  w w w. j  av a 2s. com
    generator.flush();
}

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

@SuppressWarnings("unchecked")
public void serializeAndAssertEquals(String expected, S o, SerializerProvider sp) throws IOException {
    JsonFactory factory = new JsonFactory();
    T serializer = getSerializer();/* ww w .  j  a v  a 2s .  c  o  m*/
    StringWriter sw = new StringWriter();
    JsonGenerator jgen = factory.createJsonGenerator(sw);
    serializer.serialize(o, jgen, sp); // unchecked
    jgen.flush();
    sw.flush();
    String result = sw.toString();
    sw.close();
    assertEquals(expected, result);
}