All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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