protected void addSplitAttributes ( final GedDocument < ? > document ) { for ( final GedDocument < ? extends GedObject > attribute : document . getAttributes ( ) ) { final DocumentToApiModelVisitor v = createVisitor ( ) ; attribute . accept ( v ) ; ( ( ApiHasImages ) baseObject ) . addAttribute ( convertToAttribute ( v . getBaseObject ( ) ) ) ; } }
Recurse into the child documents converting and adding to the list . Several document types require special processing because they have split lists .