package fi.arcusys.koku.common.service.datamodel; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; /** * Entity for representing target person in AV. * * @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi) * Aug 22, 2011 */ @Entity @NamedQueries({ @NamedQuery(name = "findTargetPersonByUid", query = "SELECT DISTINCT tp FROM TargetPerson tp WHERE tp.targetUser.uid = :uid") }) public class TargetPerson extends AbstractEntity { @ManyToOne private User targetUser; @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) private Set<User> guardians; /** * @return the targetUser */ public User getTargetUser() { return targetUser; } /** * @param targetUser the targetUser to set */ public void setTargetUser(User targetUser) { this.targetUser = targetUser; } /** * @return the guardians */ public Set<User> getGuardians() { if (guardians == null) { this.guardians = new HashSet<User>(); } return guardians; } /** * @param guardians the guardians to set */ public void setGuardians(Set<User> guardians) { this.guardians = guardians; } public User getGuardianByUid(final String userUid) { for (final User guardian : this.getGuardians()) { if (guardian.getUid().equals(userUid)) { return guardian; } } return null; } }