objectMapper = new ObjectMapper(jsonFactory);
}
for (final Map.Entry<String, String> e : serializationFeatures.entrySet()) {
final String key = e.getKey();
final String value = e.getValue();
final SerializationFeature feature;
try {
feature = SerializationFeature.valueOf(key);
} catch (final Exception e1) {
throw SupportLogger.LOGGER.unrecognizedReaderWriterProperty(key, value);
}
if ("true".equals(value)) {
if (!feature.enabledByDefault()) {
objectMapper.configure(feature, true);
}
} else if ("false".equals(value)) {
if (feature.enabledByDefault()) {
objectMapper.configure(feature, false);
}
} else {
throw SupportLogger.LOGGER.invalidReaderWriterProperty(value, key);
}
}
}
registerModule();
jsonGenerator = jsonFactory.createGenerator(getOutputWriter(writeMode, stepContext));
if (objectMapper != null) {
jsonGenerator.setCodec(objectMapper);
}
SupportLogger.LOGGER.openingResource(resource, this.getClass());
if (jsonGeneratorFeatures != null) {
for (final Map.Entry<String, String> e : jsonGeneratorFeatures.entrySet()) {
final String key = e.getKey();
final String value = e.getValue();
final JsonGenerator.Feature feature;
try {
feature = JsonGenerator.Feature.valueOf(key);
} catch (final Exception e1) {
throw SupportLogger.LOGGER.unrecognizedReaderWriterProperty(key, value);
}
if ("true".equals(value)) {
if (!feature.enabledByDefault()) {
jsonGenerator.configure(feature, true);
}
} else if ("false".equals(value)) {
if (feature.enabledByDefault()) {
jsonGenerator.configure(feature, false);
}
} else {
throw SupportLogger.LOGGER.invalidReaderWriterProperty(value, key);
}