/src/main/java/com/alibaba/fastjson/support/config/FastJsonConfig.java

https://github.com/alibaba/fastjson · Java · 257 lines · 99 code · 45 blank · 113 comment · 3 complexity · de1bb5ae8dbed0bd0d9f78cff3549b03 MD5 · raw file

  1. package com.alibaba.fastjson.support.config;
  2. import com.alibaba.fastjson.parser.Feature;
  3. import com.alibaba.fastjson.parser.ParserConfig;
  4. import com.alibaba.fastjson.parser.deserializer.ParseProcess;
  5. import com.alibaba.fastjson.serializer.SerializeConfig;
  6. import com.alibaba.fastjson.serializer.SerializeFilter;
  7. import com.alibaba.fastjson.serializer.SerializerFeature;
  8. import com.alibaba.fastjson.util.IOUtils;
  9. import java.nio.charset.Charset;
  10. import java.util.Map;
  11. import java.util.Map.Entry;
  12. /**
  13. * Config for FastJson.
  14. *
  15. * @author VictorZeng
  16. * @see SerializeConfig
  17. * @see ParserConfig
  18. * @see ParseProcess
  19. * @see SerializerFeature
  20. * @see SerializeFilter
  21. * @see Feature
  22. * @since 1.2.11
  23. */
  24. public class FastJsonConfig {
  25. /**
  26. * default charset
  27. */
  28. private Charset charset;
  29. /**
  30. * serializeConfig
  31. */
  32. private SerializeConfig serializeConfig;
  33. /**
  34. * parserConfig
  35. */
  36. private ParserConfig parserConfig;
  37. /**
  38. * parseProcess
  39. */
  40. private ParseProcess parseProcess;
  41. /**
  42. * serializerFeatures
  43. */
  44. private SerializerFeature[] serializerFeatures;
  45. /**
  46. * serializeFilters
  47. */
  48. private SerializeFilter[] serializeFilters;
  49. /**
  50. * features
  51. */
  52. private Feature[] features;
  53. /**
  54. * class level serializeFilter
  55. */
  56. private Map<Class<?>, SerializeFilter> classSerializeFilters;
  57. /**
  58. * format date type
  59. */
  60. private String dateFormat;
  61. /**
  62. * The Write content length.
  63. */
  64. private boolean writeContentLength;
  65. /**
  66. * init param.
  67. */
  68. public FastJsonConfig() {
  69. this.charset = IOUtils.UTF8;
  70. this.serializeConfig = SerializeConfig.getGlobalInstance();
  71. this.parserConfig = ParserConfig.getGlobalInstance();
  72. this.serializerFeatures = new SerializerFeature[] {
  73. SerializerFeature.BrowserSecure
  74. };
  75. this.serializeFilters = new SerializeFilter[0];
  76. this.features = new Feature[0];
  77. this.writeContentLength = true;
  78. }
  79. /**
  80. * @return the serializeConfig
  81. */
  82. public SerializeConfig getSerializeConfig() {
  83. return serializeConfig;
  84. }
  85. /**
  86. * @param serializeConfig the serializeConfig to set
  87. */
  88. public void setSerializeConfig(SerializeConfig serializeConfig) {
  89. this.serializeConfig = serializeConfig;
  90. }
  91. /**
  92. * @return the parserConfig
  93. */
  94. public ParserConfig getParserConfig() {
  95. return parserConfig;
  96. }
  97. /**
  98. * @param parserConfig the parserConfig to set
  99. */
  100. public void setParserConfig(ParserConfig parserConfig) {
  101. this.parserConfig = parserConfig;
  102. }
  103. /**
  104. * @return the serializerFeatures
  105. */
  106. public SerializerFeature[] getSerializerFeatures() {
  107. return serializerFeatures;
  108. }
  109. /**
  110. * @param serializerFeatures the serializerFeatures to set
  111. */
  112. public void setSerializerFeatures(SerializerFeature... serializerFeatures) {
  113. this.serializerFeatures = serializerFeatures;
  114. }
  115. /**
  116. * @return the serializeFilters
  117. */
  118. public SerializeFilter[] getSerializeFilters() {
  119. return serializeFilters;
  120. }
  121. /**
  122. * @param serializeFilters the serializeFilters to set
  123. */
  124. public void setSerializeFilters(SerializeFilter... serializeFilters) {
  125. this.serializeFilters = serializeFilters;
  126. }
  127. /**
  128. * @return the features
  129. */
  130. public Feature[] getFeatures() {
  131. return features;
  132. }
  133. /**
  134. * @param features the features to set
  135. */
  136. public void setFeatures(Feature... features) {
  137. this.features = features;
  138. }
  139. /**
  140. * @return the classSerializeFilters
  141. */
  142. public Map<Class<?>, SerializeFilter> getClassSerializeFilters() {
  143. return classSerializeFilters;
  144. }
  145. /**
  146. * @param classSerializeFilters the classSerializeFilters to set
  147. */
  148. public void setClassSerializeFilters(
  149. Map<Class<?>, SerializeFilter> classSerializeFilters) {
  150. if (classSerializeFilters == null)
  151. return;
  152. for (Entry<Class<?>, SerializeFilter> entry : classSerializeFilters.entrySet())
  153. this.serializeConfig.addFilter(entry.getKey(), entry.getValue());
  154. this.classSerializeFilters = classSerializeFilters;
  155. }
  156. /**
  157. * @return the dateFormat
  158. */
  159. public String getDateFormat() {
  160. return dateFormat;
  161. }
  162. /**
  163. * @param dateFormat the dateFormat to set
  164. */
  165. public void setDateFormat(String dateFormat) {
  166. this.dateFormat = dateFormat;
  167. }
  168. /**
  169. * @return the charset
  170. */
  171. public Charset getCharset() {
  172. return charset;
  173. }
  174. /**
  175. * @param charset the charset to set
  176. */
  177. public void setCharset(Charset charset) {
  178. this.charset = charset;
  179. }
  180. /**
  181. * Is write content length boolean.
  182. *
  183. * @return the boolean
  184. */
  185. public boolean isWriteContentLength() {
  186. return writeContentLength;
  187. }
  188. /**
  189. * Sets write content length.
  190. *
  191. * @param writeContentLength the write content length
  192. */
  193. public void setWriteContentLength(boolean writeContentLength) {
  194. this.writeContentLength = writeContentLength;
  195. }
  196. /**
  197. * Gets parse process.
  198. *
  199. * @return the parse process
  200. */
  201. public ParseProcess getParseProcess() {
  202. return parseProcess;
  203. }
  204. /**
  205. * Sets parse process.
  206. *
  207. * @param parseProcess the parse process
  208. */
  209. public void setParseProcess(ParseProcess parseProcess) {
  210. this.parseProcess = parseProcess;
  211. }
  212. }