Contact conversion does not result in endless recursion anymore
This commit is contained in:
parent
8096d3ff58
commit
97545fc285
@ -35,6 +35,16 @@ public abstract class Contact {
|
|||||||
*/
|
*/
|
||||||
public abstract envoy.data.Contact toCommon();
|
public abstract envoy.data.Contact toCommon();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transforms this contact into a {@link envoy.data.Contact} where the contacts
|
||||||
|
* set of contacts is empty.
|
||||||
|
*
|
||||||
|
* @return a {@link envoy.data.Contact} object of this contact
|
||||||
|
* object.
|
||||||
|
* @since Envoy Server Standalone v0.1-beta
|
||||||
|
*/
|
||||||
|
protected abstract envoy.data.Contact toFlatCommon();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the ID of this contact.
|
* @return the ID of this contact.
|
||||||
* @since Envoy Server Standalone v0.1-beta
|
* @since Envoy Server Standalone v0.1-beta
|
||||||
|
@ -6,8 +6,6 @@ import javax.persistence.Entity;
|
|||||||
import javax.persistence.NamedQuery;
|
import javax.persistence.NamedQuery;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
import envoy.data.User;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class serves as a way to let Hibernate communicate with the server
|
* This class serves as a way to let Hibernate communicate with the server
|
||||||
* without bringing the dependency of JPA/Hibernate into the client.<br>
|
* without bringing the dependency of JPA/Hibernate into the client.<br>
|
||||||
@ -31,6 +29,12 @@ public class Group extends Contact {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public envoy.data.Group toCommon() {
|
public envoy.data.Group toCommon() {
|
||||||
return new envoy.data.Group(id, name, contacts.parallelStream().map(Contact::toCommon).map(User.class::cast).collect(Collectors.toSet()));
|
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(); }
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package envoy.server.data;
|
package envoy.server.data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
@ -45,9 +46,15 @@ public class User extends Contact {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public envoy.data.User toCommon() {
|
public envoy.data.User toCommon() {
|
||||||
return new envoy.data.User(id, name, status, contacts.stream().map(Contact::toCommon).collect(Collectors.toSet()));
|
return new envoy.data.User(id, name, status, contacts.parallelStream().map(Contact::toFlatCommon).collect(Collectors.toSet()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected envoy.data.User toFlatCommon() { return new envoy.data.User(id, name, status, Set.of()); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the password hash
|
* @return the password hash
|
||||||
* @since Envoy Server Standalone v0.1-alpha
|
* @since Envoy Server Standalone v0.1-alpha
|
||||||
|
Reference in New Issue
Block a user