This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.
envoy/src/main/java/envoy/server/data/Group.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&auml;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(); }
}