//TODO - THIS CAN ALL BE ABSTRACTED public virtual ISet<IProvisionAgreementObject> GetProvisions( IStructureReference provisionRef) { if (provisionRef.TargetReference == Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Dsd)) { ISet<IProvisionAgreementObject> returnSet = new HashSet<IProvisionAgreementObject>(); ISet<IMaintainableObject> keyFamilies = beans .GetMaintinables(Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Dsd)); ISet<IMaintainableObject> dataflows = beans .GetMaintinables(Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Dataflow)); /* foreach */ foreach (IMaintainableObject currentDSD in keyFamilies) { if (provisionRef.IsMatch(currentDSD)) { /* foreach */ foreach (IMaintainableObject currentFlow in dataflows) { IDataflowObject df = (IDataflowObject) currentFlow; if (df.DataStructureRef.IsMatch(currentDSD)) { GetByReference(df).AddAll(returnSet); } } } } return returnSet; } if (provisionRef.TargetReference == Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureType.GetFromEnum(SdmxStructureEnumType.DataProvider)) { ISet<IProvisionAgreementObject> returnSet0 = new HashSet<IProvisionAgreementObject>(); ISet<IMaintainableObject> allProvisions = beans .GetMaintinables(Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureType.GetFromEnum(SdmxStructureEnumType.ProvisionAgreement)); ISet<IMaintainableObject> dataProviderSchemes = beans .GetMaintinables(Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureType.GetFromEnum(SdmxStructureEnumType.DataProviderScheme)); /* foreach */ foreach (IMaintainableObject currentDps in dataProviderSchemes) { if (provisionRef.IsMatch(currentDps)) { /* foreach */ foreach (IMaintainableObject currentProvision in allProvisions) { IProvisionAgreementObject prov = (IProvisionAgreementObject) currentProvision; if (prov.DataproviderRef.IsMatch(currentDps)) { returnSet0.Add(prov); } } } } return returnSet0; } if (provisionRef.TargetReference == Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureType.GetFromEnum(SdmxStructureEnumType.ProvisionAgreement)) { return beans.GetProvisionAgreements(provisionRef .MaintainableReference); } return GetByReference(beans.GetMaintinables(provisionRef .MaintainableStructureType)); }
/// <summary> /// Gets a value indicating whether the reference matches the IMaintainableObject, or one of its indentifiable composites. /// <p/> /// This @object does not require all reference parameters to be set, this method will return true if all the parameters that are set match /// the @object passed in. If this reference is referencing an Identifiable composite, then the maintainable's identifiable composites will also be /// checked to determine if this is a match. /// </summary> /// <param name="reference"> The reference object. </param> /// <returns> /// The <see cref="bool"/> . /// </returns> public bool IsMatch(Org.Sdmxsource.Sdmx.Api.Model.Objects.Base.IMaintainableObject reference) { return(StructureReference.IsMatch(reference)); }