/////////////////////////////////////////////////////////////////////////////////////////////////// ////////////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; }