示例#1
0
        public override EventBeanWriter GetWriter(string[] properties)
        {
            if (_writablePropertyDescriptors == null)
            {
                InitializeWriters();
            }

            var writers = new JsonEventBeanPropertyWriter[properties.Length];

            for (var i = 0; i < properties.Length; i++)
            {
                writers[i] = GetInternalWriter(properties[i]);
                if (writers[i] == null)
                {
                    return(null);
                }
            }

            return(new JsonEventBeanWriterPerProp(writers));
        }
示例#2
0
        private void InitializeWriters()
        {
            var writeableProps    = new List <EventPropertyDescriptor>();
            var writeablePropsMap = new Dictionary <string, Pair <EventPropertyDescriptor, JsonEventBeanPropertyWriter> >();

            foreach (var prop in PropertyDescriptors)
            {
                var field = _detail.FieldDescriptors.Get(prop.PropertyName);
                if (field == null)
                {
                    continue;
                }

                var eventPropertyWriter = new JsonEventBeanPropertyWriter(_delegate, field);

                writeableProps.Add(prop);
                writeablePropsMap.Put(
                    prop.PropertyName,
                    new Pair <EventPropertyDescriptor, JsonEventBeanPropertyWriter>(prop, eventPropertyWriter));
            }

            _propertyWriters             = writeablePropsMap;
            _writablePropertyDescriptors = writeableProps.ToArray();
        }