/** * TODO bij het verwijderen van een aanbieding die ook in een arbeidsovereenkomst zit, dient deze * ook verwijderd te worden! Verwijderd de gegeven aanbieding uit de lijst van deze kandidaat * indien aanwezig. De aanbieding wordt tevens verwijderd bij het bedrijf van de organisatie van * deze aanbieding. * * @param aanbieding De te verwijderen aanbieding. Deze aanbieding moet een referentie hebben naar * de persoon die eigenaar is van de kandidaat waarop deze methode wordt aangeroepen. De * aanbieding moet ook een referentie hebben naar een organisatie met een bedrijfsrol. * @return true als na afloop de aanbieding niet voorkomt in de aanbiedingen van zowel de * kandidaat als van het bedrijf. Anders false. */ public synchronized boolean removeAanbieding(Aanbieding aanbieding) { if (aanbieding == null || aanbieding.getPersoon() == null || aanbieding.getOrganisatie() == null || !aanbiedingen.contains(aanbieding)) { return false; } Kandidaat kandidaat = aanbieding.getPersoon().getKandidaat(); Bedrijf bedrijf = aanbieding.getOrganisatie().getBedrijf(); if (kandidaat != null && bedrijf != null && kandidaat == this) { getAanbiedingen().remove(aanbieding); bedrijf.removeAanbieding(aanbieding); return !heeftAanbieding(aanbieding) && !bedrijf.getAanbiedingen().contains(aanbieding); } return false; }