///////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////BUILD FROM MUTABLE OBJECTS             //////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////
        #region Constructors and Destructors

        /// <summary>
        /// Initializes a new instance of the <see cref="CategoryMapCore"/> class.
        /// </summary>
        /// <param name="categoryMapMutable"> Category Map object
        /// </param>
        /// <param name="parent">
        /// The parent. 
        /// </param>
        protected internal CategoryMapCore(ICategoryMapMutableObject categoryMapMutable, ISdmxStructure parent)
            : base(categoryMapMutable, parent)
        {
            this.sourceId = new List<string>();
            this.targetId = new List<string>();
            this.alias = categoryMapMutable.Alias;
            if (categoryMapMutable.SourceId != null)
            {
                this.sourceId = new List<string>(categoryMapMutable.SourceId);
            }

            if (categoryMapMutable.TargetId != null)
            {
                this.targetId = new List<string>(categoryMapMutable.TargetId);
            }

            this.Validate();
        }
 /// <summary>
 /// The add category map.
 /// </summary>
 /// <param name="categoryMap">
 /// The category map. 
 /// </param>
 public void AddCategoryMap(ICategoryMapMutableObject categoryMap)
 {
     this.categoryMaps.Add(categoryMap);
 }