private void analyzeParents(FamilyMember m) { HistoricalFigure father = m.hf.getHfLink("father"); FamilyMember m1 = null, m2 = null; if (father.getId() != -1) { try { m1 = get(father.getId(), new FamilyMember(father, m.generation - 1, m.distance + 1)); if (!m1.getRelation().equals("")) { m.father = m1; analyzeParents(m1); addMember(m1); if (m.generation == 0) analyzeChildren(m1); } else { m1 = null; } } catch (MemeberExistsException e) { } } HistoricalFigure mother = m.hf.getHfLink("mother"); if (mother.getId() != -1) { try { m2 = get(mother.getId(), new FamilyMember(mother, m.generation - 1, m.distance + 1)); if (!m2.getRelation().equals("")) { m.mother = m2; analyzeParents(m2); addMember(m2); } else { m2 = null; } } catch (MemeberExistsException e) { } } if (m1 != null && m2 != null) { m1.spouse = m2; m2.spouse = m1; links.add(new FamilyLink("spouse", m1, m2)); } if (m1 != null) { links.add(new FamilyLink("child", m1, m)); m1.children.add(m); } if (m2 != null) { links.add(new FamilyLink("child", m2, m)); m2.children.add(m); } }
private void analyzeSpouse(FamilyMember m) { HistoricalFigure spouse = m.hf.getHfLink("spouse"); if (spouse.getId() != -1) { FamilyMember m2; try { m2 = get(spouse.getId(), new FamilyMember(spouse, m.generation, m.distance + 1)); if (!m2.getRelation().equals("")) { m.spouse = m2; m2.spouse = m; links.add(new FamilyLink("spouse", m, m2)); addMember(m2, m); } } catch (MemeberExistsException e) { } } }
private void analyzeChildren(FamilyMember m) { List<HistoricalFigure> children = m.hf.getHfLinks("child"); for (HistoricalFigure c : children) { FamilyMember m3; try { m3 = get(c.getId(), new FamilyMember(c, m.generation + 1, m.distance + 1)); if (!m3.getRelation().equals("")) { m.children.add(m3); links.add(new FamilyLink("child", m, m3)); m3.strongLink = true; addMember(m3); analyzeSpouse(m3); analyzeChildren(m3); } } catch (MemeberExistsException e) { } } }