/// <summary>
        /// Initializes a new instance of the <see cref="ComplexAnnotationReferenceCore"/> class.
        /// </summary>
        /// <param name="returnMatchedArtefact">
        /// The return matched artefatc. 
        /// </param>
        /// <param name="queryDetail">
        /// The query detail. 
        /// </param>
        /// <param name="referencesQueryDetail">
        /// The references query detail. 
        /// </param>
        /// <param name="referenceDetail">
        /// The reference detail. 
        /// </param>
        /// <param name="referenceSpecificStructures">
        /// The reference specific structures. 
        /// </param>
        public ComplexStructureQueryMetadataCore(bool returnMatchedArtefact, ComplexStructureQueryDetail queryDetail, 
            ComplexMaintainableQueryDetail referencesQueryDetail, StructureReferenceDetail referenceDetail,
            IList<SdmxStructureType> referenceSpecificStructures) 
        {
		
	  	   this._returnMatchedArtefact = returnMatchedArtefact;
		   if (queryDetail != null) 
           {
	 		this._queryDetail = queryDetail;
	       }

	  	   if (referencesQueryDetail != null)
		   this._referencesQueryDetail = referencesQueryDetail;
		
		   if (referenceDetail == null) 
           {
		    	throw new SdmxSemmanticException("Reference Detail cannot be null.");
	  	   }
		
		  this._referenceDetail = referenceDetail;
		  this._referenceSpecificStructures = referenceSpecificStructures;
	   }
 /// <summary>
 /// Gets a set of maintainable objects which includes the maintainable being queried for, defined by the StructureQueryObject parameter.
 /// </summary>
 /// <param name="complexRef">
 /// The complex Ref.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <param name="allowedDataflows">
 /// The allowed Dataflow.
 /// </param>
 /// <returns>
 /// The <see cref="T:System.Collections.Generic.ISet`1"/> .
 /// </returns>
 public ISet<IMaintainableMutableObject> GetMutableMaintainables(
     IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail, IList<IMaintainableRefObject> allowedDataflows)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets a single DataStructure.
 ///     This expects the ref object either to contain a URN or all the attributes required to uniquely identify the object.
 ///     If version information is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.DataStructure.IDataStructureMutableObject"/> .
 /// </returns>
 public IDataStructureMutableObject GetMutableDataStructure(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableDataStructure(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets DataflowObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all DataflowObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <param name="allowedDataflow">
 /// The allowed Dataflow.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IDataflowMutableObject> GetMutableDataflowObjects(
     IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail, IList<IMaintainableRefObject> allowedDataflow)
 {
     var xref = complexRef.GetMaintainableRefObject();
     return this._retrievalEngineContainer.DataflowRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints(), allowedDataflow);
 }
 /// <summary>
 /// Returns a single Content Constraint, this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The Content constraint.
 /// </returns>
 public IContentConstraintMutableObject GetMutableContentConstraint(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableContentConstraint(complexRef, returnDetail);
 }
        /// <summary>
        /// Gets a single Categorisation, this expects the ref object either to contain
        ///     a URN or all the attributes required to uniquely identify the object.  If version information
        ///     is missing then the latest version is assumed.
        /// </summary>
        /// <param name="complexRef">
        /// The reference object defining the search parameters.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <param name="allowedDataflows">
        /// The allowed Dataflows.
        /// </param>
        /// <returns>
        /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.CategoryScheme.ICategorisationMutableObject"/> .
        /// </returns>
        public ICategorisationMutableObject GetMutableCategorisation(
            IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail, IList<IMaintainableRefObject> allowedDataflows)
        {
            var xref = complexRef.GetMaintainableRefObject();
            if (xref.HasVersion())
            {
                return this._retrievalEngineContainer.CategorisationRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints(), allowedDataflows).FirstOrDefault();
            }

            //// complexRef.GetVersionConstraints() Change this when mapping store is modified to host proper categorisation artefacts
            return this._retrievalEngineContainer.CategorisationRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType, allowedDataflows);
        }
        /// <summary>
        /// Gets StructureSetObjects that match the parameters in the ref @object.  If the ref @object is null or
        ///     has no attributes set, then this will be interpreted as a search for all StructureSetObjects
        /// </summary>
        /// <param name="complexRef">
        /// The reference object defining the search parameters.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <returns>
        /// list of sdmxObjects that match the search criteria
        /// </returns>
        public ISet<IStructureSetMutableObject> GetMutableStructureSetObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
        {
            // 8.12 ISTAT ENHANCEMENT
            var xref = complexRef.GetMaintainableRefObject();
            return this._retrievalEngineContainer.StructureSetRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints());

        }
 /// <summary>
 /// Gets ReportingTaxonomyObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all ReportingTaxonomyObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IReportingTaxonomyMutableObject> GetMutableReportingTaxonomyObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableReportingTaxonomyObjects(complexRef, returnDetail);
 }
Example #9
0
        /// <summary>
        /// Gets a single organization scheme, this expects the ref object either to contain
        ///     a URN or all the attributes required to uniquely identify the object.  If version information
        ///     is missing then the latest version is assumed.
        /// </summary>
        /// <param name="complexRef">
        /// The reference object defining the search parameters.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <returns>
        /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.Base.IOrganisationUnitSchemeMutableObject"/> .
        /// </returns>
        public IOrganisationUnitSchemeMutableObject GetMutableOrganisationUnitScheme(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
        {
            var xref = complexRef.GetMaintainableRefObject();

            return(xref.HasVersion()
                       ? this._retrievalEngineContainer.OrganisationUnitSchemeRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()).FirstOrDefault()
                       : this._retrievalEngineContainer.OrganisationUnitSchemeRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType));
        }
Example #10
0
 /// <summary>
 /// Gets a single MetadataStructure , this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.MetadataStructure.IMetadataStructureDefinitionMutableObject"/> .
 /// </returns>
 public IMetadataStructureDefinitionMutableObject GetMutableMetadataStructure(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     throw new NotImplementedException();
 }
Example #11
0
 /// <summary>
 /// Gets MetadataFlowObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all MetadataFlowObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet <IMetadataFlowMutableObject> GetMutableMetadataflowObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     throw new NotImplementedException();
 }
Example #12
0
        /// <summary>
        /// Gets a set of maintainable objects which includes the maintainable being queried for, defined by the StructureQueryObject parameter.
        /// </summary>
        /// <param name="complexRef">
        /// The complex Ref.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <returns>
        /// The <see cref="T:System.Collections.Generic.ISet`1"/> .
        /// </returns>
        public ISet <IMaintainableMutableObject> GetMutableMaintainables(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
        {
            switch (complexRef.ReferencedStructureType.EnumType)
            {
            case SdmxStructureEnumType.AgencyScheme:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableAgencySchemeObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.DataConsumerScheme:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableDataConsumerSchemeObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.DataProviderScheme:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableDataProviderSchemeObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.Categorisation:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableCategorisationObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.CategoryScheme:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableCategorySchemeObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.CodeList:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableCodelistObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.ConceptScheme:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableConceptSchemeObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.Dataflow:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableDataflowObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.HierarchicalCodelist:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableHierarchicCodeListObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.Dsd:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableDataStructureObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.MetadataFlow:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableMetadataflowObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.Msd:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableMetadataStructureObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.OrganisationUnitScheme:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableOrganisationUnitSchemeObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.Process:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableProcessObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.ReportingTaxonomy:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableReportingTaxonomyObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.StructureSet:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableStructureSetObjects(complexRef, returnDetail)));

            case SdmxStructureEnumType.ProvisionAgreement:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableProvisionAgreementBeans(complexRef, returnDetail)));

            case SdmxStructureEnumType.ContentConstraint:
                return(new HashSet <IMaintainableMutableObject>(this.GetMutableContentConstraintObjects(complexRef, returnDetail)));

            default:
                throw new SdmxNotImplementedException(ExceptionCode.Unsupported, complexRef.ReferencedStructureType);
            }
        }
Example #13
0
        /// <summary>
        /// Gets HierarchicalCodelistObjects that match the parameters in the ref @object.  If the ref @object is null or
        ///     has no attributes set, then this will be interpreted as a search for all HierarchicalCodelistObjects
        /// </summary>
        /// <param name="complexRef">
        /// The reference object defining the search parameters.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <returns>
        /// list of sdmxObjects that match the search criteria
        /// </returns>
        public ISet <IHierarchicalCodelistMutableObject> GetMutableHierarchicCodeListObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
        {
            var xref = complexRef.GetMaintainableRefObject();

            return(this._retrievalEngineContainer.HclRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()));
        }
Example #14
0
        /// <summary>
        /// Gets a single HierarchicCodeList , this expects the ref object either to contain
        ///     a URN or all the attributes required to uniquely identify the object.  If version information
        ///     is missing then the latest version is assumed.
        /// </summary>
        /// <param name="complexRef">
        /// The reference object defining the search parameters.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <returns>
        /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.Codelist.IHierarchicalCodelistMutableObject"/> .
        /// </returns>
        public IHierarchicalCodelistMutableObject GetMutableHierarchicCodeList(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
        {
            var xref = complexRef.GetMaintainableRefObject();

            return(xref.HasVersion()
                       ? this._retrievalEngineContainer.HclRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()).FirstOrDefault()
                       : this._retrievalEngineContainer.HclRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType));
        }
 /// <summary>
 /// Gets MetadataStructureObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all MetadataStructureObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IMetadataStructureDefinitionMutableObject> GetMutableMetadataStructureObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableMetadataStructureObjects(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets a single CategoryScheme , this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.CategoryScheme.ICategorySchemeMutableObject"/> .
 /// </returns>
 public ICategorySchemeMutableObject GetMutableCategoryScheme(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     var xref = complexRef.GetMaintainableRefObject();
     return xref.HasVersion()
                ? this._retrievalEngineContainer.CategorySchemeRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()).FirstOrDefault()
                : this._retrievalEngineContainer.CategorySchemeRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType);
 }
 /// <summary>
 /// Gets a process @object, this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.Process.IProcessMutableObject"/> .
 /// </returns>
 public IProcessMutableObject GetMutableProcessObject(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableProcessObject(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets DataStructureObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all dataStructureObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IDataStructureMutableObject> GetMutableDataStructureObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     var xref = complexRef.GetMaintainableRefObject();
     return this._retrievalEngineContainer.DSDRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints());
 }
Example #19
0
        /// <summary>
        /// Gets DataflowObjects that match the parameters in the ref @object.  If the ref @object is null or
        ///     has no attributes set, then this will be interpreted as a search for all DataflowObjects
        /// </summary>
        /// <param name="complexRef">
        /// The reference object defining the search parameters.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <returns>
        /// list of sdmxObjects that match the search criteria
        /// </returns>
        public ISet <IDataflowMutableObject> GetMutableDataflowObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
        {
            var xref = complexRef.GetMaintainableRefObject();

            return(this._retrievalEngineContainer.DataflowRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()));
        }
 /// <summary>
 /// Gets a single HierarchicCodeList , this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.Codelist.IHierarchicalCodelistMutableObject"/> .
 /// </returns>
 public IHierarchicalCodelistMutableObject GetMutableHierarchicCodeList(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     var xref = complexRef.GetMaintainableRefObject();
     return xref.HasVersion()
                ? this._retrievalEngineContainer.HclRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()).FirstOrDefault()
                : this._retrievalEngineContainer.HclRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType);
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ComplexAnnotationReferenceCore" /> class.
        /// </summary>
        /// <param name="returnMatchedArtefact">The return matched artefact.</param>
        /// <param name="processConstraints">if set to <c>true</c> [process constraints].</param>
        /// <param name="queryDetail">The query detail.</param>
        /// <param name="referencesQueryDetail">The references query detail.</param>
        /// <param name="referenceDetail">The reference detail.</param>
        /// <param name="referenceSpecificStructures">The reference specific structures.</param>
        public ComplexStructureQueryMetadataCore(bool returnMatchedArtefact, bool processConstraints, ComplexStructureQueryDetail queryDetail,
            ComplexMaintainableQueryDetail referencesQueryDetail, StructureReferenceDetail referenceDetail,
            IList<SdmxStructureType> referenceSpecificStructures)

            : this(returnMatchedArtefact, queryDetail, referencesQueryDetail, referenceDetail, referenceSpecificStructures)
        {
            this._processConstraints = processConstraints;
        }
 /// <summary>
 /// Gets HierarchicalCodelistObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all HierarchicalCodelistObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IHierarchicalCodelistMutableObject> GetMutableHierarchicCodeListObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     var xref = complexRef.GetMaintainableRefObject();
     return this._retrievalEngineContainer.HclRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints());
 }
 /// <summary>
 /// Gets a single CategoryScheme , this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.CategoryScheme.ICategorySchemeMutableObject"/> .
 /// </returns>
 public ICategorySchemeMutableObject GetMutableCategoryScheme(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableCategoryScheme(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets a set of maintainable objects which includes the maintainable being queried for, defined by the StructureQueryObject parameter.
 /// </summary>
 /// <param name="complexRef">
 /// The complex Ref.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:System.Collections.Generic.ISet`1"/> .
 /// </returns>
 public ISet<IMaintainableMutableObject> GetMutableMaintainables(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     switch (complexRef.ReferencedStructureType.EnumType)
     {
         case SdmxStructureEnumType.AgencyScheme:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableAgencySchemeObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.DataConsumerScheme:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableDataConsumerSchemeObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.DataProviderScheme:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableDataProviderSchemeObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.Categorisation:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableCategorisationObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.CategoryScheme:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableCategorySchemeObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.CodeList:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableCodelistObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.ConceptScheme:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableConceptSchemeObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.Dataflow:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableDataflowObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.HierarchicalCodelist:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableHierarchicCodeListObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.Dsd:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableDataStructureObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.MetadataFlow:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableMetadataflowObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.Msd:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableMetadataStructureObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.OrganisationUnitScheme:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableOrganisationUnitSchemeObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.Process:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableProcessObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.ReportingTaxonomy:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableReportingTaxonomyObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.StructureSet:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableStructureSetObjects(complexRef, returnDetail));
         case SdmxStructureEnumType.ProvisionAgreement:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableProvisionAgreementBeans(complexRef, returnDetail));
         case SdmxStructureEnumType.ContentConstraint:
             return new HashSet<IMaintainableMutableObject>(this.GetMutableContentConstraintObjects(complexRef, returnDetail));
         default:
             throw new SdmxNotImplementedException(ExceptionCode.Unsupported, complexRef.ReferencedStructureType);
     }
 }
 /// <summary>
 /// Gets a single Dataflow , this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <param name="allowedDataflow">
 /// The allowed Dataflow.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.DataStructure.IDataflowMutableObject"/> .
 /// </returns>
 public IDataflowMutableObject GetMutableDataflow(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail, IList<IMaintainableRefObject> allowedDataflow)
 {
     var xref = complexRef.GetMaintainableRefObject();
     return xref.HasVersion()
                ? this._retrievalEngineContainer.DataflowRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints(), allowedDataflow).FirstOrDefault()
                : this._retrievalEngineContainer.DataflowRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType, allowedDataflow);
 }
 /// <summary>
 /// Gets a single MetadataStructure , this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.MetadataStructure.IMetadataStructureDefinitionMutableObject"/> .
 /// </returns>
 public IMetadataStructureDefinitionMutableObject GetMutableMetadataStructure(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets DataProviderSchemeMutableObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all CodelistObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IDataProviderSchemeMutableObject> GetMutableDataProviderSchemeObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableDataProviderSchemeObjects(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets MetadataFlowObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all MetadataFlowObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IMetadataFlowMutableObject> GetMutableMetadataflowObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets HierarchicalCodelistObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all HierarchicalCodelistObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IHierarchicalCodelistMutableObject> GetMutableHierarchicCodeListObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableHierarchicCodeListObjects(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets a process @object, this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.Process.IProcessMutableObject"/> .
 /// </returns>
 public IProcessMutableObject GetMutableProcessObject(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets a single Metadataflow , this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.MetadataStructure.IMetadataFlowMutableObject"/> .
 /// </returns>
 public IMetadataFlowMutableObject GetMutableMetadataflow(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableMetadataflow(complexRef, returnDetail);
 }
 /// <summary>
 /// Returns ProvisionAgreement beans that match the parameters in the ref bean. If the ref bean is null or
 ///     has no attributes set, then this will be interpreted as a search for all ProvisionAgreement beans.
 /// </summary>
 /// <param name="complexRef">
 /// the reference object defining the search parameters, can be empty or null
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of objects that match the search criteria
 /// </returns>
 public ISet<IProvisionAgreementMutableObject> GetMutableProvisionAgreementBeans(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets OrganisationUnitSchemeMutableObject that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all OrganisationUnitSchemeMutableObject
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IOrganisationUnitSchemeMutableObject> GetMutableOrganisationUnitSchemeObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableOrganisationUnitSchemeObjects(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets ReportingTaxonomyObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all ReportingTaxonomyObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IReportingTaxonomyMutableObject> GetMutableReportingTaxonomyObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Returns ProvisionAgreement beans that match the parameters in the ref bean. If the ref bean is null or
 ///     has no attributes set, then this will be interpreted as a search for all ProvisionAgreement beans.
 /// </summary>
 /// <param name="complexRef">
 /// the reference object defining the search parameters, can be empty or null
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of objects that match the search criteria
 /// </returns>
 public ISet<IProvisionAgreementMutableObject> GetMutableProvisionAgreementBeans(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableProvisionAgreementBeans(complexRef, returnDetail);
 }
 /// <summary>
 /// Gets a structure set @object, this expects the ref object either to contain
 ///     a URN or all the attributes required to uniquely identify the object.  If version information
 ///     is missing then the latest version is assumed.
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.Mapping.IStructureSetMutableObject"/> .
 /// </returns>
 public IStructureSetMutableObject GetMutableStructureSet(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     // 8.11 ISTAT ENHANCEMENT
     var xref = complexRef.GetMaintainableRefObject();
     return xref.HasVersion()
                ? this._retrievalEngineContainer.StructureSetRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()).FirstOrDefault()
                : this._retrievalEngineContainer.StructureSetRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType);
 }
 /// <summary>
 /// Gets StructureSetObjects that match the parameters in the ref @object.  If the ref @object is null or
 ///     has no attributes set, then this will be interpreted as a search for all StructureSetObjects
 /// </summary>
 /// <param name="complexRef">
 /// The reference object defining the search parameters.
 /// </param>
 /// <param name="returnDetail">
 /// The return Detail.
 /// </param>
 /// <returns>
 /// list of sdmxObjects that match the search criteria
 /// </returns>
 public ISet<IStructureSetMutableObject> GetMutableStructureSetObjects(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
 {
     return this._retrievalManager.GetMutableStructureSetObjects(complexRef, returnDetail);
 }
Example #38
0
        /// <summary>
        /// Gets a single Categorisation, this expects the ref object either to contain
        ///     a URN or all the attributes required to uniquely identify the object.  If version information
        ///     is missing then the latest version is assumed.
        /// </summary>
        /// <param name="complexRef">
        /// The reference object defining the search parameters.
        /// </param>
        /// <param name="returnDetail">
        /// The return Detail.
        /// </param>
        /// <returns>
        /// The <see cref="T:Org.Sdmxsource.Sdmx.Api.Model.Mutable.CategoryScheme.ICategorisationMutableObject"/> .
        /// </returns>
        public ICategorisationMutableObject GetMutableCategorisation(IComplexStructureReferenceObject complexRef, ComplexStructureQueryDetail returnDetail)
        {
            var xref = complexRef.GetMaintainableRefObject();

            if (xref.HasVersion())
            {
                return(this._retrievalEngineContainer.CategorisationRetrievalEngine.Retrieve(xref, returnDetail.EnumType, complexRef.GetVersionConstraints()).FirstOrDefault());
            }

            //// TODO Change this when mapping store is modified to host proper categorisation artefacts
            return(this._retrievalEngineContainer.CategorisationRetrievalEngine.RetrieveLatest(xref, returnDetail.EnumType));
        }