Beispiel #1
0
        public bool Contains(ReferenceTypeFilter item)
        {
            if (item == null || _listTypes.Count == 0)
            {
                return(false);
            }

            return(_listTypes.Contains(item));
        }
        public override ReferenceFilter Clone()
        {
            ReferenceTypeFilter filter = new ReferenceTypeFilter(this);

            if (_listMembers != null)
            {
                filter._listMembers = _listMembers.Clone();
            }

            return(filter);
        }
Beispiel #3
0
        public void Remove(ReferenceTypeFilter item)
        {
            BuildExceptions.NotNull(item, "item");

            if (_listTypes.Count == 0)
            {
                return;
            }

            _listTypes.Remove(item);
        }
Beispiel #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="writer"></param>
        public override void WriteXml(XmlWriter writer)
        {
            BuildExceptions.NotNull(writer, "writer");

            //<namespace name="System" expose="true">
            //  <type name="Object" expose="false">
            //    <member name="ToString" expose="true" />
            //  </type>
            //</namespace>

            bool isExposed = this.Expose;

            writer.WriteStartElement(TagName);
            writer.WriteAttributeString("name", this.Name);
            writer.WriteAttributeString("expose", isExposed.ToString());

            int itemCount = _listTypes == null ? 0 : _listTypes.Count;

            if (isExposed)
            {
                for (int i = 0; i < itemCount; i++)
                {
                    ReferenceTypeFilter typeFilter = _listTypes[i];
                    if (!typeFilter.Expose)
                    {
                        typeFilter.WriteXml(writer);
                    }
                }
            }
            else
            {
                for (int i = 0; i < itemCount; i++)
                {
                    ReferenceTypeFilter typeFilter = _listTypes[i];
                    if (typeFilter.Expose)
                    {
                        typeFilter.WriteXml(writer);
                    }
                }
            }

            writer.WriteEndElement();
        }
 public ReferenceTypeFilter(ReferenceTypeFilter source)
     : base(source)
 {
     _isAttributeType = source._isAttributeType;
     _listMembers     = source._listMembers;
 }
Beispiel #6
0
        public void Add(ReferenceTypeFilter item)
        {
            BuildExceptions.NotNull(item, "item");

            _listTypes.Add(item);
        }
Beispiel #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="reader"></param>
        public override void ReadXml(XmlReader reader)
        {
            BuildExceptions.NotNull(reader, "reader");

            Debug.Assert(reader.NodeType == XmlNodeType.Element);

            if (reader.NodeType != XmlNodeType.Element)
            {
                return;
            }
            if (!String.Equals(reader.Name, TagName,
                               StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            string nodeText = reader.GetAttribute("name");

            if (!String.IsNullOrEmpty(nodeText))
            {
                this.Name = nodeText;
            }
            nodeText = reader.GetAttribute("expose");
            if (!String.IsNullOrEmpty(nodeText))
            {
                this.Expose = Convert.ToBoolean(nodeText);
            }

            if (reader.IsEmptyElement)
            {
                return;
            }

            if (_listTypes == null)
            {
                _listTypes = new BuildList <ReferenceTypeFilter>();
            }

            string      nodeName = null;
            XmlNodeType nodeType = XmlNodeType.None;

            while (reader.Read())
            {
                nodeName = reader.Name;
                nodeType = reader.NodeType;

                if (nodeType == XmlNodeType.Element)
                {
                    if (String.Equals(nodeName, ReferenceTypeFilter.TagName,
                                      StringComparison.OrdinalIgnoreCase))
                    {
                        ReferenceTypeFilter typeFilter = new ReferenceTypeFilter();
                        typeFilter.ReadXml(reader);

                        _listTypes.Add(typeFilter);
                    }
                }
                else if (nodeType == XmlNodeType.EndElement)
                {
                    if (String.Equals(nodeName, TagName,
                                      StringComparison.OrdinalIgnoreCase))
                    {
                        break;
                    }
                }
            }
        }