Example #1
0
        private bool FillSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property, InternalTypeInfo info,
                                                        object value)
        {
            if (property == null)
            {
                return(false);
            }

            property.ElementType = info.ElementType;

            var analyzer = new ArrayAnalyzer(value);

            // Dimensionen
            var dimensionInfo = analyzer.ArrayInfo.DimensionInfos[0];

            property.LowerBound = dimensionInfo.LowerBound;

            // Items
            foreach (var item in analyzer.GetValues())
            {
                var itemProperty = CreateProperty(null, item);

                property.Items.Add(itemProperty);
            }

            return(true);
        }
        private object createObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            int itemsCount = property.Items.Count;

            Array array = createArrayInstance(property.ElementType, new[] { itemsCount }, new[] { property.LowerBound });

            if (property.Reference != null)
            {
                // property has Reference, only objects referenced multiple times
                // have properties with references. Object must be cached to
                // resolve its references in the future.
                _objectCache.Add(property.Reference.Id, array);
            }

            // Items
            for (int index = property.LowerBound; index < property.LowerBound + itemsCount; index++)
            {
                Property item  = property.Items[index];
                object   value = CreateObject(item);
                if (value != null)
                {
                    array.SetValue(value, index);
                }
            }

            return(array);
        }
        private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            // Element type
            property.ElementType = this._reader.ReadType();

            // Lowerbound
            property.LowerBound = this._reader.ReadNumber();

            this.readItems(property.Items, property.ElementType);
        }
        private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            // ElementType
            property.ElementType = property.Type != null?TypeInfo.GetTypeInfo(property.Type).ElementType : null;

            // LowerBound
            property.LowerBound = _reader.GetAttributeAsInt(Attributes.LowerBound);

            // Items
            foreach (string subElement in _reader.ReadSubElements())
            {
                if (subElement == SubElements.Items)
                {
                    readItems(property.Items, property.ElementType);
                }
            }
        }
Example #5
0
        private object CreateObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            int itemsCount = property.Items.Count;

            var array = CreateArrayInstance(property.ElementType, new[] { itemsCount }, new[] { property.LowerBound });

            if (property.Reference != null)
            {
                _objectCache.Add(property.Reference.Id, array);
            }

            // Items
            for (var index = property.LowerBound; index < property.LowerBound + itemsCount; index++)
            {
                Property item  = property.Items[index];
                var      value = CreateObject(item);
                if (value != null)
                {
                    array.SetValue(value, index);
                }
            }

            return(array);
        }
Example #6
0
        private bool FillSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property, TypeInfo info, object value)
        {
            if (property == null) {
                return false;
            }

            property.ElementType = info.ElementType;

            var analyzer = new ArrayAnalyzer(value);

            // Dimensionen
            var dimensionInfo = analyzer.ArrayInfo.DimensionInfos[0];
            property.LowerBound = dimensionInfo.LowerBound;

            // Items
            foreach (var item in analyzer.GetValues()) {
                var itemProperty = CreateProperty(null, item);

                property.Items.Add(itemProperty);
            }

            return true;
        }
Example #7
0
        private object createObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            var itemsCount = property.Items.Count;

            var array = createArrayInstance(property.ElementType, new[] { itemsCount }, new[] { property.LowerBound });

            // Items
            for (int index = property.LowerBound; index < property.LowerBound + itemsCount; index++)
            {
                var item = property.Items[index];
                var value = CreateObject(item);
                if (value != null)
                {
                    array.SetValue(value, index);
                }
            }

            return array;
        }
Example #8
0
        private object createObjectFromSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            int itemsCount = property.Items.Count;

            Array array = createArrayInstance(property.ElementType, new[] {itemsCount}, new[] {property.LowerBound});

            if (property.Reference != null)
            {
                // property has Reference, only objects referenced multiple times
                // have properties with references. Object must be cached to
                // resolve its references in the future.
                _objectCache.Add(property.Reference.Id, array);
            }

            // Items
            for (int index = property.LowerBound; index < property.LowerBound + itemsCount; index++)
            {
                Property item = property.Items[index];
                object value = CreateObject(item);
                if (value != null)
                {
                    array.SetValue(value, index);
                }
            }

            return array;
        }
        private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            // Element type
            property.ElementType = _reader.ReadType();

            // Lowerbound
            property.LowerBound = _reader.ReadNumber();

            readItems(property.Items, property.ElementType);
        }
        private void parseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            // ElementType
            property.ElementType = property.Type != null ? Polenter.Serialization.Serializing.TypeInfo.GetTypeInfo(property.Type, _simpleTypes).ElementType : null;

            // LowerBound
            property.LowerBound = _reader.GetAttributeAsInt(Attributes.LowerBound);

            // Items
            foreach (string subElement in _reader.ReadSubElements())
            {
                if (subElement == SubElements.Items)
                {
                    readItems(property.Items, property.ElementType);
                }
            }
        }
Example #11
0
        private void ParseSingleDimensionalArrayProperty(SingleDimensionalArrayProperty property)
        {
            // ElementType
            property.ElementType = property.Type != null ? TypeInfo.GetTypeInfo(property.Type).ElementType : null;

            // LowerBound
            property.LowerBound = _reader.GetAttributeAsInt(Attributes.LowerBound);

            // Items
            foreach (var subElement in _reader.ReadSubElements()) {
                if (subElement == SubElements.Items) {
                    ReadItems(property.Items, property.ElementType);
                }
            }
        }
Example #12
0
        private void parseSingleDimensionalArrayProperty(XmlReader reader, SingleDimensionalArrayProperty property)
        {
            // ElementType
            property.ElementType = getElementTypeAttribute(reader);

            // LowerBound
            property.LowerBound = getLowerBoundAttribute(reader);

            // Items
            while (reader.Read())
            {
                if (areItemsFound(reader))
                {
                    using (var subReader = new SubtreeReader(reader))
                    {
                        readItems(subReader.Reader, property.Items, property.ElementType);
                    }
                }
            }
        }