@@ -40,13 +40,13 @@  | 
                                                    ||
| 40 | 40 |      { | 
                                                        
| 41 | 41 | $head = $gedcom->getHead();  | 
                                                        
| 42 | 42 | $subn = $gedcom->getSubn();  | 
                                                        
| 43 | - $subms = $gedcom->getSubm(); // array()  | 
                                                        |
| 44 | - $sours = $gedcom->getSour(); // array()  | 
                                                        |
| 45 | - $indis = $gedcom->getIndi(); // array()  | 
                                                        |
| 46 | - $fams = $gedcom->getFam(); // array()  | 
                                                        |
| 47 | - $notes = $gedcom->getNote(); // array()  | 
                                                        |
| 48 | - $repos = $gedcom->getRepo(); // array()  | 
                                                        |
| 49 | - $objes = $gedcom->getObje(); // array()  | 
                                                        |
| 43 | + $subms = $gedcom->getSubm(); // array()  | 
                                                        |
| 44 | + $sours = $gedcom->getSour(); // array()  | 
                                                        |
| 45 | + $indis = $gedcom->getIndi(); // array()  | 
                                                        |
| 46 | + $fams = $gedcom->getFam(); // array()  | 
                                                        |
| 47 | + $notes = $gedcom->getNote(); // array()  | 
                                                        |
| 48 | + $repos = $gedcom->getRepo(); // array()  | 
                                                        |
| 49 | + $objes = $gedcom->getObje(); // array()  | 
                                                        |
| 50 | 50 | |
| 51 | 51 | $output = '0 FORMAT '.$format."\n";  | 
                                                        
| 52 | 52 | |
@@ -121,21 +121,21 @@  | 
                                                    ||
| 121 | 121 | }  | 
                                                        
| 122 | 122 | |
| 123 | 123 |              switch ($recordType) { | 
                                                        
| 124 | - case 'CONT':  | 
                                                        |
| 125 | - $data .= "\n";  | 
                                                        |
| 124 | + case 'CONT':  | 
                                                        |
| 125 | + $data .= "\n";  | 
                                                        |
| 126 | 126 | |
| 127 | -                if (isset($record[2])) { | 
                                                        |
| 128 | - $data .= trim($record[2]);  | 
                                                        |
| 129 | - }  | 
                                                        |
| 130 | - break;  | 
                                                        |
| 131 | - case 'CONC':  | 
                                                        |
| 132 | -                if (isset($record[2])) { | 
                                                        |
| 133 | - $data .= ' '.trim($record[2]);  | 
                                                        |
| 134 | - }  | 
                                                        |
| 135 | - break;  | 
                                                        |
| 136 | - default:  | 
                                                        |
| 137 | - $this->back();  | 
                                                        |
| 138 | - break 2;  | 
                                                        |
| 127 | +                    if (isset($record[2])) { | 
                                                        |
| 128 | + $data .= trim($record[2]);  | 
                                                        |
| 129 | + }  | 
                                                        |
| 130 | + break;  | 
                                                        |
| 131 | + case 'CONC':  | 
                                                        |
| 132 | +                    if (isset($record[2])) { | 
                                                        |
| 133 | + $data .= ' '.trim($record[2]);  | 
                                                        |
| 134 | + }  | 
                                                        |
| 135 | + break;  | 
                                                        |
| 136 | + default:  | 
                                                        |
| 137 | + $this->back();  | 
                                                        |
| 138 | + break 2;  | 
                                                        |
| 139 | 139 | }  | 
                                                        
| 140 | 140 | |
| 141 | 141 | $this->forward();  | 
                                                        
@@ -40,59 +40,59 @@  | 
                                                    ||
| 40 | 40 | }  | 
                                                        
| 41 | 41 | |
| 42 | 42 |              switch ($recordType) { | 
                                                        
| 43 | - case 'TYPE':  | 
                                                        |
| 44 | - $even->setType(trim($record[2]));  | 
                                                        |
| 45 | - break;  | 
                                                        |
| 46 | - case 'DATE':  | 
                                                        |
| 47 | - $dat = \Gedcom\Parser\Date::parse($parser);  | 
                                                        |
| 48 | - $even->setDate($dat);  | 
                                                        |
| 49 | - //$even->setDate(trim($record[2]));  | 
                                                        |
| 50 | - break;  | 
                                                        |
| 51 | - case 'PLAC':  | 
                                                        |
| 52 | - $plac = \Gedcom\Parser\Plac::parse($parser);  | 
                                                        |
| 53 | - $even->setPlac($plac);  | 
                                                        |
| 54 | - break;  | 
                                                        |
| 55 | - case 'ADDR':  | 
                                                        |
| 56 | - $addr = \Gedcom\Parser\Addr::parse($parser);  | 
                                                        |
| 57 | - $even->setAddr($addr);  | 
                                                        |
| 58 | - break;  | 
                                                        |
| 59 | - case 'PHON':  | 
                                                        |
| 60 | - $phone = \Gedcom\Parser\Phon::parse($parser);  | 
                                                        |
| 61 | - $even->addPhone($phone);  | 
                                                        |
| 62 | - break;  | 
                                                        |
| 63 | - case 'CAUS':  | 
                                                        |
| 64 | - $even->setCaus(trim($record[2]));  | 
                                                        |
| 65 | - break;  | 
                                                        |
| 66 | - case 'AGE':  | 
                                                        |
| 67 | - $even->setAge(trim($record[2]));  | 
                                                        |
| 68 | - break;  | 
                                                        |
| 69 | - case 'AGNC':  | 
                                                        |
| 70 | - $even->setAgnc(trim($record[2]));  | 
                                                        |
| 71 | - break;  | 
                                                        |
| 72 | - case 'HUSB':  | 
                                                        |
| 73 | - $husb = \Gedcom\Parser\Fam\Even\Husb::parse($parser);  | 
                                                        |
| 74 | - $even->setHusb($husb);  | 
                                                        |
| 75 | - break;  | 
                                                        |
| 76 | - case 'WIFE':  | 
                                                        |
| 77 | - $wife = \Gedcom\Parser\Fam\Even\Wife::parse($parser);  | 
                                                        |
| 78 | - $even->setWife($wife);  | 
                                                        |
| 79 | - break;  | 
                                                        |
| 80 | - case 'SOUR':  | 
                                                        |
| 81 | - $sour = \Gedcom\Parser\SourRef::parse($parser);  | 
                                                        |
| 82 | - $even->addSour($sour);  | 
                                                        |
| 83 | - break;  | 
                                                        |
| 84 | - case 'OBJE':  | 
                                                        |
| 85 | - $obje = \Gedcom\Parser\ObjeRef::parse($parser);  | 
                                                        |
| 86 | - $even->addObje($obje);  | 
                                                        |
| 87 | - break;  | 
                                                        |
| 88 | - case 'NOTE':  | 
                                                        |
| 89 | - $note = \Gedcom\Parser\NoteRef::parse($parser);  | 
                                                        |
| 90 | -                if ($note) { | 
                                                        |
| 91 | - $even->addNote($note);  | 
                                                        |
| 92 | - }  | 
                                                        |
| 93 | - break;  | 
                                                        |
| 94 | - default:  | 
                                                        |
| 95 | - $parser->logUnhandledRecord(self::class.' @ '.__LINE__);  | 
                                                        |
| 43 | + case 'TYPE':  | 
                                                        |
| 44 | + $even->setType(trim($record[2]));  | 
                                                        |
| 45 | + break;  | 
                                                        |
| 46 | + case 'DATE':  | 
                                                        |
| 47 | + $dat = \Gedcom\Parser\Date::parse($parser);  | 
                                                        |
| 48 | + $even->setDate($dat);  | 
                                                        |
| 49 | + //$even->setDate(trim($record[2]));  | 
                                                        |
| 50 | + break;  | 
                                                        |
| 51 | + case 'PLAC':  | 
                                                        |
| 52 | + $plac = \Gedcom\Parser\Plac::parse($parser);  | 
                                                        |
| 53 | + $even->setPlac($plac);  | 
                                                        |
| 54 | + break;  | 
                                                        |
| 55 | + case 'ADDR':  | 
                                                        |
| 56 | + $addr = \Gedcom\Parser\Addr::parse($parser);  | 
                                                        |
| 57 | + $even->setAddr($addr);  | 
                                                        |
| 58 | + break;  | 
                                                        |
| 59 | + case 'PHON':  | 
                                                        |
| 60 | + $phone = \Gedcom\Parser\Phon::parse($parser);  | 
                                                        |
| 61 | + $even->addPhone($phone);  | 
                                                        |
| 62 | + break;  | 
                                                        |
| 63 | + case 'CAUS':  | 
                                                        |
| 64 | + $even->setCaus(trim($record[2]));  | 
                                                        |
| 65 | + break;  | 
                                                        |
| 66 | + case 'AGE':  | 
                                                        |
| 67 | + $even->setAge(trim($record[2]));  | 
                                                        |
| 68 | + break;  | 
                                                        |
| 69 | + case 'AGNC':  | 
                                                        |
| 70 | + $even->setAgnc(trim($record[2]));  | 
                                                        |
| 71 | + break;  | 
                                                        |
| 72 | + case 'HUSB':  | 
                                                        |
| 73 | + $husb = \Gedcom\Parser\Fam\Even\Husb::parse($parser);  | 
                                                        |
| 74 | + $even->setHusb($husb);  | 
                                                        |
| 75 | + break;  | 
                                                        |
| 76 | + case 'WIFE':  | 
                                                        |
| 77 | + $wife = \Gedcom\Parser\Fam\Even\Wife::parse($parser);  | 
                                                        |
| 78 | + $even->setWife($wife);  | 
                                                        |
| 79 | + break;  | 
                                                        |
| 80 | + case 'SOUR':  | 
                                                        |
| 81 | + $sour = \Gedcom\Parser\SourRef::parse($parser);  | 
                                                        |
| 82 | + $even->addSour($sour);  | 
                                                        |
| 83 | + break;  | 
                                                        |
| 84 | + case 'OBJE':  | 
                                                        |
| 85 | + $obje = \Gedcom\Parser\ObjeRef::parse($parser);  | 
                                                        |
| 86 | + $even->addObje($obje);  | 
                                                        |
| 87 | + break;  | 
                                                        |
| 88 | + case 'NOTE':  | 
                                                        |
| 89 | + $note = \Gedcom\Parser\NoteRef::parse($parser);  | 
                                                        |
| 90 | +                    if ($note) { | 
                                                        |
| 91 | + $even->addNote($note);  | 
                                                        |
| 92 | + }  | 
                                                        |
| 93 | + break;  | 
                                                        |
| 94 | + default:  | 
                                                        |
| 95 | + $parser->logUnhandledRecord(self::class.' @ '.__LINE__);  | 
                                                        |
| 96 | 96 | }  | 
                                                        
| 97 | 97 | |
| 98 | 98 | $parser->forward();  | 
                                                        
@@ -57,62 +57,62 @@  | 
                                                    ||
| 57 | 57 | }  | 
                                                        
| 58 | 58 | |
| 59 | 59 |              switch ($recordType) { | 
                                                        
| 60 | - case 'TYPE':  | 
                                                        |
| 61 | - $even->setType(trim($record[2]));  | 
                                                        |
| 62 | - break;  | 
                                                        |
| 63 | - case 'DATE':  | 
                                                        |
| 64 | - $dat = \Gedcom\Parser\Date::parse($parser);  | 
                                                        |
| 65 | - $even->setDate($dat);  | 
                                                        |
| 66 | - //$even->setDate(trim($record[2]))  | 
                                                        |
| 67 | - break;  | 
                                                        |
| 68 | - case 'PLAC':  | 
                                                        |
| 69 | - $plac = \Gedcom\Parser\Plac::parse($parser);  | 
                                                        |
| 70 | - $even->setPlac($plac);  | 
                                                        |
| 71 | - break;  | 
                                                        |
| 72 | - case 'ADDR':  | 
                                                        |
| 73 | - $even->setAddr(\Gedcom\Parser\Addr::parse($parser));  | 
                                                        |
| 74 | - break;  | 
                                                        |
| 75 | - case 'PHON':  | 
                                                        |
| 76 | - $phone = \Gedcom\Parser\Phon::parse($parser);  | 
                                                        |
| 77 | - $even->addPhone($phone);  | 
                                                        |
| 78 | - break;  | 
                                                        |
| 79 | - case 'CAUS':  | 
                                                        |
| 80 | - $even->setCaus(trim($record[2]));  | 
                                                        |
| 81 | - break;  | 
                                                        |
| 82 | - case 'AGE':  | 
                                                        |
| 83 | - $even->setAge(trim($record[2]));  | 
                                                        |
| 84 | - break;  | 
                                                        |
| 85 | - case 'AGNC':  | 
                                                        |
| 86 | - $even->setAgnc(trim($record[2]));  | 
                                                        |
| 87 | - break;  | 
                                                        |
| 88 | - case 'SOUR':  | 
                                                        |
| 89 | - $sour = \Gedcom\Parser\SourRef::parse($parser);  | 
                                                        |
| 90 | - $even->addSour($sour);  | 
                                                        |
| 91 | - break;  | 
                                                        |
| 92 | - case 'OBJE':  | 
                                                        |
| 93 | - $obje = \Gedcom\Parser\ObjeRef::parse($parser);  | 
                                                        |
| 94 | - $even->addObje($obje);  | 
                                                        |
| 95 | - break;  | 
                                                        |
| 96 | - case 'NOTE':  | 
                                                        |
| 97 | - $note = \Gedcom\Parser\NoteRef::parse($parser);  | 
                                                        |
| 98 | -                if ($note) { | 
                                                        |
| 99 | - $even->addNote($note);  | 
                                                        |
| 100 | - }  | 
                                                        |
| 101 | - break;  | 
                                                        |
| 102 | - case 'CHAN':  | 
                                                        |
| 103 | - $change = \Gedcom\Parser\Chan::parse($parser);  | 
                                                        |
| 104 | - $even->setChan($change);  | 
                                                        |
| 105 | - break;  | 
                                                        |
| 106 | - default:  | 
                                                        |
| 107 | - $self = get_called_class();  | 
                                                        |
| 108 | - $method = 'parse'.$recordType;  | 
                                                        |
| 60 | + case 'TYPE':  | 
                                                        |
| 61 | + $even->setType(trim($record[2]));  | 
                                                        |
| 62 | + break;  | 
                                                        |
| 63 | + case 'DATE':  | 
                                                        |
| 64 | + $dat = \Gedcom\Parser\Date::parse($parser);  | 
                                                        |
| 65 | + $even->setDate($dat);  | 
                                                        |
| 66 | + //$even->setDate(trim($record[2]))  | 
                                                        |
| 67 | + break;  | 
                                                        |
| 68 | + case 'PLAC':  | 
                                                        |
| 69 | + $plac = \Gedcom\Parser\Plac::parse($parser);  | 
                                                        |
| 70 | + $even->setPlac($plac);  | 
                                                        |
| 71 | + break;  | 
                                                        |
| 72 | + case 'ADDR':  | 
                                                        |
| 73 | + $even->setAddr(\Gedcom\Parser\Addr::parse($parser));  | 
                                                        |
| 74 | + break;  | 
                                                        |
| 75 | + case 'PHON':  | 
                                                        |
| 76 | + $phone = \Gedcom\Parser\Phon::parse($parser);  | 
                                                        |
| 77 | + $even->addPhone($phone);  | 
                                                        |
| 78 | + break;  | 
                                                        |
| 79 | + case 'CAUS':  | 
                                                        |
| 80 | + $even->setCaus(trim($record[2]));  | 
                                                        |
| 81 | + break;  | 
                                                        |
| 82 | + case 'AGE':  | 
                                                        |
| 83 | + $even->setAge(trim($record[2]));  | 
                                                        |
| 84 | + break;  | 
                                                        |
| 85 | + case 'AGNC':  | 
                                                        |
| 86 | + $even->setAgnc(trim($record[2]));  | 
                                                        |
| 87 | + break;  | 
                                                        |
| 88 | + case 'SOUR':  | 
                                                        |
| 89 | + $sour = \Gedcom\Parser\SourRef::parse($parser);  | 
                                                        |
| 90 | + $even->addSour($sour);  | 
                                                        |
| 91 | + break;  | 
                                                        |
| 92 | + case 'OBJE':  | 
                                                        |
| 93 | + $obje = \Gedcom\Parser\ObjeRef::parse($parser);  | 
                                                        |
| 94 | + $even->addObje($obje);  | 
                                                        |
| 95 | + break;  | 
                                                        |
| 96 | + case 'NOTE':  | 
                                                        |
| 97 | + $note = \Gedcom\Parser\NoteRef::parse($parser);  | 
                                                        |
| 98 | +                    if ($note) { | 
                                                        |
| 99 | + $even->addNote($note);  | 
                                                        |
| 100 | + }  | 
                                                        |
| 101 | + break;  | 
                                                        |
| 102 | + case 'CHAN':  | 
                                                        |
| 103 | + $change = \Gedcom\Parser\Chan::parse($parser);  | 
                                                        |
| 104 | + $even->setChan($change);  | 
                                                        |
| 105 | + break;  | 
                                                        |
| 106 | + default:  | 
                                                        |
| 107 | + $self = get_called_class();  | 
                                                        |
| 108 | + $method = 'parse'.$recordType;  | 
                                                        |
| 109 | 109 | |
| 110 | -                if (method_exists($self, $method)) { | 
                                                        |
| 111 | - $self::$method($parser, $even);  | 
                                                        |
| 112 | -                } else { | 
                                                        |
| 113 | - $parser->logUnhandledRecord($self.' @ '.__LINE__);  | 
                                                        |
| 114 | - $parser->skipToNextLevel($currentDepth);  | 
                                                        |
| 115 | - }  | 
                                                        |
| 110 | +                    if (method_exists($self, $method)) { | 
                                                        |
| 111 | + $self::$method($parser, $even);  | 
                                                        |
| 112 | +                    } else { | 
                                                        |
| 113 | + $parser->logUnhandledRecord($self.' @ '.__LINE__);  | 
                                                        |
| 114 | + $parser->skipToNextLevel($currentDepth);  | 
                                                        |
| 115 | + }  | 
                                                        |
| 116 | 116 | }  | 
                                                        
| 117 | 117 | |
| 118 | 118 | $parser->forward();  | 
                                                        
@@ -7,7 +7,7 @@  | 
                                                    ||
| 7 | 7 | use Rector\Set\ValueObject\SetList;  | 
                                                        
| 8 | 8 | use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;  | 
                                                        
| 9 | 9 | |
| 10 | -return static function (ContainerConfigurator $containerConfigurator): void { | 
                                                        |
| 10 | +return static function(ContainerConfigurator $containerConfigurator): void { | 
                                                        |
| 11 | 11 | $containerConfigurator->import(SetList::PHP_80);  | 
                                                        
| 12 | 12 | // get parameters  | 
                                                        
| 13 | 13 | $parameters = $containerConfigurator->parameters();  | 
                                                        
@@ -50,150 +50,150 @@  | 
                                                    ||
| 50 | 50 | }  | 
                                                        
| 51 | 51 | |
| 52 | 52 |              switch ($recordType) { | 
                                                        
| 53 | - case '_UID':  | 
                                                        |
| 54 | - $indi->setUid(trim($record[2]));  | 
                                                        |
| 55 | - break;  | 
                                                        |
| 56 | - case 'RESN':  | 
                                                        |
| 57 | - $indi->setResn(trim($record[2]));  | 
                                                        |
| 58 | - break;  | 
                                                        |
| 59 | - case 'NAME':  | 
                                                        |
| 60 | - $name = \Gedcom\Parser\Indi\Name::parse($parser);  | 
                                                        |
| 61 | - $indi->addName($name);  | 
                                                        |
| 62 | - break;  | 
                                                        |
| 63 | - case 'SEX':  | 
                                                        |
| 64 | - $indi->setSex(isset($record[2]) ? trim($record[2]) : '');  | 
                                                        |
| 65 | - break;  | 
                                                        |
| 66 | - case 'ADOP':  | 
                                                        |
| 67 | - case 'BIRT':  | 
                                                        |
| 68 | - $birt = \Gedcom\Parser\Birt::parse($parser);  | 
                                                        |
| 69 | - $indi->setBirt($birt);  | 
                                                        |
| 70 | - break;  | 
                                                        |
| 71 | - case 'BAPM':  | 
                                                        |
| 72 | - case 'BARM':  | 
                                                        |
| 73 | - case 'BASM':  | 
                                                        |
| 74 | - case 'BLES':  | 
                                                        |
| 75 | - case 'BURI':  | 
                                                        |
| 76 | - $buri = \Gedcom\Parser\Buri::parse($parser);  | 
                                                        |
| 77 | - $indi->setBuri($buri);  | 
                                                        |
| 78 | - break;  | 
                                                        |
| 79 | - case 'CENS':  | 
                                                        |
| 80 | - case 'CHR':  | 
                                                        |
| 81 | - $chr = \Gedcom\Parser\Chr::parse($parser);  | 
                                                        |
| 82 | - $indi->setChr($chr);  | 
                                                        |
| 83 | - break;  | 
                                                        |
| 84 | - case 'CHRA':  | 
                                                        |
| 85 | - case 'CONF':  | 
                                                        |
| 86 | - case 'CREM':  | 
                                                        |
| 87 | - case 'DEAT':  | 
                                                        |
| 88 | - $deat = \Gedcom\Parser\Deat::parse($parser);  | 
                                                        |
| 89 | - $indi->setDeat($deat);  | 
                                                        |
| 90 | - break;  | 
                                                        |
| 91 | - case 'EMIG':  | 
                                                        |
| 92 | - case 'FCOM':  | 
                                                        |
| 93 | - case 'GRAD':  | 
                                                        |
| 94 | - case 'IMMI':  | 
                                                        |
| 95 | - case 'NATU':  | 
                                                        |
| 96 | - case 'ORDN':  | 
                                                        |
| 97 | - case 'RETI':  | 
                                                        |
| 98 | - case 'PROB':  | 
                                                        |
| 99 | - case 'WILL':  | 
                                                        |
| 100 | - case 'EVEN':  | 
                                                        |
| 101 | - $className = ucfirst(strtolower($recordType));  | 
                                                        |
| 102 | - $class = '\\Gedcom\\Parser\\Indi\\'.$className;  | 
                                                        |
| 53 | + case '_UID':  | 
                                                        |
| 54 | + $indi->setUid(trim($record[2]));  | 
                                                        |
| 55 | + break;  | 
                                                        |
| 56 | + case 'RESN':  | 
                                                        |
| 57 | + $indi->setResn(trim($record[2]));  | 
                                                        |
| 58 | + break;  | 
                                                        |
| 59 | + case 'NAME':  | 
                                                        |
| 60 | + $name = \Gedcom\Parser\Indi\Name::parse($parser);  | 
                                                        |
| 61 | + $indi->addName($name);  | 
                                                        |
| 62 | + break;  | 
                                                        |
| 63 | + case 'SEX':  | 
                                                        |
| 64 | + $indi->setSex(isset($record[2]) ? trim($record[2]) : '');  | 
                                                        |
| 65 | + break;  | 
                                                        |
| 66 | + case 'ADOP':  | 
                                                        |
| 67 | + case 'BIRT':  | 
                                                        |
| 68 | + $birt = \Gedcom\Parser\Birt::parse($parser);  | 
                                                        |
| 69 | + $indi->setBirt($birt);  | 
                                                        |
| 70 | + break;  | 
                                                        |
| 71 | + case 'BAPM':  | 
                                                        |
| 72 | + case 'BARM':  | 
                                                        |
| 73 | + case 'BASM':  | 
                                                        |
| 74 | + case 'BLES':  | 
                                                        |
| 75 | + case 'BURI':  | 
                                                        |
| 76 | + $buri = \Gedcom\Parser\Buri::parse($parser);  | 
                                                        |
| 77 | + $indi->setBuri($buri);  | 
                                                        |
| 78 | + break;  | 
                                                        |
| 79 | + case 'CENS':  | 
                                                        |
| 80 | + case 'CHR':  | 
                                                        |
| 81 | + $chr = \Gedcom\Parser\Chr::parse($parser);  | 
                                                        |
| 82 | + $indi->setChr($chr);  | 
                                                        |
| 83 | + break;  | 
                                                        |
| 84 | + case 'CHRA':  | 
                                                        |
| 85 | + case 'CONF':  | 
                                                        |
| 86 | + case 'CREM':  | 
                                                        |
| 87 | + case 'DEAT':  | 
                                                        |
| 88 | + $deat = \Gedcom\Parser\Deat::parse($parser);  | 
                                                        |
| 89 | + $indi->setDeat($deat);  | 
                                                        |
| 90 | + break;  | 
                                                        |
| 91 | + case 'EMIG':  | 
                                                        |
| 92 | + case 'FCOM':  | 
                                                        |
| 93 | + case 'GRAD':  | 
                                                        |
| 94 | + case 'IMMI':  | 
                                                        |
| 95 | + case 'NATU':  | 
                                                        |
| 96 | + case 'ORDN':  | 
                                                        |
| 97 | + case 'RETI':  | 
                                                        |
| 98 | + case 'PROB':  | 
                                                        |
| 99 | + case 'WILL':  | 
                                                        |
| 100 | + case 'EVEN':  | 
                                                        |
| 101 | + $className = ucfirst(strtolower($recordType));  | 
                                                        |
| 102 | + $class = '\\Gedcom\\Parser\\Indi\\'.$className;  | 
                                                        |
| 103 | 103 | |
| 104 | - $event = $class::parse($parser);  | 
                                                        |
| 105 | - $indi->addEven($event);  | 
                                                        |
| 106 | - break;  | 
                                                        |
| 107 | - case 'CAST':  | 
                                                        |
| 108 | - case 'DSCR':  | 
                                                        |
| 109 | - case 'EDUC':  | 
                                                        |
| 110 | - case 'IDNO':  | 
                                                        |
| 111 | - case 'NATI':  | 
                                                        |
| 112 | - case 'NCHI':  | 
                                                        |
| 113 | - case 'NMR':  | 
                                                        |
| 114 | - case 'OCCU':  | 
                                                        |
| 115 | - case 'PROP':  | 
                                                        |
| 116 | - case 'RELI':  | 
                                                        |
| 117 | - case 'RESI':  | 
                                                        |
| 118 | - case 'SSN':  | 
                                                        |
| 119 | - case 'TITL':  | 
                                                        |
| 120 | - $className = ucfirst(strtolower($recordType));  | 
                                                        |
| 121 | - $class = '\\Gedcom\\Parser\\Indi\\'.$className;  | 
                                                        |
| 104 | + $event = $class::parse($parser);  | 
                                                        |
| 105 | + $indi->addEven($event);  | 
                                                        |
| 106 | + break;  | 
                                                        |
| 107 | + case 'CAST':  | 
                                                        |
| 108 | + case 'DSCR':  | 
                                                        |
| 109 | + case 'EDUC':  | 
                                                        |
| 110 | + case 'IDNO':  | 
                                                        |
| 111 | + case 'NATI':  | 
                                                        |
| 112 | + case 'NCHI':  | 
                                                        |
| 113 | + case 'NMR':  | 
                                                        |
| 114 | + case 'OCCU':  | 
                                                        |
| 115 | + case 'PROP':  | 
                                                        |
| 116 | + case 'RELI':  | 
                                                        |
| 117 | + case 'RESI':  | 
                                                        |
| 118 | + case 'SSN':  | 
                                                        |
| 119 | + case 'TITL':  | 
                                                        |
| 120 | + $className = ucfirst(strtolower($recordType));  | 
                                                        |
| 121 | + $class = '\\Gedcom\\Parser\\Indi\\'.$className;  | 
                                                        |
| 122 | 122 | |
| 123 | - $att = $class::parse($parser);  | 
                                                        |
| 124 | - $indi->addAttr($att);  | 
                                                        |
| 125 | - break;  | 
                                                        |
| 126 | - case 'BAPL':  | 
                                                        |
| 127 | - case 'CONL':  | 
                                                        |
| 128 | - case 'ENDL':  | 
                                                        |
| 129 | - case 'SLGC':  | 
                                                        |
| 130 | - $className = ucfirst(strtolower($recordType));  | 
                                                        |
| 131 | - $class = '\\Gedcom\\Parser\\Indi\\'.$className;  | 
                                                        |
| 123 | + $att = $class::parse($parser);  | 
                                                        |
| 124 | + $indi->addAttr($att);  | 
                                                        |
| 125 | + break;  | 
                                                        |
| 126 | + case 'BAPL':  | 
                                                        |
| 127 | + case 'CONL':  | 
                                                        |
| 128 | + case 'ENDL':  | 
                                                        |
| 129 | + case 'SLGC':  | 
                                                        |
| 130 | + $className = ucfirst(strtolower($recordType));  | 
                                                        |
| 131 | + $class = '\\Gedcom\\Parser\\Indi\\'.$className;  | 
                                                        |
| 132 | 132 | |
| 133 | - $lds = $class::parse($parser);  | 
                                                        |
| 134 | -                $indi->{'add'.$recordType}[] = $lds; | 
                                                        |
| 135 | - break;  | 
                                                        |
| 136 | - case 'FAMC':  | 
                                                        |
| 137 | - $famc = \Gedcom\Parser\Indi\Famc::parse($parser);  | 
                                                        |
| 138 | -                if ($famc) { | 
                                                        |
| 139 | - $indi->addFamc($famc);  | 
                                                        |
| 140 | - }  | 
                                                        |
| 141 | - break;  | 
                                                        |
| 142 | - case 'FAMS':  | 
                                                        |
| 143 | - $fams = \Gedcom\Parser\Indi\Fams::parse($parser);  | 
                                                        |
| 144 | -                if ($fams) { | 
                                                        |
| 145 | - $indi->addFams($fams);  | 
                                                        |
| 146 | - }  | 
                                                        |
| 147 | - break;  | 
                                                        |
| 148 | - case 'SUBM':  | 
                                                        |
| 149 | - $indi->addSubm($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 150 | - break;  | 
                                                        |
| 151 | - case 'ASSO':  | 
                                                        |
| 152 | - $asso = \Gedcom\Parser\Indi\Asso::parse($parser);  | 
                                                        |
| 153 | - $indi->addAsso($asso);  | 
                                                        |
| 154 | - break;  | 
                                                        |
| 155 | - case 'ALIA':  | 
                                                        |
| 156 | - $indi->addAlia($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 157 | - break;  | 
                                                        |
| 158 | - case 'ANCI':  | 
                                                        |
| 159 | - $indi->addAnci($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 160 | - break;  | 
                                                        |
| 161 | - case 'DESI':  | 
                                                        |
| 162 | - $indi->addDesi($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 163 | - break;  | 
                                                        |
| 164 | - case 'RFN':  | 
                                                        |
| 165 | - $indi->setRfn(trim($record[2]));  | 
                                                        |
| 166 | - break;  | 
                                                        |
| 167 | - case 'AFN':  | 
                                                        |
| 168 | - $indi->setAfn(trim($record[2]));  | 
                                                        |
| 169 | - break;  | 
                                                        |
| 170 | - case 'REFN':  | 
                                                        |
| 171 | - $ref = \Gedcom\Parser\Refn::parse($parser);  | 
                                                        |
| 172 | - $indi->addRefn($ref);  | 
                                                        |
| 173 | - break;  | 
                                                        |
| 174 | - case 'RIN':  | 
                                                        |
| 175 | - $indi->setRin(trim($record[2]));  | 
                                                        |
| 176 | - break;  | 
                                                        |
| 177 | - case 'CHAN':  | 
                                                        |
| 178 | - $chan = \Gedcom\Parser\Chan::parse($parser);  | 
                                                        |
| 179 | - $indi->setChan($chan);  | 
                                                        |
| 180 | - break;  | 
                                                        |
| 181 | - case 'NOTE':  | 
                                                        |
| 182 | - $note = \Gedcom\Parser\NoteRef::parse($parser);  | 
                                                        |
| 183 | -                if ($note) { | 
                                                        |
| 184 | - $indi->addNote($note);  | 
                                                        |
| 185 | - }  | 
                                                        |
| 186 | - break;  | 
                                                        |
| 187 | - case 'SOUR':  | 
                                                        |
| 188 | - $sour = \Gedcom\Parser\SourRef::parse($parser);  | 
                                                        |
| 189 | - $indi->addSour($sour);  | 
                                                        |
| 190 | - break;  | 
                                                        |
| 191 | - case 'OBJE':  | 
                                                        |
| 192 | - $obje = \Gedcom\Parser\ObjeRef::parse($parser);  | 
                                                        |
| 193 | - $indi->addObje($obje);  | 
                                                        |
| 194 | - break;  | 
                                                        |
| 195 | - default:  | 
                                                        |
| 196 | - $parser->logUnhandledRecord(self::class.' @ '.__LINE__);  | 
                                                        |
| 133 | + $lds = $class::parse($parser);  | 
                                                        |
| 134 | +                    $indi->{'add'.$recordType}[] = $lds; | 
                                                        |
| 135 | + break;  | 
                                                        |
| 136 | + case 'FAMC':  | 
                                                        |
| 137 | + $famc = \Gedcom\Parser\Indi\Famc::parse($parser);  | 
                                                        |
| 138 | +                    if ($famc) { | 
                                                        |
| 139 | + $indi->addFamc($famc);  | 
                                                        |
| 140 | + }  | 
                                                        |
| 141 | + break;  | 
                                                        |
| 142 | + case 'FAMS':  | 
                                                        |
| 143 | + $fams = \Gedcom\Parser\Indi\Fams::parse($parser);  | 
                                                        |
| 144 | +                    if ($fams) { | 
                                                        |
| 145 | + $indi->addFams($fams);  | 
                                                        |
| 146 | + }  | 
                                                        |
| 147 | + break;  | 
                                                        |
| 148 | + case 'SUBM':  | 
                                                        |
| 149 | + $indi->addSubm($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 150 | + break;  | 
                                                        |
| 151 | + case 'ASSO':  | 
                                                        |
| 152 | + $asso = \Gedcom\Parser\Indi\Asso::parse($parser);  | 
                                                        |
| 153 | + $indi->addAsso($asso);  | 
                                                        |
| 154 | + break;  | 
                                                        |
| 155 | + case 'ALIA':  | 
                                                        |
| 156 | + $indi->addAlia($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 157 | + break;  | 
                                                        |
| 158 | + case 'ANCI':  | 
                                                        |
| 159 | + $indi->addAnci($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 160 | + break;  | 
                                                        |
| 161 | + case 'DESI':  | 
                                                        |
| 162 | + $indi->addDesi($parser->normalizeIdentifier($record[2]));  | 
                                                        |
| 163 | + break;  | 
                                                        |
| 164 | + case 'RFN':  | 
                                                        |
| 165 | + $indi->setRfn(trim($record[2]));  | 
                                                        |
| 166 | + break;  | 
                                                        |
| 167 | + case 'AFN':  | 
                                                        |
| 168 | + $indi->setAfn(trim($record[2]));  | 
                                                        |
| 169 | + break;  | 
                                                        |
| 170 | + case 'REFN':  | 
                                                        |
| 171 | + $ref = \Gedcom\Parser\Refn::parse($parser);  | 
                                                        |
| 172 | + $indi->addRefn($ref);  | 
                                                        |
| 173 | + break;  | 
                                                        |
| 174 | + case 'RIN':  | 
                                                        |
| 175 | + $indi->setRin(trim($record[2]));  | 
                                                        |
| 176 | + break;  | 
                                                        |
| 177 | + case 'CHAN':  | 
                                                        |
| 178 | + $chan = \Gedcom\Parser\Chan::parse($parser);  | 
                                                        |
| 179 | + $indi->setChan($chan);  | 
                                                        |
| 180 | + break;  | 
                                                        |
| 181 | + case 'NOTE':  | 
                                                        |
| 182 | + $note = \Gedcom\Parser\NoteRef::parse($parser);  | 
                                                        |
| 183 | +                    if ($note) { | 
                                                        |
| 184 | + $indi->addNote($note);  | 
                                                        |
| 185 | + }  | 
                                                        |
| 186 | + break;  | 
                                                        |
| 187 | + case 'SOUR':  | 
                                                        |
| 188 | + $sour = \Gedcom\Parser\SourRef::parse($parser);  | 
                                                        |
| 189 | + $indi->addSour($sour);  | 
                                                        |
| 190 | + break;  | 
                                                        |
| 191 | + case 'OBJE':  | 
                                                        |
| 192 | + $obje = \Gedcom\Parser\ObjeRef::parse($parser);  | 
                                                        |
| 193 | + $indi->addObje($obje);  | 
                                                        |
| 194 | + break;  | 
                                                        |
| 195 | + default:  | 
                                                        |
| 196 | + $parser->logUnhandledRecord(self::class.' @ '.__LINE__);  | 
                                                        |
| 197 | 197 | }  | 
                                                        
| 198 | 198 | |
| 199 | 199 | $parser->forward();  |