Contact conversion does not result in endless recursion anymore
This commit is contained in:
		| @@ -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
	 delvh
					delvh