All pastes #335625 Raw Edit

Unnamed

public java v1 · immutable
·published 2007-02-01 13:58 UTC
rendered paste body
	private void fetterKusine()	{		String s1 = utsyn.hentStreng("Angi navn pa person 1");		String s2 = utsyn.hentStreng("Angi navn pa person 2");		// gi feil hvis en av dem ikke eksisterer		if(!tre.inneholder(s1))			giFeil(s1 + " eksisterer ikke");		else if(!tre.inneholder(s2))			giFeil(s2 + " eksisterer ikke");		else		{			Person p1 = tre.hentPerson(s1);			Person p2 = tre.hentPerson(s2);			// list person 1 og 2, gjenta rekursivt for foreldre			ArrayList<Person> p1bf = new ArrayList<Person>();			ArrayList<Person> p2bf = new ArrayList<Person>();			p1bf.add(p1);			p2bf.add(p2);			boolean harFellesBF = false;			boolean harFellesUnderBF = false;			for(int level = 0; level < 2; level++)			{				// sjekk om det finnes relasjoner nermere enn besteforeldre				for(Person p1test : p1bf)				{					for(Person p2test : p2bf)						harFellesUnderBF |= (p1test == p2test);				}				// finn foreldre				p1bf = listForeldre(p1bf);				p2bf = listForeldre(p2bf);			}			// si fra hvis de har nermere relasjoner			if(harFellesUnderBF)				utsyn.si(p1 + " og " + p2 + " er nermere beslektet");			else			{				// test om de har felles besteforeldre				for(Person p1test : p1bf)				{					for(Person p2test : p2bf)						harFellesBF |= (p1test == p2test);				}				utsyn.si(p1 + " og " + p2 + " er " + (harFellesBF ? "" : "ikke ") + (p1 instanceof Kvinne && p2 instanceof Kvinne ? "kusiner" : (p1 instanceof Mann && p2 instanceof Mann ? "fettere" : "fetter og kusine")));			}		}	}	private ArrayList<Person> listForeldre(ArrayList<Person> alb)	{		ArrayList<Person> alf = new ArrayList<Person>();		for(Person p : alb)		{			if(p.hentMor() != null)				alf.add(p.hentMor());			if(p.hentFar() != null)				alf.add(p.hentFar());		}		return alf;	}