DATAREST-1341 - Adapt RepositoryLinkBuilder to API changes in Spring HATEOAS.

Removed obsolete BaseUriLinkBuilder as well.
This commit is contained in:
Oliver Drotbohm
2019-02-22 18:33:50 +01:00
parent 900baeb926
commit 85694576b2
2 changed files with 14 additions and 42 deletions

View File

@@ -1,31 +0,0 @@
package org.springframework.data.rest.webmvc.support;
import java.net.URI;
import org.springframework.hateoas.core.LinkBuilderSupport;
import org.springframework.web.util.UriComponentsBuilder;
/**
* @author Jon Brisbin
*/
public class BaseUriLinkBuilder extends LinkBuilderSupport<BaseUriLinkBuilder> {
public BaseUriLinkBuilder(UriComponentsBuilder builder) {
super(builder);
}
public static BaseUriLinkBuilder create(URI baseUri) {
return new BaseUriLinkBuilder(UriComponentsBuilder.fromUri(baseUri));
}
@Override
protected BaseUriLinkBuilder getThis() {
return this;
}
@Override
protected BaseUriLinkBuilder createNewInstance(UriComponentsBuilder builder) {
return new BaseUriLinkBuilder(builder);
}
}

View File

@@ -16,10 +16,13 @@
package org.springframework.data.rest.webmvc.support;
import java.net.URI;
import java.util.Collections;
import java.util.List;
import org.springframework.data.mapping.PersistentProperty;
import org.springframework.data.rest.core.mapping.ResourceMetadata;
import org.springframework.data.rest.webmvc.BaseUri;
import org.springframework.hateoas.Affordance;
import org.springframework.hateoas.Link;
import org.springframework.hateoas.LinkBuilder;
import org.springframework.hateoas.core.LinkBuilderSupport;
@@ -42,7 +45,7 @@ public class RepositoryLinkBuilder extends LinkBuilderSupport<RepositoryLinkBuil
* @param baseUri
*/
public RepositoryLinkBuilder(ResourceMetadata metadata, BaseUri baseUri) {
this(metadata, baseUri.getUriComponentsBuilder().path(metadata.getPath().toString()));
this(metadata, baseUri.getUriComponentsBuilder().path(metadata.getPath().toString()), Collections.emptyList());
}
/**
@@ -52,10 +55,12 @@ public class RepositoryLinkBuilder extends LinkBuilderSupport<RepositoryLinkBuil
* @param metadata must not be {@literal null}.
* @param builder must not be {@literal null}.
*/
private RepositoryLinkBuilder(ResourceMetadata metadata, UriComponentsBuilder builder) {
private RepositoryLinkBuilder(ResourceMetadata metadata, UriComponentsBuilder builder, List<Affordance> affordances) {
super(builder, affordances);
super(builder);
Assert.notNull(metadata, "ResourceMetadata must not be null!");
this.metadata = metadata;
}
@@ -66,11 +71,9 @@ public class RepositoryLinkBuilder extends LinkBuilderSupport<RepositoryLinkBuil
@Override
public RepositoryLinkBuilder slash(Object object) {
if (object instanceof PersistentProperty) {
return slash((PersistentProperty<?>) object);
}
return super.slash(object);
return PersistentProperty.class.isInstance(object) //
? slash((PersistentProperty<?>) object)
: super.slash(object);
}
public RepositoryLinkBuilder slash(PersistentProperty<?> property) {
@@ -83,11 +86,11 @@ public class RepositoryLinkBuilder extends LinkBuilderSupport<RepositoryLinkBuil
/*
* (non-Javadoc)
* @see org.springframework.hateoas.core.LinkBuilderSupport#createNewInstance(org.springframework.web.util.UriComponentsBuilder)
* @see org.springframework.hateoas.core.LinkBuilderSupport#createNewInstance(org.springframework.web.util.UriComponentsBuilder, java.util.List)
*/
@Override
protected RepositoryLinkBuilder createNewInstance(UriComponentsBuilder builder) {
return new RepositoryLinkBuilder(this.metadata, builder);
protected RepositoryLinkBuilder createNewInstance(UriComponentsBuilder builder, List<Affordance> affordances) {
return new RepositoryLinkBuilder(this.metadata, builder, affordances);
}
/*