Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CodeMutableCore"/> class.
        /// </summary>
        /// <param name="reader">
        /// The reader. 
        /// </param>
        public CodeMutableCore(ISdmxReader reader)
            : base(_codeType)
        {
            this.BuildIdentifiableAttributes(reader);

            reader.MoveNextElement();
            while (this.ProcessReader(reader))
            {
                reader.MoveNextElement();
            }
        }
        /// <summary>
        /// The process reader.
        /// </summary>
        /// <param name="reader">
        /// The reader. 
        /// </param>
        /// <returns>
        /// The <see cref="bool"/> . 
        /// </returns>
        protected internal virtual bool ProcessReader(ISdmxReader reader)
        {
            if (reader.CurrentElement.Equals("Annotations"))
            {
                reader.MoveNextElement();
                while (reader.CurrentElement.Equals("Annotation"))
                {
                    this.AddAnnotation(new AnnotationMutableCore(reader));
                }
            }

            return false;
        }
        /// <summary>
        /// The process reader.
        /// </summary>
        /// <param name="reader">
        /// The reader. 
        /// </param>
        /// <returns>
        /// The <see cref="bool"/> . 
        /// </returns>
        protected internal override bool ProcessReader(ISdmxReader reader)
        {
            if (base.ProcessReader(reader))
            {
                return true;
            }

            if (reader.CurrentElement.Equals("Name"))
            {
                string lang = reader.GetAttributeValue("lang", false);
                this.AddName(lang, reader.CurrentElementValue);
                return true;
            }

            if (reader.CurrentElement.Equals("Description"))
            {
                string lang0 = reader.GetAttributeValue("lang", false);
                this.AddDescription(lang0, reader.CurrentElementValue);
                return true;
            }

            return false;
        }
        /// <summary>
        /// The process reader.
        /// </summary>
        /// <param name="reader">
        /// The reader. 
        /// </param>
        /// <returns>
        /// The <see cref="bool"/> . 
        /// </returns>
        protected internal bool ProcessReader(ISdmxReader reader)
        {
            if (reader.CurrentElement.Equals("AnnotationType"))
            {
                this._type = reader.CurrentElementValue;
                return true;
            }

            if (reader.CurrentElement.Equals("AnnotationTitle"))
            {
                this._title = reader.CurrentElementValue;
                return true;
            }

            if (reader.CurrentElement.Equals("AnnotationText"))
            {
                this.AddText(reader.GetAttributeValue("lang", false), reader.CurrentElementValue);
                return true;
            }

            if (reader.CurrentElement.Equals("AnnotationURL"))
            {
                this.uri = new Uri(reader.CurrentElementValue);
                return true;
            }

            return false;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AnnotationMutableCore"/> class.
        /// </summary>
        /// <param name="reader">
        /// The reader. 
        /// </param>
        public AnnotationMutableCore(ISdmxReader reader)
            : base(SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Annotation))
        {
            this._id = reader.GetAttributeValue("id", false);

            reader.MoveNextElement();
            while (this.ProcessReader(reader))
            {
                reader.MoveNextElement();
            }
        }
        /// <summary>
        /// The process reader.
        /// </summary>
        /// <param name="reader">
        /// The reader. 
        /// </param>
        /// <returns>
        /// The <see cref="bool"/> . 
        /// </returns>
        /// <exception cref="SdmxSemmanticException">
        /// Throws Validate exception.
        /// </exception>
        protected internal override bool ProcessReader(ISdmxReader reader)
        {
            if (base.ProcessReader(reader))
            {
                return true;
            }

            if (reader.CurrentElement.Equals("Parent"))
            {
                reader.MoveNextElement();
                if (!reader.CurrentElement.Equals("Ref"))
                {
                    throw new SdmxSemmanticException("Expected 'Ref' as a child node of Parent");
                }

                this.parentCode = reader.GetAttributeValue("id", true);
                return true;
            }

            return false;
        }
 /// <summary>
 /// The build identifiable attributes.
 /// </summary>
 /// <param name="reader">
 /// The reader. 
 /// </param>
 protected internal void BuildIdentifiableAttributes(ISdmxReader reader)
 {
     this._id = reader.GetAttributeValue("id", true);
     string attributeValue = reader.GetAttributeValue("uri", false);
     if (attributeValue != null)
     {
         this.Uri = new Uri(attributeValue);
     }
 }