package com.alibaba.fastjson.support.config; import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.parser.ParserConfig; import com.alibaba.fastjson.serializer.SerializeConfig; import com.alibaba.fastjson.serializer.SerializeFilter; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.util.IOUtils; import java.nio.charset.Charset; import java.util.Map; import java.util.Map.Entry; /** * Config for FastJson. * * @author VictorZeng * @see SerializeConfig * @see ParserConfig * @see SerializerFeature * @see SerializeFilter * @see Feature * @since 1.2.11 */ public class FastJsonConfig { /** * default charset */ private Charset charset; /** * serializeConfig */ private SerializeConfig serializeConfig; /** * parserConfig */ private ParserConfig parserConfig; /** * serializerFeatures */ private SerializerFeature[] serializerFeatures; /** * serializeFilters */ private SerializeFilter[] serializeFilters; /** * features */ private Feature[] features; /** * class level serializeFilter */ private Map<Class<?>, SerializeFilter> classSerializeFilters; /** * format date type */ private String dateFormat; protected boolean writeContentLength = true; /** * init param. */ public FastJsonConfig() { this.charset = Charset.forName("UTF-8"); this.serializeConfig = SerializeConfig.getGlobalInstance(); this.parserConfig = new ParserConfig(); this.serializerFeatures = new SerializerFeature[0]; this.serializeFilters = new SerializeFilter[0]; this.features = new Feature[0]; } /** * @return the serializeConfig */ public SerializeConfig getSerializeConfig() { return serializeConfig; } /** * @param serializeConfig the serializeConfig to set */ public void setSerializeConfig(SerializeConfig serializeConfig) { this.serializeConfig = serializeConfig; } /** * @return the parserConfig */ public ParserConfig getParserConfig() { return parserConfig; } /** * @param parserConfig the parserConfig to set */ public void setParserConfig(ParserConfig parserConfig) { this.parserConfig = parserConfig; } /** * @return the serializerFeatures */ public SerializerFeature[] getSerializerFeatures() { return serializerFeatures; } /** * @param serializerFeatures the serializerFeatures to set */ public void setSerializerFeatures(SerializerFeature... serializerFeatures) { this.serializerFeatures = serializerFeatures; } /** * @return the serializeFilters */ public SerializeFilter[] getSerializeFilters() { return serializeFilters; } /** * @param serializeFilters the serializeFilters to set */ public void setSerializeFilters(SerializeFilter... serializeFilters) { this.serializeFilters = serializeFilters; } /** * @return the features */ public Feature[] getFeatures() { return features; } /** * @param features the features to set */ public void setFeatures(Feature... features) { this.features = features; } /** * @return the classSerializeFilters */ public Map<Class<?>, SerializeFilter> getClassSerializeFilters() { return classSerializeFilters; } /** * @param classSerializeFilters the classSerializeFilters to set */ public void setClassSerializeFilters( Map<Class<?>, SerializeFilter> classSerializeFilters) { if (classSerializeFilters == null) return; for (Entry<Class<?>, SerializeFilter> entry : classSerializeFilters.entrySet()) this.serializeConfig.addFilter(entry.getKey(), entry.getValue()); this.classSerializeFilters = classSerializeFilters; } /** * @return the dateFormat */ public String getDateFormat() { return dateFormat; } /** * @param dateFormat the dateFormat to set */ public void setDateFormat(String dateFormat) { this.dateFormat = dateFormat; } /** * @return the charset */ public Charset getCharset() { return charset; } /** * @param charset the charset to set */ public void setCharset(Charset charset) { this.charset = charset; } public boolean isWriteContentLength() { return writeContentLength; } public void setWriteContentLength(boolean writeContentLength) { this.writeContentLength = writeContentLength; } }