package net.sf.gazpachoquest.domain.support;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.FetchType;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlTransient;
@SuppressWarnings("serial")
@MappedSuperclass
public abstract class AbstractSecurizableLocalizable<P extends Permission<?>, TR extends Translation<LS>, LS extends LanguageSettings>
extends AbstractAuditable implements Localizable<LS, TR>, Securizable<P> {
protected AbstractSecurizableLocalizable() {
super();
}
@OneToMany(mappedBy = "target", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, orphanRemoval = true)
@XmlTransient
protected final Set<P> permissions = new HashSet<P>();
@Override
public Set<P> getPermissions() {
return Collections.unmodifiableSet(permissions);
}
}