#1796 - Relax generics bound in ReactiveRepresentationModelAssembler.
We now relax the generic bound of D to … extends RepresentationModel<?> as otherwise implementation code of, for example, toModel(…) has to produce a concrete representation model and cannot be typed to return RepresentationModel<?>.
This commit is contained in:
@@ -30,7 +30,7 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
* @author Greg Turnquist
|
||||
* @author Oliver Drotbohm
|
||||
*/
|
||||
public interface ReactiveRepresentationModelAssembler<T, D extends RepresentationModel<D>> {
|
||||
public interface ReactiveRepresentationModelAssembler<T, D extends RepresentationModel<?>> {
|
||||
|
||||
/**
|
||||
* Converts the given entity into a {@code D}, which extends {@link RepresentationModel}.
|
||||
|
||||
@@ -21,7 +21,6 @@ import static org.mockito.Mockito.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
@@ -162,4 +161,18 @@ class ReactiveResourceAssemblerUnitTest {
|
||||
class EmployeeResource extends RepresentationModel<EmployeeResource> {
|
||||
private Employee employee;
|
||||
}
|
||||
|
||||
// #1797 - Just to check that the implementation can be declared like that
|
||||
|
||||
class GenericAssembler implements ReactiveRepresentationModelAssembler<Employee, RepresentationModel<?>> {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.hateoas.server.reactive.ReactiveRepresentationModelAssembler#toModel(java.lang.Object, org.springframework.web.server.ServerWebExchange)
|
||||
*/
|
||||
@Override
|
||||
public Mono<RepresentationModel<?>> toModel(Employee entity, ServerWebExchange exchange) {
|
||||
return Mono.just(RepresentationModel.of(entity));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user