Clone() public method

Creates a clone of this instance.
public Clone ( ) : object
return object
示例#1
0
        /// <summary>
        /// Creates a clone of this instance.
        /// </summary>
        /// <returns>
        /// A new object that is a copy of this instance.
        /// </returns>
        public object Clone()
        {
            GroupBy clone = new GroupBy();

            clone._by              = _by;
            clone._matchCapture    = _matchCapture;
            clone._customSeparator = _customSeparator;
            clone._separatorType   = _separatorType;
            clone._direction       = _direction;

            if (_innerGroupBy != null)
            {
                clone._innerGroupBy = _innerGroupBy.Clone() as GroupBy;
            }

            return(clone);
        }
示例#2
0
        public void CloneTest()
        {
            GroupBy groupBy = new GroupBy();
            groupBy.By = ElementAttributeType.Name;
            groupBy.AttributeCapture = "(.*)";
            groupBy.CustomSeparator = "\r\nXXX\r\n";
            groupBy.Direction = SortDirection.Descending;
            groupBy.SeparatorType = GroupSeparatorType.Custom;

            GroupBy innerGroupBy = new GroupBy();
            innerGroupBy.By = ElementAttributeType.Type;
            groupBy.InnerGroupBy = innerGroupBy;

            GroupBy clone = groupBy.Clone() as GroupBy;
            Assert.AreEqual(groupBy.By, clone.By, "By was not copied correctly");
            Assert.AreEqual(groupBy.AttributeCapture, clone.AttributeCapture, "AttributeCapture was not copied correctly");
            Assert.AreEqual(groupBy.CustomSeparator, clone.CustomSeparator, "CustomSeparator was not copied correctly");
            Assert.AreEqual(groupBy.Direction, clone.Direction, "Direction was not copied correctly");
            Assert.AreEqual(groupBy.SeparatorType, clone.SeparatorType, "SeparatorType was not copied correctly");
            Assert.IsNotNull(clone.InnerGroupBy, "InnerGroupBy was not copied correctly");
            Assert.AreEqual(groupBy.InnerGroupBy.By, clone.InnerGroupBy.By, "InnerGroupBy was not copied correctly");
        }
示例#3
0
        /// <summary>
        /// Creates a clone of this instance.
        /// </summary>
        /// <returns>Clone of the instance.</returns>
        protected override ConfigurationElement DoClone()
        {
            ElementConfiguration clone = new ElementConfiguration();

            clone._elementType = _elementType;
            clone._id          = _id;

            if (_filterBy != null)
            {
                clone._filterBy = _filterBy.Clone() as FilterBy;
            }

            if (_groupBy != null)
            {
                clone._groupBy = _groupBy.Clone() as GroupBy;
            }

            if (_sortBy != null)
            {
                clone._sortBy = _sortBy.Clone() as SortBy;
            }

            return(clone);
        }
        /// <summary>
        /// Creates a new GroupedInserter using the specified grouping configuration
        /// and sorter.
        /// </summary>
        /// <param name="groupBy">The group by.</param>
        /// <param name="innerInserter">The inner inserter.</param>
        public GroupedInserter(GroupBy groupBy, IElementInserter innerInserter)
        {
            if (groupBy == null)
            {
                throw new ArgumentNullException("groupBy");
            }

            _groupBy = groupBy.Clone() as GroupBy;
            _innerInserter = innerInserter;

            if (!string.IsNullOrEmpty(groupBy.AttributeCapture))
            {
                _captureRegex = new Regex(_groupBy.AttributeCapture);
            }
        }