![JAR search and dependency download from the Maven repository](/logo.png)
com.evasion.entity.security.GroupSec Maven / Gradle / Ivy
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.entity.security;
import com.evasion.EntityJPA;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
/**
* L'entity Group permet d'affecter un groupe de droit a plusieurs utilisateur.
*
*create table groups (
* id bigint generated by default as identity(start with 0) primary key,
* group_name varchar_ignorecase(50) not null);
*
*create table group_authorities (
* group_id bigint not null,
* authority varchar(50) not null,
* constraint fk_group_authorities_group foreign key(group_id) references groups(id));
* @author sebastien.glon
*/
@Entity
@Table(name = "groups")
public class GroupSec extends EntityJPA {
/**
* UID de serialisation.
*/
private static final long serialVersionUID = 1L;
/**
* ID du grouped'utilisateur.
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
/**
* Nom du groupe de droit.
*/
@Column(unique = true, length = 50)
private String groupName;
/**
* Liste des droits affecte au groupe.
*/
@OneToMany
private Collection authoritiesInternal;
/**
* Liste des utilisateurs affecte a ce groupe de droit.
*/
@ManyToMany(mappedBy = "groupsInternal")
private Collection users;
/**
* Constructeur par defaut pour la persistence.
*/
protected GroupSec() {
}
/**
* Constructeur par defaut avec les champs obligatoire.
* @param name nom du groupe.
*/
public GroupSec(final String name) {
this.groupName = name;
}
/**
* Constructeur avec champs obligatiore et optionnel.
* @param groupName nom du groupe (obligatoire).
* @param authorities liste des roles (optionnel).
* @param users liste des utilisateurs du groupe (optionnel).
*/
public GroupSec(final String groupName, final Collection authorities,
final Set users) {
this.groupName = groupName;
this.authoritiesInternal = authorities;
this.users = users;
}
/**
* Getter des roles.
* (Methode interne utilise par la couche de persistence).
* @return la liste des roles affecte au groupe.
*/
protected Collection getAuthoritiesInternal() {
if (authoritiesInternal == null) {
authoritiesInternal = new HashSet();
}
return authoritiesInternal;
}
/**
* Setter des roles.
* (Methode interne utilise par la couche de persistence).
* @param authorities liste des roles affecte au groupe.
*/
protected void setAuthoritiesInternal(Collection authorities) {
this.authoritiesInternal = authorities;
}
/**
* Getter des roles affectes au groupe.
* @return liste des roles.
*/
public Collection getAuthorities() {
return Collections.unmodifiableCollection(getAuthoritiesInternal());
}
public boolean addAllAuthorities(Collection authorities) {
return this.getAuthoritiesInternal().addAll(authorities);
}
public boolean addAuthoritie(Authority auth) {
return this.getAuthoritiesInternal().add(auth);
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
/**
* Getter des utilisateurs.
* (Methode interne utilise par la couche de persistence).
* @return la liste des utilisateurs affecte au groupe.
*/
protected Collection getUsersInternal() {
if (users == null) {
users = new HashSet();
}
return users;
}
/**
* Setter des utilisateurs.
* (Methode interne utilise par la couche de persistence).
* @param users liste des utilisateurs affecte au groupe.
*/
protected void setUsersInternal(Set users) {
this.users = users;
}
public Collection getUsers() {
return Collections.unmodifiableCollection(getUsersInternal());
}
public boolean addUser(User user) {
return getUsersInternal().add(user);
}
public boolean addAllUser(Set users) {
return getUsersInternal().addAll(users);
}
/**
* {@inheritDoc }
*/
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (!( obj instanceof GroupSec )) {
return false;
}
GroupSec rhs = (GroupSec) obj;
return new EqualsBuilder().append(this.groupName, rhs.groupName).
isEquals();
}
/**
* @{@inheritDoc }
*/
@Override
public int hashCode() {
return new HashCodeBuilder(17, 37).append(this.groupName).toHashCode();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy