public MetadataTargetRegionMutableObjectCore(IMetadataTargetRegion createdFrom)
			: base(createdFrom)
		{
			this.include  = createdFrom.IsInclude;
		this.report = createdFrom.Report;
		this.metadataTarget = createdFrom.MetadataTarget;
		foreach(IMetadataTargetKeyValues currentKv in createdFrom.Key) 
		{
			key.Add(new MetadataTargetKeyValuesMutableObjectCore(currentKv));
		}
		foreach(IKeyValues currentKv in createdFrom.Attributes) {
			attributes.Add(new KeyValuesMutableImpl(currentKv));
		}
		}
        public MetadataTargetKeyValuesCore(ComponentValueSetType keyValueType, IMetadataTargetRegion parent)
            : base(keyValueType, parent)
        {
            _objectReferences = new List<ICrossReference>();
            _datasetReferences = new List<IDataSetReference>();

            if (keyValueType.DataSet != null)
            {
                foreach (SetReferenceType currentDatasetRef in keyValueType.DataSet)
                {
                    this._datasetReferences.Add(new DataSetReferenceCore(currentDatasetRef, this));
                }
            }
            if (keyValueType.Object != null)
            {
                foreach (ObjectReferenceType currentRef in keyValueType.Object)
                {
                    this._objectReferences.Add(RefUtil.CreateReference(this, currentRef));
                }
            }
        }
        public MetadataTargetKeyValuesCore(IMetadataTargetKeyValuesMutable mutable, IMetadataTargetRegion parent)
            : base(mutable, parent)
        {
            _objectReferences = new List<ICrossReference>();
            _datasetReferences = new List<IDataSetReference>();

            if (mutable.ObjectReferences != null)
            {
                foreach (IStructureReference sRef in mutable.ObjectReferences)
                {
                    this._objectReferences.Add(new CrossReferenceImpl(this, sRef));
                }
            }
            if (mutable.DatasetReferences != null)
            {
                foreach (IDataSetReferenceMutableObject currentRef in mutable.DatasetReferences)
                {
                    this._datasetReferences.Add(new DataSetReferenceCore(currentRef, this));
                }
            }
        }