List of usage examples for com.fasterxml.jackson.core JsonGenerator writeStartObject
public abstract void writeStartObject() throws IOException, JsonGenerationException;
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(); }