List of usage examples for com.fasterxml.jackson.core JsonGenerator writeObjectFieldStart
public final void writeObjectFieldStart(String fieldName) throws IOException, JsonGenerationException
From source file:com.netflix.hystrix.contrib.sample.stream.HystrixConfigurationJsonStream.java
private static void writeThreadPoolConfigJson(JsonGenerator json, HystrixThreadPoolKey threadPoolKey, HystrixThreadPoolConfiguration threadPoolConfig) throws IOException { json.writeObjectFieldStart(threadPoolKey.name()); json.writeNumberField("coreSize", threadPoolConfig.getCoreSize()); json.writeNumberField("maximumSize", threadPoolConfig.getMaximumSize()); json.writeNumberField("actualMaximumSize", threadPoolConfig.getActualMaximumSize()); json.writeNumberField("maxQueueSize", threadPoolConfig.getMaxQueueSize()); json.writeNumberField("queueRejectionThreshold", threadPoolConfig.getQueueRejectionThreshold()); json.writeNumberField("keepAliveTimeInMinutes", threadPoolConfig.getKeepAliveTimeInMinutes()); json.writeBooleanField("allowMaximumSizeToDivergeFromCoreSize", threadPoolConfig.getAllowMaximumSizeToDivergeFromCoreSize()); json.writeNumberField("counterBucketSizeInMilliseconds", threadPoolConfig.getRollingCounterBucketSizeInMilliseconds()); json.writeNumberField("counterBucketCount", threadPoolConfig.getRollingCounterNumberOfBuckets()); json.writeEndObject();/* w ww . j a va2 s. c o m*/ }
From source file:com.netflix.hystrix.contrib.sample.stream.HystrixConfigurationJsonStream.java
private static void writeCommandConfigJson(JsonGenerator json, HystrixCommandKey key, HystrixCommandConfiguration commandConfig) throws IOException { json.writeObjectFieldStart(key.name()); json.writeStringField("threadPoolKey", commandConfig.getThreadPoolKey().name()); json.writeStringField("groupKey", commandConfig.getGroupKey().name()); json.writeObjectFieldStart("execution"); HystrixCommandConfiguration.HystrixCommandExecutionConfig executionConfig = commandConfig .getExecutionConfig();//w w w .j a v a 2s . c o m json.writeStringField("isolationStrategy", executionConfig.getIsolationStrategy().name()); json.writeStringField("threadPoolKeyOverride", executionConfig.getThreadPoolKeyOverride()); json.writeBooleanField("requestCacheEnabled", executionConfig.isRequestCacheEnabled()); json.writeBooleanField("requestLogEnabled", executionConfig.isRequestLogEnabled()); json.writeBooleanField("timeoutEnabled", executionConfig.isTimeoutEnabled()); json.writeBooleanField("fallbackEnabled", executionConfig.isFallbackEnabled()); json.writeNumberField("timeoutInMilliseconds", executionConfig.getTimeoutInMilliseconds()); json.writeNumberField("semaphoreSize", executionConfig.getSemaphoreMaxConcurrentRequests()); json.writeNumberField("fallbackSemaphoreSize", executionConfig.getFallbackMaxConcurrentRequest()); json.writeBooleanField("threadInterruptOnTimeout", executionConfig.isThreadInterruptOnTimeout()); json.writeEndObject(); json.writeObjectFieldStart("metrics"); HystrixCommandConfiguration.HystrixCommandMetricsConfig metricsConfig = commandConfig.getMetricsConfig(); json.writeNumberField("healthBucketSizeInMs", metricsConfig.getHealthIntervalInMilliseconds()); json.writeNumberField("percentileBucketSizeInMilliseconds", metricsConfig.getRollingPercentileBucketSizeInMilliseconds()); json.writeNumberField("percentileBucketCount", metricsConfig.getRollingCounterNumberOfBuckets()); json.writeBooleanField("percentileEnabled", metricsConfig.isRollingPercentileEnabled()); json.writeNumberField("counterBucketSizeInMilliseconds", metricsConfig.getRollingCounterBucketSizeInMilliseconds()); json.writeNumberField("counterBucketCount", metricsConfig.getRollingCounterNumberOfBuckets()); json.writeEndObject(); json.writeObjectFieldStart("circuitBreaker"); HystrixCommandConfiguration.HystrixCommandCircuitBreakerConfig circuitBreakerConfig = commandConfig .getCircuitBreakerConfig(); json.writeBooleanField("enabled", circuitBreakerConfig.isEnabled()); json.writeBooleanField("isForcedOpen", circuitBreakerConfig.isForceOpen()); json.writeBooleanField("isForcedClosed", circuitBreakerConfig.isForceOpen()); json.writeNumberField("requestVolumeThreshold", circuitBreakerConfig.getRequestVolumeThreshold()); json.writeNumberField("errorPercentageThreshold", circuitBreakerConfig.getErrorThresholdPercentage()); json.writeNumberField("sleepInMilliseconds", circuitBreakerConfig.getSleepWindowInMilliseconds()); json.writeEndObject(); json.writeEndObject(); }
From source file:com.netflix.hystrix.contrib.sample.stream.HystrixConfigurationJsonStream.java
public static String convertToString(HystrixConfiguration config) throws IOException { StringWriter jsonString = new StringWriter(); JsonGenerator json = jsonFactory.createGenerator(jsonString); json.writeStartObject();/*from w w w . ja v a 2 s.co m*/ json.writeStringField("type", "HystrixConfig"); json.writeObjectFieldStart("commands"); for (Map.Entry<HystrixCommandKey, HystrixCommandConfiguration> entry : config.getCommandConfig() .entrySet()) { final HystrixCommandKey key = entry.getKey(); final HystrixCommandConfiguration commandConfig = entry.getValue(); writeCommandConfigJson(json, key, commandConfig); } json.writeEndObject(); json.writeObjectFieldStart("threadpools"); for (Map.Entry<HystrixThreadPoolKey, HystrixThreadPoolConfiguration> entry : config.getThreadPoolConfig() .entrySet()) { final HystrixThreadPoolKey threadPoolKey = entry.getKey(); final HystrixThreadPoolConfiguration threadPoolConfig = entry.getValue(); writeThreadPoolConfigJson(json, threadPoolKey, threadPoolConfig); } json.writeEndObject(); json.writeObjectFieldStart("collapsers"); for (Map.Entry<HystrixCollapserKey, HystrixCollapserConfiguration> entry : config.getCollapserConfig() .entrySet()) { final HystrixCollapserKey collapserKey = entry.getKey(); final HystrixCollapserConfiguration collapserConfig = entry.getValue(); writeCollapserConfigJson(json, collapserKey, collapserConfig); } json.writeEndObject(); json.writeEndObject(); json.close(); return jsonString.getBuffer().toString(); }
From source file:com.attribyte.essem.ESReporter.java
/** * Generates the ES bulk api "action" command. * @param generator The JSON generator.//from w w w . j a v a 2 s . c o 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: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//from ww w.j av a2 s . com */ 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:org.elasticsearch.client.sniff.HostsSnifferTests.java
private static SniffResponse buildSniffResponse(HostsSniffer.Scheme scheme) throws IOException { int numNodes = RandomInts.randomIntBetween(getRandom(), 1, 5); List<HttpHost> hosts = new ArrayList<>(numNodes); JsonFactory jsonFactory = new JsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.writeStartObject();//from w w w. j a v a2 s.c o m if (getRandom().nextBoolean()) { generator.writeStringField("cluster_name", "elasticsearch"); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeObjectFieldStart("nodes"); for (int i = 0; i < numNodes; i++) { String nodeId = RandomStrings.randomAsciiOfLengthBetween(getRandom(), 5, 10); generator.writeObjectFieldStart(nodeId); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bogus_array"); generator.writeStartObject(); generator.writeEndObject(); generator.writeEndArray(); } boolean isHttpEnabled = rarely() == false; if (isHttpEnabled) { String host = "host" + i; int port = RandomInts.randomIntBetween(getRandom(), 9200, 9299); HttpHost httpHost = new HttpHost(host, port, scheme.toString()); hosts.add(httpHost); generator.writeObjectFieldStart("http"); if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bound_address"); generator.writeString("[fe80::1]:" + port); generator.writeString("[::1]:" + port); generator.writeString("127.0.0.1:" + port); generator.writeEndArray(); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", httpHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } if (getRandom().nextBoolean()) { String[] roles = { "master", "data", "ingest" }; int numRoles = RandomInts.randomIntBetween(getRandom(), 0, 3); Set<String> nodeRoles = new HashSet<>(numRoles); for (int j = 0; j < numRoles; j++) { String role; do { role = RandomPicks.randomFrom(getRandom(), roles); } while (nodeRoles.add(role) == false); } generator.writeArrayFieldStart("roles"); for (String nodeRole : nodeRoles) { generator.writeString(nodeRole); } generator.writeEndArray(); } int numAttributes = RandomInts.randomIntBetween(getRandom(), 0, 3); Map<String, String> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { attributes.put("attr" + j, "value" + j); } if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); } for (Map.Entry<String, String> entry : attributes.entrySet()) { generator.writeStringField(entry.getKey(), entry.getValue()); } if (numAttributes > 0) { generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), hosts); }
From source file:org.elasticsearch.client.sniff.ElasticsearchHostsSnifferTests.java
private static SniffResponse buildSniffResponse(ElasticsearchHostsSniffer.Scheme scheme) throws IOException { int numNodes = RandomNumbers.randomIntBetween(getRandom(), 1, 5); List<HttpHost> hosts = new ArrayList<>(numNodes); JsonFactory jsonFactory = new JsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.writeStartObject();//from w ww .ja v a 2 s. co m if (getRandom().nextBoolean()) { generator.writeStringField("cluster_name", "elasticsearch"); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeObjectFieldStart("nodes"); for (int i = 0; i < numNodes; i++) { String nodeId = RandomStrings.randomAsciiOfLengthBetween(getRandom(), 5, 10); generator.writeObjectFieldStart(nodeId); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bogus_array"); generator.writeStartObject(); generator.writeEndObject(); generator.writeEndArray(); } boolean isHttpEnabled = rarely() == false; if (isHttpEnabled) { String host = "host" + i; int port = RandomNumbers.randomIntBetween(getRandom(), 9200, 9299); HttpHost httpHost = new HttpHost(host, port, scheme.toString()); hosts.add(httpHost); generator.writeObjectFieldStart("http"); if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bound_address"); generator.writeString("[fe80::1]:" + port); generator.writeString("[::1]:" + port); generator.writeString("127.0.0.1:" + port); generator.writeEndArray(); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", httpHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } if (getRandom().nextBoolean()) { String[] roles = { "master", "data", "ingest" }; int numRoles = RandomNumbers.randomIntBetween(getRandom(), 0, 3); Set<String> nodeRoles = new HashSet<>(numRoles); for (int j = 0; j < numRoles; j++) { String role; do { role = RandomPicks.randomFrom(getRandom(), roles); } while (nodeRoles.add(role) == false); } generator.writeArrayFieldStart("roles"); for (String nodeRole : nodeRoles) { generator.writeString(nodeRole); } generator.writeEndArray(); } int numAttributes = RandomNumbers.randomIntBetween(getRandom(), 0, 3); Map<String, String> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { attributes.put("attr" + j, "value" + j); } if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); } for (Map.Entry<String, String> entry : attributes.entrySet()) { generator.writeStringField(entry.getKey(), entry.getValue()); } if (numAttributes > 0) { generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), hosts); }
From source file:org.elasticsearch.client.sniff.ElasticsearchNodesSnifferTests.java
private static SniffResponse buildSniffResponse(ElasticsearchNodesSniffer.Scheme scheme) throws IOException { int numNodes = RandomNumbers.randomIntBetween(getRandom(), 1, 5); List<Node> nodes = new ArrayList<>(numNodes); JsonFactory jsonFactory = new JsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.writeStartObject();/*from w w w.j a va 2 s. c o m*/ if (getRandom().nextBoolean()) { generator.writeStringField("cluster_name", "elasticsearch"); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeObjectFieldStart("nodes"); for (int i = 0; i < numNodes; i++) { String nodeId = RandomStrings.randomAsciiOfLengthBetween(getRandom(), 5, 10); String host = "host" + i; int port = RandomNumbers.randomIntBetween(getRandom(), 9200, 9299); HttpHost publishHost = new HttpHost(host, port, scheme.toString()); Set<HttpHost> boundHosts = new HashSet<>(); boundHosts.add(publishHost); if (randomBoolean()) { int bound = between(1, 5); for (int b = 0; b < bound; b++) { boundHosts.add(new HttpHost(host + b, port, scheme.toString())); } } int numAttributes = between(0, 5); Map<String, List<String>> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { int numValues = frequently() ? 1 : between(2, 5); List<String> values = new ArrayList<>(); for (int v = 0; v < numValues; v++) { values.add(j + "value" + v); } attributes.put("attr" + j, values); } Node node = new Node(publishHost, boundHosts, randomAsciiAlphanumOfLength(5), randomAsciiAlphanumOfLength(5), new Node.Roles(randomBoolean(), randomBoolean(), randomBoolean()), attributes); generator.writeObjectFieldStart(nodeId); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bogus_array"); generator.writeStartObject(); generator.writeEndObject(); generator.writeEndArray(); } boolean isHttpEnabled = rarely() == false; if (isHttpEnabled) { nodes.add(node); generator.writeObjectFieldStart("http"); generator.writeArrayFieldStart("bound_address"); for (HttpHost bound : boundHosts) { generator.writeString(bound.toHostString()); } generator.writeEndArray(); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", publishHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } List<String> roles = Arrays.asList(new String[] { "master", "data", "ingest" }); Collections.shuffle(roles, getRandom()); generator.writeArrayFieldStart("roles"); for (String role : roles) { if ("master".equals(role) && node.getRoles().isMasterEligible()) { generator.writeString("master"); } if ("data".equals(role) && node.getRoles().isData()) { generator.writeString("data"); } if ("ingest".equals(role) && node.getRoles().isIngest()) { generator.writeString("ingest"); } } generator.writeEndArray(); generator.writeFieldName("version"); generator.writeString(node.getVersion()); generator.writeFieldName("name"); generator.writeString(node.getName()); if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); for (Map.Entry<String, List<String>> entry : attributes.entrySet()) { if (entry.getValue().size() == 1) { generator.writeStringField(entry.getKey(), entry.getValue().get(0)); } else { for (int v = 0; v < entry.getValue().size(); v++) { generator.writeStringField(entry.getKey() + "." + v, entry.getValue().get(v)); } } } generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), nodes); }
From source file:com.ntsync.shared.RequestGenerator.java
private static byte[] createHeader(SyncAnchor syncAnchor, String pkgVersion, String clientId, String pwdSaltHexStr, Map<Long, String> newIdMap, boolean syncOnlyGroup, Restrictions restr, boolean explizitPhotoSave) throws HeaderCreateException { ByteArrayOutputStream out = new ByteArrayOutputStream(); try {//ww w. ja v a2 s . com JsonGenerator g = getJsonFactory().createGenerator(out); g.writeStartObject(); g.writeObjectFieldStart(CLIENT_FIELD_NAME); g.writeObjectFieldStart(PARAM_SYNC_ANCHOR); for (Byte contType : syncAnchor.containers()) { long anchor = syncAnchor.getAnchor(contType); if (anchor > 0) { String type = String.valueOf((char) contType.byteValue()); g.writeNumberField(type, anchor); } } g.writeEndObject(); if (syncOnlyGroup) { LOG.info("Sync only ContactGroups"); g.writeBooleanField(PARAM_SYNCONLYGROUP, true); } g.writeStringField(FIELD_SOFTWARE, "Android|" + pkgVersion); // Set ClientId if (clientId != null) { g.writeStringField(PARAM_CLIENTID, clientId); } if (restr != null) { g.writeBooleanField(PARAM_IS_PHOTO_SYNC_ENABLED, restr.isPhotoSyncSupported()); } if (explizitPhotoSave) { g.writeBooleanField(PARAM_FORCE_PHOTO_SAVE, true); } // Set PwdSalt if (pwdSaltHexStr != null) { g.writeStringField(FIELD_PWDSALT, pwdSaltHexStr); } if (newIdMap != null && !newIdMap.isEmpty()) { g.writeObjectFieldStart(TAG_CONTACTIDS); for (Map.Entry<Long, String> idRow : newIdMap.entrySet()) { String serverId = idRow.getValue(); if (serverId != null && serverId.length() > 0) { g.writeStringField(String.valueOf(idRow.getKey()), serverId); } } g.writeEndObject(); } g.writeEndObject(); g.writeEndObject(); g.close(); } catch (IOException ex) { throw new HeaderCreateException(ex); } return out.toByteArray(); }
From source file:eionet.meta.exports.json.VocabularyJSONOutputHelper.java
/** * Writes JSON to output stream./*from ww w . j a v a2 s .c om*/ * <p> * NOTE: For readability purposes, nested blocks are used in this method while generating json contents. * </p> * * @param out * output stream * @param vocabulary * vocabulary base uri * @param concepts * list of vocabulary concepts * @param language * language for the preferred label * @throws java.io.IOException * if error in I/O */ public static void writeJSON(OutputStream out, VocabularyFolder vocabulary, List<VocabularyConcept> concepts, String language) throws IOException { OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8"); JsonFactory f = new JsonFactory(); JsonGenerator generator = f.createGenerator(out); generator.useDefaultPrettyPrinter(); language = StringUtils.trimToNull(language); boolean checkLanguage = StringUtils.isNotBlank(language); List<String> relationalDataElemIdentifiers = new ArrayList<String>(); relationalDataElemIdentifiers.add(BROADER); relationalDataElemIdentifiers.add(NARROWER); // start json object generator.writeStartObject(); // add context generator.writeObjectFieldStart(JSON_LD_CONTEXT); { generator.writeStringField(JSON_LD_BASE, VocabularyFolder.getBaseUri(vocabulary)); generator.writeStringField(VocabularyOutputHelper.LinkedDataNamespaces.SKOS, VocabularyOutputHelper.LinkedDataNamespaces.SKOS_NS); generator.writeStringField(JSON_LD_CONCEPTS, SKOS_CONCEPT); generator.writeStringField(PREF_LABEL, SKOS_PREF_LABEL); for (String dataElemShortIdentifier : relationalDataElemIdentifiers) { generator.writeStringField(dataElemShortIdentifier, DATA_ELEM_MAP.get(dataElemShortIdentifier)); } generator.writeStringField(JSON_LD_LANGUAGE, StringUtils.isNotBlank(language) ? language : DEFAULT_LANGUAGE); } generator.writeEndObject(); // start writing concepts... generator.writeArrayFieldStart(JSON_LD_CONCEPTS); // iterate on concepts for (VocabularyConcept concept : concepts) { generator.writeStartObject(); { generator.writeStringField(JSON_LD_ID, concept.getIdentifier()); generator.writeStringField(JSON_LD_TYPE, SKOS_CONCEPT); // start writing prefLabels generator.writeArrayFieldStart(PREF_LABEL); { String label; String labelLang; if (checkLanguage) { List<DataElement> dataElementValuesByNameAndLang = VocabularyOutputHelper .getDataElementValuesByNameAndLang(SKOS_PREF_LABEL, language, concept.getElementAttributes()); if (dataElementValuesByNameAndLang != null && dataElementValuesByNameAndLang.size() > 0) { label = dataElementValuesByNameAndLang.get(0).getAttributeValue(); labelLang = language; } else { dataElementValuesByNameAndLang = VocabularyOutputHelper .getDataElementValuesByNameAndLang(SKOS_PREF_LABEL, DEFAULT_LANGUAGE, concept.getElementAttributes()); if (dataElementValuesByNameAndLang != null && dataElementValuesByNameAndLang.size() > 0) { label = dataElementValuesByNameAndLang.get(0).getAttributeValue(); } else { label = concept.getLabel(); } labelLang = DEFAULT_LANGUAGE; } generator.writeStartObject(); { generator.writeStringField(JSON_LD_VALUE, label); generator.writeStringField(JSON_LD_LANGUAGE, labelLang); } generator.writeEndObject(); } else { generator.writeStartObject(); { generator.writeStringField(JSON_LD_VALUE, concept.getLabel()); generator.writeStringField(JSON_LD_LANGUAGE, DEFAULT_LANGUAGE); } generator.writeEndObject(); List<DataElement> dataElementValuesByName = VocabularyOutputHelper .getDataElementValuesByName(SKOS_PREF_LABEL, concept.getElementAttributes()); if (dataElementValuesByName != null && dataElementValuesByName.size() > 0) { for (DataElement elem : dataElementValuesByName) { generator.writeStartObject(); { generator.writeStringField(JSON_LD_VALUE, elem.getAttributeValue()); generator.writeStringField(JSON_LD_LANGUAGE, elem.getAttributeLanguage()); } generator.writeEndObject(); } } } } // end writing prefLabels generator.writeEndArray(); // write data elements for (String shortDataElemIdentifier : relationalDataElemIdentifiers) { // check if it has this element List<DataElement> dataElementValuesByName = VocabularyOutputHelper.getDataElementValuesByName( DATA_ELEM_MAP.get(shortDataElemIdentifier), concept.getElementAttributes()); if (dataElementValuesByName != null && dataElementValuesByName.size() > 0) { // start writing element values generator.writeArrayFieldStart(shortDataElemIdentifier); for (DataElement elem : dataElementValuesByName) { generator.writeStartObject(); { generator.writeStringField(JSON_LD_ID, elem.getRelatedConceptIdentifier()); } generator.writeEndObject(); } // end writing element values generator.writeEndArray(); } } } // end writing concept generator.writeEndObject(); } // end of iteration on concepts generator.writeEndArray(); // end of vocabulary name generator.writeEndObject(); // close writer and stream generator.close(); osw.close(); }