public ProvisionAgreementObjectBaseCore(
				IProvisionAgreementObject provisionAgreement,
				IDataflowObjectBase dataflowSuperBean,
				IDataProvider dataProviderBean) : base(provisionAgreement) {
			this._provisionAgreement = provisionAgreement;
			this._dataflowSuper = dataflowSuperBean;
			this._dataProvider = dataProviderBean;
			try {
				Validate();
			} catch (ValidationException e) {
				throw new ValidationException(e,
						"Error creating provision agreement super bean : "
								+ provisionAgreement.Urn);
			}
		}
	    /// <summary>
        /// Remove the given IDataflowObjectBase from this container, do nothing if it is not in this container
        /// </summary>
        /// <param name="dataflowObject"> Dataflow Object </param>
	    public void RemoveDataflow(IDataflowObjectBase dataflowObject)
        {
		    this._dataflows.Remove(dataflowObject);
	    }
	    /// <summary>
        /// Add a IDataflowObjectBase to this container, overwrite if one already exists with the same URN
        /// </summary>
        /// <param name="dataflowObject">Dataflow Object </param>
	    public void AddDataflow(IDataflowObjectBase dataflowObject)
        {
		    if(dataflowObject != null)
            {
			    this._dataflows.Remove(dataflowObject);
			    this._dataflows.Add(dataflowObject);
		    }
	    }
		public DataflowMutableObjectBaseCore(IDataflowObjectBase dataflow) : base(dataflow) {
			if (dataflow.DataStructure != null) {
				this._keyFamily = new DataStructureMutableObjectBaseCore(
						dataflow.DataStructure);
			}
		}