Example #1
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////BUILD FROM IMMUTABLE OBJECT                 //////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////
        #region Constructors and Destructors

        /// <summary>
        /// Initializes a new instance of the <see cref="CubeRegionCore"/> class.
        /// </summary>
        /// <param name="mutable">
        /// The mutable. 
        /// </param>
        /// <param name="parent">
        /// The parent. 
        /// </param>
        public CubeRegionCore(ICubeRegionMutableObject mutable, IContentConstraintObject parent)
            : base(SdmxStructureType.GetFromEnum(SdmxStructureEnumType.CubeRegion), parent)
        {
            this.keyValues = new List<IKeyValues>();
            this.attributeValues = new List<IKeyValues>();
            this.keyValues = new List<IKeyValues>();
            if (ObjectUtil.ValidCollection(mutable.KeyValues))
            {
                foreach (IKeyValuesMutable keyValuesMutable in mutable.KeyValues)
                {
                    if (ObjectUtil.ValidCollection(keyValuesMutable.KeyValues))
                    {
                        this.keyValues.Add(new KeyValuesCore(keyValuesMutable, this));    
                    }
                    
                }
            }

            this.attributeValues = new List<IKeyValues>();
            if (ObjectUtil.ValidCollection(mutable.AttributeValues))
            {
                foreach (IKeyValuesMutable keyValuesMutable in mutable.AttributeValues)
                {
                    if (ObjectUtil.ValidCollection(keyValuesMutable.KeyValues))
                    {
                        this.attributeValues.Add(new KeyValuesCore(keyValuesMutable, this));    
                    }
                }
            }
        }
        /// <summary>
        /// Write CubeRegion
        /// </summary>
        /// <param name="cubeRegion">
        /// The ICubeRegionMutableObject to write
        /// </param>
        /// <param name="isIncluded">
        /// Specifies whether the <paramref name="cubeRegion"/> is included
        /// </param>
        private void WriteCubeRegion(ICubeRegionMutableObject cubeRegion, bool isIncluded)
        {
            if (cubeRegion != null)
            {
                this.WriteStartElement(this._commonPrefix, ElementNameTable.CubeRegion);
                this.WriteAttribute(AttributeNameTable.isIncluded, isIncluded);
                foreach (IKeyValuesMutable member in cubeRegion.KeyValues)
                {
                    this.WriteMember(member, isIncluded);
                }

                this.WriteEndElement();
            }
        }
        /// <summary>
        /// Handle CubeRegion Child elements
        /// </summary>
        /// <param name="parent">
        /// The parent ICubeRegionMutableObject object
        /// </param>
        /// <param name="localName">
        /// The name of the current xml element
        /// </param>
        /// <returns>
        /// The <see cref="StructureReaderBaseV20.ElementActions"/>.
        /// </returns>
        protected ElementActions HandleChildElements(ICubeRegionMutableObject parent, object localName)
        {
            ElementActions actions = null;
            if (NameTableCache.IsElement(localName, ElementNameTable.Member))
            {
                IKeyValuesMutable member = new KeyValuesMutableImpl();

                ////var isIncluded = Helper.TrySetFromAttribute(this.Attributes, AttributeNameTable.isIncluded, true);
                parent.KeyValues.Add(member);
                actions = this.BuildElementActions(member, this.HandleChildElements, this.HandleTextChildElement);
            }

            return actions;
        }