Example #1
0
        /// <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);
        }
Example #3
0
        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);
        }
Example #5
0
        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));
        }
Example #8
0
        public GEDCOMTag TagClass(string tagName, TagConstructor tagConstructor)
        {
            GEDCOMTag result = FindTag(tagName, 0);

            if (result == null)
            {
                result = AddTag(tagName, "", tagConstructor);
            }

            return(result);
        }
Example #9
0
 public void RegisterTag(string key, TagConstructor constructor)
 {
     if (fConstructors.ContainsKey(key))
     {
         fConstructors[key] = constructor;
     }
     else
     {
         fConstructors.Add(key, constructor);
     }
 }
Example #10
0
        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;
        }
Example #11
0
        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;
        }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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);
        }
Example #16
0
        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);
        }
Example #17
0
        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);
        }
Example #18
0
        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);
        }
Example #19
0
        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);
        }
Example #21
0
        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);
        }
Example #22
0
        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);
        }
Example #23
0
        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);
        }
Example #24
0
        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);
        }
Example #25
0
        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);
        }