46 |
class LineageLinkageGedcom : public GEDCOMElement |
class LineageLinkageGedcom : public GEDCOMElement |
47 |
{ |
{ |
48 |
public: |
public: |
49 |
/// spouses enumeration (typedef'd to enumParents) |
LineageLinkageGedcom(void) : |
50 |
enum _enumParents |
_header(), |
|
{ |
|
|
/// |
|
|
e_Husband, |
|
|
/// |
|
|
e_Wife |
|
|
}; |
|
|
typedef enum _enumParents enumParents; |
|
|
LineageLinkageGedcom(Header * const h = 0) : |
|
|
_header(SmartPtr< Header >(h)), |
|
51 |
_submission(), |
_submission(), |
52 |
_family_records(), |
_family_records(), |
53 |
_individual_records(), |
_individual_records(), |
68 |
/// |
/// |
69 |
GEDCOMParser::FamilyRecord * addFamilyRecord(FamilyRecord * const data = 0); |
GEDCOMParser::FamilyRecord * addFamilyRecord(FamilyRecord * const data = 0); |
70 |
/// |
/// |
71 |
|
void RemoveFamilyRecord(SmartPtr < FamilyRecord > const &family); |
72 |
|
/// |
73 |
IndividualRecord * addIndividualRecord(IndividualRecord * const data = 0); |
IndividualRecord * addIndividualRecord(IndividualRecord * const data = 0); |
74 |
/// |
/// |
75 |
GEDCOMParser::MultimediaRecord * addMultimediaRecord(MultimediaRecord * const data = 0); |
GEDCOMParser::MultimediaRecord * addMultimediaRecord(MultimediaRecord * const data = 0); |
102 |
SourceRecords_t const & getSourceRecords(void) const; |
SourceRecords_t const & getSourceRecords(void) const; |
103 |
/// |
/// |
104 |
SubmitterRecords_t const & getSubmitterRecords(void) const; |
SubmitterRecords_t const & getSubmitterRecords(void) const; |
|
/// |
|
|
SmartPtr< IndividualRecord> getIndividualParent(IndividualRecord const * const, enumParents) const; |
|
|
/// @return the IndividualRecords without children in the transmission |
|
|
GEDCOMParser::IndividualRecords_t GEDCOMParser::LineageLinkageGedcom::getRootIndividuals(void) const; |
|
105 |
//@} |
//@} |
|
///@name Transmission edition facilities |
|
|
//@{ |
|
|
/// Add a family record to the transmission, where spouse is husband or wife (according to the gender of spouse) |
|
|
SpouseToFamilyLink * AddSpouse(IndividualRecord * spouse); |
|
|
/// Remove a spouse to family link |
|
|
void RemoveSpouseToFamilyLink(IndividualRecord * individual, SpouseToFamilyLink * family_link); |
|
|
/// Add a family record to the transmission, where child is child |
|
|
ChildToFamilyLink * AddParents(IndividualRecord * child); |
|
|
/// Set a parent in a family record. If the parent is not specified, creates a new record. If the ChildToFamilyLink involves two parents, creates the SpouseToFamilyLink corresponding to their union |
|
|
void setParent(FamilyRecord * const family, IndividualRecord * const parent); |
|
|
/// Creates a father in a family record |
|
|
// IndividualRecord * CreateFather(ChildToFamilyLink * const link); |
|
|
/// Creates a mother in a family record |
|
|
// IndividualRecord * CreateMother(ChildToFamilyLink * const link); |
|
|
/// Remove a child to family link |
|
|
void RemoveChildToFamilyLink(IndividualRecord * individual, ChildToFamilyLink * family_link); |
|
|
/// Remove a family record |
|
|
void RemoveFamilyRecord(FamilyRecord const &family); |
|
|
//@} |
|
|
|
|
|
/// @return true if the individual record has at least one child in the current transmission |
|
|
bool hasChildren(IndividualRecord const * const) const; |
|
|
/// @return true if the individual record has at least one spouse in the current transmission |
|
|
bool hasSpouse(IndividualRecord const * const) const; |
|
|
/// @return true if the family record appears at least once in the current transmission |
|
|
bool FamilyIsUsed(FamilyRecord const * const) const; |
|
106 |
void Accept(GEDCOMParser::GEDCOMVisitor *); |
void Accept(GEDCOMParser::GEDCOMVisitor *); |
107 |
private: |
private: |
108 |
SmartPtr < Header > _header; |
SmartPtr < Header > _header; |