
org.marketcetera.admin.dao.PersistentRole Maven / Gradle / Ivy
The newest version!
package org.marketcetera.admin.dao;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.marketcetera.admin.MutableRole;
import org.marketcetera.admin.Permission;
import org.marketcetera.admin.Role;
import org.marketcetera.admin.User;
import org.marketcetera.admin.user.PersistentUser;
import org.marketcetera.persist.NDEntityBase;
/* $License$ */
/**
* Provides a persistable implementation of Role
.
*
* @author Colin DuPlantis
* @version $Id$
* @since 1.0.1
*/
@Entity(name="Role")
@Table(name="metc_roles")
public class PersistentRole
extends NDEntityBase
implements MutableRole
{
/**
* Create a new PersistentRole instance.
*
* @param inRole a Role
value
*/
public PersistentRole(Role inRole)
{
setName(inRole.getName());
setDescription(inRole.getDescription());
}
/**
* Create a new PersistentRole instance.
*/
public PersistentRole()
{
}
/* (non-Javadoc)
* @see com.marketcetera.tiaacref.systemmodel.Role#getPermissions()
*/
@Override
public Set getPermissions()
{
return permissions;
}
/* (non-Javadoc)
* @see com.marketcetera.tiaacref.systemmodel.Role#getSubjects()
*/
@Override
public Set getSubjects()
{
return subjects;
}
/**
* subjects assigned to this role
*/
@JoinTable(name="metc_roles_users")
@ManyToMany(fetch=FetchType.EAGER,targetEntity=PersistentUser.class)
private Set subjects = new HashSet<>();
/**
* permissions granted to this role
*/
@JoinTable(name="metc_roles_permissions")
@ManyToMany(fetch=FetchType.EAGER,targetEntity=PersistentPermission.class,cascade={ CascadeType.ALL })
private Set permissions = new HashSet<>();
private static final long serialVersionUID = -562451840955411836L;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy