public final boolean addLifeEvent(LifeEvent lifeEvent) {
		final Set<Participant> noActivationAuthorized = new HashSet<Participant>();
		for (LifeEvent le : this.lifeEvents) {
			if (le.getType() == LifeEventType.DEACTIVATE || le.getType() == LifeEventType.DESTROY) {
				noActivationAuthorized.add(le.getParticipant());
			}
		}
		if (lifeEvent.getType() == LifeEventType.ACTIVATE
				&& noActivationAuthorized.contains(lifeEvent.getParticipant())) {
			return false;
		}
		// for (LifeEvent le : this.lifeEvents) {
		// if (le.getParticipant().equals(lifeEvent.getParticipant())) {
		// return false;
		// }
		// }
		this.lifeEvents.add(lifeEvent);
		return true;
	}