#1399 - Make sure curie information is rendered for pre-curied links.

We previously didn't render the curie information if the process of curying didn't actually change the link relation if it was already given in a curied form. We now check preprocessed link relation for a curie and include the curie information if we find a curie.
This commit is contained in:
Oliver Drotbohm
2020-11-23 13:48:15 +01:00
parent 3bd1df42b6
commit fc9d2a6777
2 changed files with 15 additions and 16 deletions

View File

@@ -49,20 +49,8 @@ import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.core.Version;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.DeserializationConfig;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.KeyDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.PropertyNamingStrategy.PropertyNamingStrategyBase;
import com.fasterxml.jackson.databind.SerializationConfig;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.cfg.HandlerInstantiator;
import com.fasterxml.jackson.databind.cfg.MapperConfig;
import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
@@ -187,13 +175,12 @@ public class Jackson2HalModule extends SimpleModule {
}
LinkRelation rel = prefixingRequired ? curieProvider.getNamespacedRelFrom(link) : link.getRel();
HalLinkRelation relation = transformingMapper.map(rel);
if (!link.hasRel(rel)) {
if (relation.isCuried()) {
curiedLinkPresent = true;
}
HalLinkRelation relation = transformingMapper.map(rel);
sortedLinks //
.computeIfAbsent(relation, key -> new ArrayList<>())//
.add(toHalLink(link, relation));