/// <summary> /// Adding nested sub-tags. /// </summary> /// <param name="tagName">A name of sub-tag.</param> /// <param name="tagValue">A string value of sub-tag.</param> /// <param name="tagConstructor">The default constructor of sub-tag.</param> /// <returns></returns> public virtual GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag tag = null; try { if (tagConstructor != null) { tag = tagConstructor(fOwner, this, tagName, tagValue); } else { tag = GEDCOMFactory.GetInstance().CreateTag(fOwner, this, tagName, tagValue); if (tag == null) { tag = new GEDCOMTag(fOwner, this, tagName, tagValue); } } InsertTag(tag); } catch (Exception ex) { Logger.LogWrite("GEDCOMTag.AddTag(): " + ex.Message); } return(tag); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "NAME") { result = base.AddTag(tagName, tagValue, null); } else if (tagName == "_STARTDATE" || tagName == "_STOPDATE") { result = base.AddTag(tagName, tagValue, GEDCOMDate.Create); } else if (tagName == "_TASK") { result = fTasks.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else if (tagName == "_COMM") { result = fCommunications.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else if (tagName == "_GROUP") { result = fGroups.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "PHON") { result = (fPhoneList.Add(new GEDCOMTag(Owner, this, tagName, tagValue))); result.SetLevel(Level); } else if (tagName == "EMAIL") { result = (fEmailList.Add(new GEDCOMTag(Owner, this, tagName, tagValue))); result.SetLevel(Level); } else if (tagName == "FAX") { result = (fFaxList.Add(new GEDCOMTag(Owner, this, tagName, tagValue))); result.SetLevel(Level); } else if (tagName == "WWW") { result = (fWWWList.Add(new GEDCOMTag(Owner, this, tagName, tagValue))); result.SetLevel(Level); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "HUSB" || tagName == "WIFE") { result = base.AddTag(tagName, tagValue, GEDCOMPointer.Create); } else if (tagName == "CHIL") { result = fChildren.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else { result = fTagsFactory.CreateTag(Owner, this, tagName, tagValue); if (result != null) { if (result is GEDCOMFamilyEvent) { result = AddEvent(result as GEDCOMFamilyEvent); } else if (result is GEDCOMSpouseSealing) { result = fSpouseSealings.Add(result as GEDCOMSpouseSealing); } } else { result = base.AddTag(tagName, tagValue, tagConstructor); } } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "CHAN") { result = base.AddTag(tagName, tagValue, GEDCOMChangeDate.Create); } else if (tagName == "NOTE") { result = fNotes.Add(new GEDCOMNotes(Owner, this, tagName, tagValue)); } else if (tagName == "SOUR") { result = fSourceCitations.Add(new GEDCOMSourceCitation(Owner, this, tagName, tagValue)); } else if (tagName == "OBJE") { result = fMultimediaLinks.Add(new GEDCOMMultimediaLink(Owner, this, tagName, tagValue)); } else if (tagName == "REFN") { result = fUserReferences.Add(new GEDCOMUserReference(Owner, this, tagName, tagValue)); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public void Test_AddTag() { const string tagName = "BABA"; const string tagValue = "YAGA"; TagConstructor tagConstructor = null; GEDCOMAddress instance = (GEDCOMAddress)GEDCOMAddress.Create(null, null, "", ""); GEDCOMTag result = instance.AddTag(tagName, tagValue, tagConstructor); Assert.IsNotNull(instance.FindTag(tagName, 0)); }
public void testAddTag() { string tagName = "TYPE"; string tagValue = "gibber"; TagConstructor tagConstructor = null; GEDCOMPersonalName instance = new GEDCOMPersonalName(null, null, "", ""); instance.AddTag(tagName, tagValue, tagConstructor); Assert.IsNotNull(instance.FindTag(tagName, 0)); }
public GEDCOMTag TagClass(string tagName, TagConstructor tagConstructor) { GEDCOMTag result = FindTag(tagName, 0); if (result == null) { result = AddTag(tagName, "", tagConstructor); } return(result); }
public void RegisterTag(string key, TagConstructor constructor) { if (fConstructors.ContainsKey(key)) { fConstructors[key] = constructor; } else { fConstructors.Add(key, constructor); } }
public static void RegisterTag(GEDCOMTagType tag, string tagName, TagConstructor constructor, AddTagHandler addHandler = null, SaveTagHandler saveHandler = null, bool skipEmpty = false) { GEDCOMTagProps tagProps = RegisterTag(tag, tagName); tagProps.Constructor = constructor; tagProps.AddHandler = addHandler; tagProps.SaveHandler = saveHandler; tagProps.SkipEmpty = skipEmpty; }
public GEDCOMTagProps(int tagId, string tagName, TagConstructor constructor, AddTagHandler addHandler, SaveTagHandler saveHandler, bool skipEmpty) { TagId = tagId; TagName = tagName; Constructor = constructor; AddHandler = addHandler; SaveHandler = saveHandler; SkipEmpty = skipEmpty; }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "SOUR") { result = fSourceCitations.Add(new GEDCOMSourceCitation(Owner, this, tagName, tagValue)); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "SUBM") { result = base.AddTag(tagName, tagValue, GEDCOMPointer.Create); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "TYPE" || tagName == "FONE" || tagName == "ROMN" || tagName == "_LANG") { result = base.AddTag(tagName, tagValue, tagConstructor); } else { result = fPieces.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "FILE") { result = fFileReferences.Add(new GEDCOMFileReference(Owner, this, tagName, tagValue)); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "EVEN") { result = fEvents.Add(new GEDCOMEvent(Owner, this, tagName, tagValue)); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "_STARTDATE" || tagName == "_STOPDATE") { result = base.AddTag(tagName, tagValue, GEDCOMDate.Create); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "PHON" || tagName == "EMAIL" || tagName == "FAX" || tagName == "WWW") { result = Address.AddTag(tagName, tagValue, tagConstructor); } else { // define "PLAC", "ADDR", "DATE" by default result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public void Test_GEDCOMFactory() { TagConstructor tagConst = TagConstructorTest; Assert.AreEqual(null, tagConst.Invoke(null, 0, "x")); // GDMTag tag = GEDCOMProvider.CreateTag(null, (int)GEDCOMTagType.DATE, ""); Assert.IsNotNull(tag); tag = GEDCOMProvider.CreateTag(null, GEDCOMTagsTable.Lookup("TEST"), ""); Assert.IsNotNull(tag); Assert.AreEqual("TEST", tag.GetTagName()); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "STAT") { result = base.AddTag(tagName, tagValue, GEDCOMDateStatus.Create); } else { // define "DATE" by default result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public static GEDCOMTagProps RegisterTag(GEDCOMTagType tag, string tagName, TagConstructor constructor = null, AddTagHandler addHandler = null, SaveTagHandler saveHandler = null, bool skipEmpty = false) { GEDCOMTagProps tagProps; if (!fDictionary.TryGetValue(tagName, out tagProps)) { int tagId = (int)tag; tagProps = new GEDCOMTagProps(tagId, tagName, constructor, addHandler, saveHandler, skipEmpty); fDictionary.Add(tagName, tagProps); fList[tagId] = tagProps; } return(tagProps); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "REPO") { result = fRepositoryCitations.Add(new GEDCOMRepositoryCitation(Owner, this, tagName, tagValue)); } else if (tagName == "DATA") { result = base.AddTag(tagName, tagValue, GEDCOMData.Create); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "NAME") { result = base.AddTag(tagName, tagValue, null); } else if (tagName == "_MEMBER") { result = fMembers.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else { result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "NAME") { result = base.AddTag(tagName, tagValue, GEDCOMPersonalName.Create); } else if (tagName == "PHON" || tagName == "EMAIL" || tagName == "FAX" || tagName == "WWW") { result = Address.AddTag(tagName, tagValue, tagConstructor); } else if (tagName == "LANG") { result = AddLanguage(new GEDCOMLanguage(Owner, this, tagName, tagValue)); } else { // "ADDR" defines by default result = base.AddTag(tagName, tagValue, tagConstructor); } return(result); }
public override GEDCOMTag AddTag(string tagName, string tagValue, TagConstructor tagConstructor) { GEDCOMTag result; if (tagName == "NAME") { result = AddPersonalName(new GEDCOMPersonalName(Owner, this, tagName, tagValue)); } else if (tagName == "SUBM") { result = Submittors.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else if (tagName == "ANCI") { result = AncestorsInterest.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else if (tagName == "DESI") { result = DescendantsInterest.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else if (tagName == "_GROUP") { result = fGroups.Add(new GEDCOMPointer(Owner, this, tagName, tagValue)); } else { result = fTagsFactory.CreateTag(Owner, this, tagName, tagValue); if (result != null) { if (result is GEDCOMChildToFamilyLink) { result = ChildToFamilyLinks.Add(result as GEDCOMChildToFamilyLink); } else if (result is GEDCOMSpouseToFamilyLink) { result = SpouseToFamilyLinks.Add(result as GEDCOMSpouseToFamilyLink); } else if (result is GEDCOMIndividualOrdinance) { result = IndividualOrdinances.Add(result as GEDCOMIndividualOrdinance); } else if (result is GEDCOMAssociation) { result = Associations.Add(result as GEDCOMAssociation); } else if (result is GEDCOMIndividualEvent) { result = AddEvent(result as GEDCOMCustomEvent); } else if (result is GEDCOMIndividualAttribute) { result = AddEvent(result as GEDCOMCustomEvent); } else if (result is GEDCOMAlias) { result = Aliases.Add(result as GEDCOMAlias); } } else { result = base.AddTag(tagName, tagValue, tagConstructor); } } return(result); }