package org.jboss.seam.example.seamspace;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import org.jboss.seam.annotations.security.management.RoleConditional;
import org.jboss.seam.annotations.security.management.RoleGroups;
import org.jboss.seam.annotations.security.management.RoleName;
@Entity
public class MemberRole implements Serializable
{
private static final long serialVersionUID = 9177366120789064801L;
private Integer roleId;
private String name;
private boolean conditional;
private Set<MemberRole> groups;
@Id @GeneratedValue
public Integer getRoleId()
{
return roleId;
}
public void setRoleId(Integer roleId)
{
this.roleId = roleId;
}
@RoleName
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
@RoleGroups
@ManyToMany(targetEntity = MemberRole.class)
@JoinTable(name = "RoleGroup",
joinColumns = @JoinColumn(name = "RoleId"),
inverseJoinColumns = @JoinColumn(name = "MemberOf")
)
public Set<MemberRole> getGroups()
{
return groups;
}
public void setGroups(Set<MemberRole> groups)
{
this.groups = groups;
}
@RoleConditional
public boolean isConditional()
{
return conditional;
}
public void setConditional(boolean conditional)
{
this.conditional = conditional;
}
}