DATAREST-1341 - Adapt RepositoryLinkBuilder to API changes in Spring HATEOAS.
Removed obsolete BaseUriLinkBuilder as well.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user