/// <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); } }