001package gu.dtalk;
002
003import com.alibaba.fastjson.TypeReference;
004import com.alibaba.fastjson.parser.ParserConfig;
005import com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer;
006
007import gu.simplemq.json.FastJsonInitializer;
008
009/**
010 * fastjson的全局初始化设置
011 * @author guyadong
012 *
013 */
014public class ItemInitializer implements FastJsonInitializer {
015
016        public ItemInitializer() {
017        }
018
019        @Override
020        public void init() {
021                // 增加对Ack对象的序列化支持
022                ParserConfig.global.putDeserializer(new TypeReference<Ack<?>>(){}.getType(), new JavaBeanDeserializer(ParserConfig.global, Ack.class));
023                ParserConfig.global.putDeserializer(new TypeReference<Ack<String>>(){}.getType(), new JavaBeanDeserializer(ParserConfig.global, Ack.class));
024                ParserConfig.global.putDeserializer(new TypeReference<Ack<BaseItem>>(){}.getType(), new JavaBeanDeserializer(ParserConfig.global, Ack.class));
025                // 增加对 item 序列化支持
026                ParserConfig.global.putDeserializer(BaseItem.class, ItemDeserializer.instance);
027                ParserConfig.global.putDeserializer(CmdItem.class, new JavaBeanDeserializer(ParserConfig.global, CmdItem.class));
028                ParserConfig.global.putDeserializer(MenuItem.class, new JavaBeanDeserializer(ParserConfig.global, MenuItem.class));
029
030                // 增加对 option 序列化支持
031                ParserConfig.global.putDeserializer(Base64Option.class, new JavaBeanDeserializer(ParserConfig.global, Base64Option.class));
032                ParserConfig.global.putDeserializer(MACOption.class, new JavaBeanDeserializer(ParserConfig.global, MACOption.class));
033                ParserConfig.global.putDeserializer(IPv4Option.class, new JavaBeanDeserializer(ParserConfig.global, IPv4Option.class));
034                ParserConfig.global.putDeserializer(Base64Option.class, new JavaBeanDeserializer(ParserConfig.global, Base64Option.class));
035                ParserConfig.global.putDeserializer(BoolOption.class, new JavaBeanDeserializer(ParserConfig.global, BoolOption.class));
036                ParserConfig.global.putDeserializer(CheckOption.class, new JavaBeanDeserializer(ParserConfig.global, CheckOption.class));
037                ParserConfig.global.putDeserializer(DateOption.class, new JavaBeanDeserializer(ParserConfig.global, DateOption.class));
038                ParserConfig.global.putDeserializer(FloatOption.class, new JavaBeanDeserializer(ParserConfig.global, FloatOption.class));
039                ParserConfig.global.putDeserializer(IntOption.class, new JavaBeanDeserializer(ParserConfig.global, IntOption.class));
040                ParserConfig.global.putDeserializer(StringOption.class, new JavaBeanDeserializer(ParserConfig.global, StringOption.class));
041                ParserConfig.global.putDeserializer(SwitchOption.class, new JavaBeanDeserializer(ParserConfig.global, SwitchOption.class));
042                ParserConfig.global.putDeserializer(UrlOption.class, new JavaBeanDeserializer(ParserConfig.global, UrlOption.class));
043                ParserConfig.global.putDeserializer(PasswordOption.class, new JavaBeanDeserializer(ParserConfig.global, PasswordOption.class));
044                ParserConfig.global.putDeserializer(ImageOption.class, new JavaBeanDeserializer(ParserConfig.global, ImageOption.class));
045
046        }
047
048}