/// <summary>
        /// The get categorisation.
        /// </summary>
        /// <param name="xref">
        /// The xref.
        /// </param>
        /// <param name="structureWriter">
        /// The structure writer.
        /// </param>
        /// <exception cref="ArgumentException">
        /// </exception>
        public virtual void GetCategorisation(IMaintainableRefObject xref, IStructureWritingEngine structureWriter)
        {
            if (structureWriter == null)
            {
                throw new ArgumentException("IStructureWritingEngine can not be null");
            }

            IMaintainableObject bean = this.SdmxObjectRetrievalManager.GetCategorisation(xref);
            structureWriter.WriteStructure(bean);
        }
 /// <summary>
 /// The get agency.
 /// </summary>
 /// <param name="id">
 /// The id.
 /// </param>
 /// <param name="structureWriter">
 /// The structure writer.
 /// </param>
 /// <exception cref="UnsupportedException">
 /// </exception>
 public virtual void GetAgency(string id, IStructureWritingEngine structureWriter)
 {
     throw new UnsupportedException(ExceptionCode.Unsupported);
 }
        /// <summary>
        /// The get maintainable with references.
        /// </summary>
        /// <param name="query">
        /// The query.
        /// </param>
        /// <param name="structureWriter">
        /// The structure writer.
        /// </param>
        /// <exception cref="ArgumentException">
        /// </exception>
        public virtual void GetMaintainableWithReferences(
            IStructureReference query, IStructureWritingEngine structureWriter)
        {
            if (structureWriter == null)
            {
                throw new ArgumentException("IStructureWritingEngine can not be null");
            }

            ISet<IMaintainableObject> mBeans = this.SdmxObjectRetrievalManager.GetMaintainableWithReferences(query);
            ISdmxObjects beans = new SdmxObjectsImpl(null, mBeans);
            structureWriter.WriteStructures(beans);
        }
        /// <summary>
        /// The get structure set beans.
        /// </summary>
        /// <param name="xref">
        /// The xref.
        /// </param>
        /// <param name="structureWriter">
        /// The structure writer.
        /// </param>
        /// <exception cref="ArgumentException">
        /// </exception>
        public virtual void GetStructureSetBeans(IMaintainableRefObject xref, IStructureWritingEngine structureWriter)
        {
            if (structureWriter == null)
            {
                throw new ArgumentException("IStructureWritingEngine can not be null");
            }

            ISet<IStructureSetObject> mBeans = this.SdmxObjectRetrievalManager.GetStructureSetBeans(xref);
            ISdmxObjects beans = new SdmxObjectsImpl(null, mBeans);
            structureWriter.WriteStructures(beans);
        }
        /// <summary>
        /// The get maintainable.
        /// </summary>
        /// <param name="query">
        /// The query.
        /// </param>
        /// <param name="structureWriter">
        /// The structure writer.
        /// </param>
        /// <exception cref="ArgumentException">
        /// </exception>
        public virtual void GetMaintainable(IStructureReference query, IStructureWritingEngine structureWriter)
        {
            if (structureWriter == null)
            {
                throw new ArgumentException("IStructureWritingEngine can not be null");
            }

            IMaintainableObject bean = this.SdmxObjectRetrievalManager.GetMaintainable(query);
            structureWriter.WriteStructure(bean);
        }