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