![JAR search and dependency download from the Maven repository](/logo.png)
com.evasion.entity.security.Group Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of API Show documentation
Show all versions of API Show documentation
API de l'application modulaire evasion-en-ligne
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.entity.security;
import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CollectionTable;
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.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")
@NamedQuery(name = "findAllGroups", query = "SELECT b FROM Group b")
public class Group implements Serializable {
/**
* 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.
*/
@CollectionTable(name = "group_authorities")
@Column(name = "authority", nullable = false, length = 50)
private Set authorities;
/**
* Liste des utilisateurs affecte a ce groupe de droit.
*/
@ManyToMany(mappedBy = "groups")
private Set users;
/**
* Constructeur par defaut pour la persistence.
*/
protected Group() {
}
/**
* Constructeur par defaut avec les champs obligatoire.
* @param name nom du groupe.
*/
public Group(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 Group(final String groupName, final Set authorities,
final Set users) {
this.groupName = groupName;
this.authorities = authorities;
this.users = users;
}
/**
* Getter des roles.
* (Methode interne utilise par la couche de persistence).
* @return la liste des roles affecte au groupe.
*/
protected Set getAuthoritiesInternal() {
if (authorities == null) {
authorities = new HashSet();
}
return authorities;
}
/**
* Setter des roles.
* (Methode interne utilise par la couche de persistence).
* @param authorities liste des roles affecte au groupe.
*/
protected void setAuthoritiesInternal(Set authorities) {
this.authorities = authorities;
}
/**
* Getter des roles affectes au groupe.
* @return liste des roles.
*/
public Set getAuthorities() {
return Collections.unmodifiableSet(getAuthoritiesInternal());
}
public boolean addAllAuthorities(Collection authorities) {
return this.getAuthoritiesInternal().addAll(authorities);
}
public boolean addAuthoritie(String auth) {
return this.getAuthoritiesInternal().add(auth);
}
public String getGroup_name() {
return groupName;
}
public void setGroup_name(String group_name) {
this.groupName = group_name;
}
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 Set 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 Set getUsers() {
return Collections.unmodifiableSet(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 Group )) {
return false;
}
Group rhs = (Group) 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