// Copy constructor public override CMultimediaLink CopyConstructor() { CMultimediaLinkXref ml = new CMultimediaLinkXref( Gedcom ); ml.m_xref = m_xref; ml.m_sAsid = m_sAsid; return ml; }
// Parser public static new CMultimediaLinkXref Parse( CGedcom gedcom, int level ) { CGedcomLine line; // Temporary holders for class members. Saves constructing a class early. string xref; string asid = ""; // There must be one of these, it defines the object. if ((line = gedcom.GetLine(level, "OBJE")) == null) { // Not one of us return null; } xref = line.LinePointer; // Parsing is going well enough to say that we definitely have one of these, // so we can adjust the gedcom now. gedcom.IncrementLineIndex(1); if( (line = gedcom.GetLine(level+1, "_ASID")) != null ) { asid = line.LineItem; gedcom.IncrementLineIndex(1); } else if( ( line = gedcom.GetLine()).Level > level ) { LogFile.TheLogFile.WriteLine( LogFile.DT_GEDCOM, LogFile.EDebugLevel.Warning, "Unknown tag :" ); LogFile.TheLogFile.WriteLine( LogFile.DT_GEDCOM, LogFile.EDebugLevel.Warning, line.ToString() ); gedcom.IncrementLineIndex(1); } // Parsing went ok. Construct a new object and return it. CMultimediaLinkXref ml = new CMultimediaLinkXref( gedcom ); ml.m_xref = xref; ml.m_sAsid = asid; return ml; }