Skip to content

Commit

Permalink
refactor(#130): move NoSuchMessageException handling to wrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
ingogriebsch committed Nov 1, 2020
1 parent e00d633 commit 3179a5e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
import com.fasterxml.jackson.databind.ser.ContainerSerializer;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import org.springframework.context.NoSuchMessageException;
import org.springframework.hateoas.LinkRelation;
import org.springframework.hateoas.RepresentationModel;

Expand Down Expand Up @@ -92,13 +91,7 @@ protected List<LinkRelation> rels(RepresentationModel<?> model, SerializerProvid
}

protected String title(Class<?> type) {
String title;
try {
title = serializerFacilities.getMessageResolver().resolve(SirenEntity.TitleResolvable.of(type));
} catch (NoSuchMessageException e) {
title = null;
}
return title;
return serializerFacilities.getMessageResolver().resolve(SirenEntity.TitleResolvable.of(type));
}

protected Object setAttribute(String key, Object value, SerializerProvider provider) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import de.ingogriebsch.spring.hateoas.siren.SirenAction.Field;
import lombok.RequiredArgsConstructor;
import org.springframework.context.MessageSourceResolvable;
import org.springframework.context.NoSuchMessageException;
import org.springframework.hateoas.Affordance;
import org.springframework.hateoas.AffordanceModel.InputPayloadMetadata;
import org.springframework.hateoas.AffordanceModel.PropertyMetadata;
Expand Down Expand Up @@ -147,13 +146,7 @@ private String fieldTitle(String name) {
}

private String title(MessageSourceResolvable resolvable) {
String title;
try {
title = messageResolver.resolve(resolvable);
} catch (NoSuchMessageException e) {
title = null;
}
return title;
return messageResolver.resolve(resolvable);
}

private String fieldType(PropertyMetadata propertyMetadata, MediaType actionType) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.Value;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.context.MessageSourceResolvable;
import org.springframework.context.NoSuchMessageException;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.hateoas.client.LinkDiscoverer;
Expand Down Expand Up @@ -100,11 +103,15 @@ private SirenDeserializerFacilities deserializerFacilities() {
}

private SirenSerializerFacilities serializerFacilities() {
return new SirenSerializerFacilities(entityClassProvider(), entityRelProvider(), linkConverter(), messageResolver);
return new SirenSerializerFacilities(entityClassProvider(), entityRelProvider(), linkConverter(), messageResolver());
}

private SirenLinkConverter linkConverter() {
return new SirenLinkConverter(messageResolver, sirenActionFieldTypeConverter());
return new SirenLinkConverter(messageResolver(), sirenActionFieldTypeConverter());
}

private MessageResolver messageResolver() {
return new NoSuchMessageExceptionSuppressingMessageResolver(messageResolver);
}

private SirenEntityClassProvider entityClassProvider() {
Expand All @@ -128,4 +135,19 @@ private RepresentationModelFactories representationModelFactories() {
return representationModelFactories.getIfAvailable(() -> new RepresentationModelFactories() {
});
}

@Value
private static class NoSuchMessageExceptionSuppressingMessageResolver implements MessageResolver {

MessageResolver delegate;

@Override
public String resolve(MessageSourceResolvable resolvable) {
try {
return delegate.resolve(resolvable);
} catch (NoSuchMessageException e) {
return null;
}
}
}
}

0 comments on commit 3179a5e

Please sign in to comment.