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

        /// <summary>
        /// Initializes a new instance of the <see cref="ConstraintDataKeySetCore"/> class.
        /// </summary>
        /// <param name="mutable">
        /// The mutable. 
        /// </param>
        /// <param name="parent">
        /// The parent. 
        /// </param>
        public ConstraintDataKeySetCore(IConstraintDataKeySetMutableObject mutable, IConstraintObject parent)
            : base(SdmxStructureType.GetFromEnum(SdmxStructureEnumType.ConstrainedDataKeyset), parent)
        {
            this.contstrainedKeys = new List<IConstrainedDataKey>();

            foreach (IConstrainedDataKeyMutableObject each in mutable.ConstrainedDataKeys)
            {
                IConstrainedDataKey cdk = new ConstrainedDataKeyCore(each, this);
                if (ObjectUtil.ValidCollection(cdk.KeyValues))
                {
                    this.contstrainedKeys.Add(cdk);
                }
            }
        }
 public ConstraintDataKeySetCore(MetadataKeySetType mdKeySetType, IConstraintObject parent)
     : base(SdmxStructureType.GetFromEnum(SdmxStructureEnumType.ConstrainedDataKeyset), parent)
 {
     if (mdKeySetType.Key != null)
     {
         foreach (DistinctKeyType currentKey in mdKeySetType.Key)
         {
             IConstrainedDataKey cdk = new ConstrainedDataKeyCore(currentKey, this);
             if (ObjectUtil.ValidCollection(cdk.KeyValues))
             {
                 contstrainedKeys.Add(cdk);
             }
         }
     }
 }
 /// <summary>
 /// The equals.
 /// </summary>
 /// <param name="other">
 /// The other. 
 /// </param>
 /// <returns>
 /// The <see cref="bool"/> . 
 /// </returns>
 protected bool Equals(ConstrainedDataKeyCore other)
 {
     return Equals(this._keyValues, other._keyValues);
 }