49 lines
1.2 KiB
Java
49 lines
1.2 KiB
Java
package envoy.server.data;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import javax.persistence.Entity;
|
|
import javax.persistence.NamedQuery;
|
|
import javax.persistence.Table;
|
|
|
|
/**
|
|
* Represents a group inside the database. Referred to as "server group" as
|
|
* opposed to "group" from Envoy Common.<br>
|
|
* <br>
|
|
* Project: <strong>envoy-server-standalone</strong><br>
|
|
* File: <strong>Group.java</strong><br>
|
|
* Created: <strong>24.03.2020</strong><br>
|
|
*
|
|
* @author Maximilian Käfer
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
*/
|
|
@Entity
|
|
@Table(name = "groups")
|
|
@NamedQuery(
|
|
name = Group.findByName,
|
|
query = "SELECT g FROM Group g WHERRE g.name = :name"
|
|
)
|
|
public class Group extends Contact {
|
|
|
|
/**
|
|
* Named query retrieving a group by name (parameter {@code :name}.
|
|
*
|
|
* @since Envoy Server Standalone v0.1-beta
|
|
*/
|
|
public static final String findByName = "Group.findByName";
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public envoy.data.Group toCommon() {
|
|
return new envoy.data.Group(id, name, contacts.parallelStream().map(User.class::cast).map(User::toFlatCommon).collect(Collectors.toSet()));
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
protected envoy.data.Group toFlatCommon() { return toCommon(); }
|
|
}
|