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;
@SuppressWarnings("serial")
@MappedSuperclass
public abstract class AbstractSecurizable<P extends Persistable> extends AbstractAuditable implements Securizable<P> {
@OneToMany(mappedBy = "target", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, orphanRemoval = true)
private final Set<P> permissions = new HashSet<P>();
@Override
public Set<P> getPermissions() {
return Collections.unmodifiableSet(permissions);
}
}