/// <summary>
        /// Initializes a new instance of the <see cref="MetadataTargetMutableCore"/> class.
        /// </summary>
        /// <param name="objTarget">
        /// The obj target.
        /// </param>
        public MetadataTargetMutableCore(IMetadataTarget objTarget)
            : base(objTarget)
        {
            this._identifiableTarget = new List<IIdentifiableTargetMutableObject>();
            if (objTarget.KeyDescriptorValuesTarget != null)
            {
                this._keyDescriptorValuesTarget =
                    new KeyDescriptorValuesTargetMutableCore(objTarget.KeyDescriptorValuesTarget);
            }

            if (objTarget.DataSetTarget != null)
            {
                this._dataSetTarget = new DataSetTargetMutableCore(objTarget.DataSetTarget);
            }

            if (objTarget.ReportPeriodTarget != null)
            {
                this._reportPeriodTarget = new ReportPeriodTargetMutableCore(objTarget.ReportPeriodTarget);
            }

            if (objTarget.ConstraintContentTarget != null)
            {
                this._constraintContentTarget = new ConstraintContentTargetMutableCore(
                    objTarget.ConstraintContentTarget);
            }

            if (objTarget.IdentifiableTarget != null)
            {
                foreach (IIdentifiableTarget identifiableTarget in objTarget.IdentifiableTarget)
                {
                    this._identifiableTarget.Add(new IdentifiableTargetMutableCore(identifiableTarget));
                }
            }
        }
        ///////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////BUILD FROM MUTABLE OBJECTS             //////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////
        #region Constructors and Destructors

        /// <summary>
        /// Initializes a new instance of the <see cref="ConstraintContentTargetCore"/> class.
        /// </summary>
        /// <param name="parent">
        /// The parent. 
        /// </param>
        /// <param name="itemMutableObject">
        /// The sdmxObject. 
        /// </param>
        public ConstraintContentTargetCore(IMetadataTarget parent, IConstraintContentTargetMutableObject itemMutableObject)
            : base(itemMutableObject, parent)
        {
            this.Validate();
        }