Files
spring-soap/jackson-simple/src/main/java/com/baeldung/jackson/objectmapper/ObjectMapperBuilder.java
Dhawal Kapil f4fdcdcede JAVA-23379 Fixed test as per JDK 17 (#14484)
* JAVA-23379 Fixed test as per JDK 17

* JAVA-23379 Made SimpleDateFormat local specific
2023-07-26 15:33:04 +05:30

46 lines
1.4 KiB
Java

package com.baeldung.jackson.objectmapper;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.util.Locale;
import java.util.TimeZone;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
public class ObjectMapperBuilder {
private boolean enableIndentation;
private boolean preserveOrder;
private DateFormat dateFormat;
public ObjectMapperBuilder enableIndentation() {
this.enableIndentation = true;
return this;
}
public ObjectMapperBuilder dateFormat() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm a z", Locale.ENGLISH);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone(ZoneId.of("Asia/Kolkata")));
this.dateFormat = simpleDateFormat;
return this;
}
public ObjectMapperBuilder preserveOrder(boolean order) {
this.preserveOrder = order;
return this;
}
public ObjectMapper build() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, this.enableIndentation);
objectMapper.setDateFormat(this.dateFormat);
if (this.preserveOrder) {
objectMapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS);
}
return objectMapper;
}
}