/// <summary> /// The assemble scheme map. /// </summary> /// <param name="assembleInto"> /// The assemble into. /// </param> /// <param name="assembleFrom"> /// The assemble from. /// </param> public void AssembleSchemeMap(ItemSchemeMapType assembleInto, IItemSchemeMapObject assembleFrom) { // Populate it from inherited super this.AssembleMap(assembleInto, assembleFrom); //// Populate it using this class's specifics //// Child maps foreach (IItemMap eachMapBean in assembleFrom.Items) { // Defer child creation to subclass ItemAssociationType newMap = this.CreateNewMap(assembleInto); //// Annotations //// TODO RSG AWAITING MODEL CHANGES //// if(ObjectUtil.validCollection(eachMapBean.getAnnotations())) { //// newMap.setAnnotations(getAnnotationsType(eachMapBean)); //// } //// Common source and target id allocation LocalItemReferenceType sourceItemReference = this.CreateSourceItemReference(newMap); LocalItemReferenceType targetItemReference = this.CreateTargetItemReference(newMap); RefBaseType newSourceRef = this.CreateItemRef(sourceItemReference); newSourceRef.id = eachMapBean.SourceId; RefBaseType newTargetRef = this.CreateItemRef(targetItemReference); newTargetRef.id = eachMapBean.TargetId; SdmxStructureType stype = this.MapStructureType(); if (stype != null) { newSourceRef.@class = XmlobjectsEnumUtil.BuildV21(stype); newTargetRef.@class = XmlobjectsEnumUtil.BuildV21(stype); } } }
/// <summary> /// The assemble map. /// </summary> /// <param name="assembleInto"> /// The assemble into. /// </param> /// <param name="assembleFrom"> /// The assemble from. /// </param> public void AssembleMap(ItemSchemeMapType assembleInto, ISchemeMapObject assembleFrom) { // Populate it from inherited super this.AssembleNameable(assembleInto, assembleFrom); ItemSchemeReferenceBaseType sourceReference = this.CreateSourceReference(assembleInto); ItemSchemeReferenceBaseType targetReference = this.CreateTargetReference(assembleInto); ItemSchemeRefBaseType sourceRef = this.CreateRef(sourceReference); ItemSchemeRefBaseType targetRef = this.CreateRef(targetReference); this.SetReference(sourceRef, assembleFrom.SourceRef); this.SetReference(targetRef, assembleFrom.TargetRef); }
/// <summary> /// Create the target reference. /// </summary> /// <param name="assembleInto"> /// The assemble into. /// </param> /// <returns> /// The <see cref="ItemSchemeReferenceBaseType"/>. /// </returns> protected abstract ItemSchemeReferenceBaseType CreateTargetReference(ItemSchemeMapType assembleInto);
/// <summary> /// Create the new map. /// </summary> /// <param name="assembleInto"> /// The assemble into. /// </param> /// <returns> /// The <see cref="ItemAssociationType"/>. /// </returns> protected internal abstract ItemAssociationType CreateNewMap(ItemSchemeMapType assembleInto);