diff --git a/src/main/java/org/springframework/hateoas/StringLinkRelation.java b/src/main/java/org/springframework/hateoas/StringLinkRelation.java index 462cf782..ac018cfe 100644 --- a/src/main/java/org/springframework/hateoas/StringLinkRelation.java +++ b/src/main/java/org/springframework/hateoas/StringLinkRelation.java @@ -15,7 +15,9 @@ */ package org.springframework.hateoas; +import lombok.AccessLevel; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import lombok.Value; import java.io.Serializable; @@ -34,6 +36,7 @@ import com.fasterxml.jackson.annotation.JsonValue; * @author Oliver Drotbohm */ @Value +@RequiredArgsConstructor(access = AccessLevel.PRIVATE) class StringLinkRelation implements LinkRelation, Serializable { private static final long serialVersionUID = -3904935345545567957L; @@ -41,13 +44,6 @@ class StringLinkRelation implements LinkRelation, Serializable { @NonNull String relation; - private StringLinkRelation(String relation) { - - Assert.notNull(relation, "relation must not be null!"); - - this.relation = relation; - } - /** * Returns a (potentially cached) {@link LinkRelation} for the given value. * diff --git a/src/main/java/org/springframework/hateoas/client/JsonPathLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/client/JsonPathLinkDiscoverer.java index 030d8ec7..fbbb0a15 100644 --- a/src/main/java/org/springframework/hateoas/client/JsonPathLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/client/JsonPathLinkDiscoverer.java @@ -15,8 +15,6 @@ */ package org.springframework.hateoas.client; -import net.minidev.json.JSONArray; - import java.io.IOException; import java.io.InputStream; import java.util.Arrays; @@ -27,6 +25,7 @@ import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; +import net.minidev.json.JSONArray; import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.Links; @@ -166,12 +165,12 @@ public class JsonPathLinkDiscoverer implements LinkDiscoverer { JSONArray jsonArray = (JSONArray) parseResult; return jsonArray.stream() // - .flatMap(it -> it instanceof JSONArray ? ((JSONArray) it).stream() : Stream.of(it)) // + .flatMap(it -> JSONArray.class.isInstance(it) ? ((JSONArray) it).stream() : Stream.of(it)) // .map(it -> extractLink(it, rel)) // .collect(Collectors.collectingAndThen(Collectors.toList(), Links::of)); } - return Links.of(parseResult instanceof Map // + return Links.of(Map.class.isInstance(parseResult) // ? extractLink(parseResult, rel) // : new Link(parseResult.toString(), rel)); } diff --git a/src/main/java/org/springframework/hateoas/config/WebMvcHateoasConfiguration.java b/src/main/java/org/springframework/hateoas/config/WebMvcHateoasConfiguration.java index 5a4d478a..3bdc985b 100644 --- a/src/main/java/org/springframework/hateoas/config/WebMvcHateoasConfiguration.java +++ b/src/main/java/org/springframework/hateoas/config/WebMvcHateoasConfiguration.java @@ -110,7 +110,7 @@ class WebMvcHateoasConfiguration { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { - if (!(RestTemplate.class.isInstance(bean))) { + if (!RestTemplate.class.isInstance(bean)) { return bean; } diff --git a/src/main/java/org/springframework/hateoas/mediatype/PropertyUtils.java b/src/main/java/org/springframework/hateoas/mediatype/PropertyUtils.java index 5ac33148..9245b4c2 100644 --- a/src/main/java/org/springframework/hateoas/mediatype/PropertyUtils.java +++ b/src/main/java/org/springframework/hateoas/mediatype/PropertyUtils.java @@ -66,20 +66,20 @@ public class PropertyUtils { return findProperties(((EntityModel) object).getContent()); } - return getPropertyDescriptors(object.getClass()) - .collect(HashMap::new, - (hashMap, descriptor) -> { - try { - Method readMethod = descriptor.getReadMethod(); - ReflectionUtils.makeAccessible(readMethod); - hashMap.put(descriptor.getName(), readMethod.invoke(object)); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new RuntimeException(e); - } - }, - HashMap::putAll); + return getPropertyDescriptors(object.getClass()) // + .collect(HashMap::new, // + (hashMap, descriptor) -> { + try { + Method readMethod = descriptor.getReadMethod(); + ReflectionUtils.makeAccessible(readMethod); + hashMap.put(descriptor.getName(), readMethod.invoke(object)); + } catch (IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException(e); + } + }, // + HashMap::putAll); } - + public static List findPropertyNames(ResolvableType resolvableType) { if (WebStack.WEBFLUX.isAvailable()) { @@ -92,14 +92,14 @@ public class PropertyUtils { if (resolvableType.getRawClass() == null) { return Collections.emptyList(); } - + if (resolvableType.getRawClass().equals(EntityModel.class)) { Class genericEntityModelParameter = resolvableType.resolveGeneric(0); if (genericEntityModelParameter == null) { return Collections.emptyList(); } - + return findPropertyNames(genericEntityModelParameter); } else { return findPropertyNames(resolvableType.getRawClass()); @@ -108,13 +108,13 @@ public class PropertyUtils { public static List findPropertyNames(Class clazz) { - return getPropertyDescriptors(clazz) - .map(FeatureDescriptor::getName) - .collect(Collectors.toList()); + return getPropertyDescriptors(clazz) // + .map(FeatureDescriptor::getName) // + .collect(Collectors.toList()); } public static T createObjectFromProperties(Class clazz, Map properties) { - + T obj = BeanUtils.instantiateClass(clazz); properties.forEach((key, value) -> { @@ -142,10 +142,10 @@ public class PropertyUtils { private static Stream getPropertyDescriptors(Class clazz) { return Arrays.stream(BeanUtils.getPropertyDescriptors(clazz)) - .filter(descriptor -> !FIELDS_TO_IGNORE.contains(descriptor.getName())) - .filter(descriptor -> !descriptorToBeIgnoredByJackson(clazz, descriptor)) - .filter(descriptor -> !toBeIgnoredByJackson(clazz, descriptor.getName())) - .filter(descriptor -> !readerIsNotToBeIgnoredByJackson(descriptor)); + .filter(descriptor -> !FIELDS_TO_IGNORE.contains(descriptor.getName())) + .filter(descriptor -> !descriptorToBeIgnoredByJackson(clazz, descriptor)) + .filter(descriptor -> !toBeIgnoredByJackson(clazz, descriptor.getName())) + .filter(descriptor -> !readerIsNotToBeIgnoredByJackson(descriptor)); } /** @@ -184,15 +184,15 @@ public class PropertyUtils { */ private static boolean toBeIgnoredByJackson(@Nullable Annotation[] annotations) { - if (annotations != null) { - for (Annotation annotation : annotations) { - if (annotation.annotationType().equals(JsonIgnore.class)) { - return (Boolean) AnnotationUtils.getAnnotationAttributes(annotation).get("value"); - } - } + if (annotations == null) { + return false; } - return false; + return Arrays.stream(annotations) // + .filter(annotation -> annotation.annotationType().equals(JsonIgnore.class)) // + .findFirst() // + .map(annotation -> (Boolean) AnnotationUtils.getAnnotationAttributes(annotation).get("value")) // + .orElse(false); } /** @@ -206,20 +206,15 @@ public class PropertyUtils { Annotation[] annotations = AnnotationUtils.getAnnotations(clazz); - if (annotations != null) { - for (Annotation annotation : annotations) { - if (annotation.annotationType().equals(JsonIgnoreProperties.class)) { - String[] namesOfPropertiesToIgnore = (String[]) AnnotationUtils.getAnnotationAttributes(annotation).get("value"); - for (String propertyToIgnore : namesOfPropertiesToIgnore) { - if (propertyToIgnore.equalsIgnoreCase(field)) { - return true; - } - } - } - } + if (annotations == null) { + return false; } - - return false; + + return Arrays.stream(annotations) // + .filter(annotation -> annotation.annotationType().equals(JsonIgnoreProperties.class)) // + .map(annotation -> (String[]) AnnotationUtils.getAnnotationAttributes(annotation).get("value")) // + .flatMap(Arrays::stream) // + .anyMatch(propertyName -> propertyName.equalsIgnoreCase(field)); } } diff --git a/src/main/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonModule.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonModule.java index 86ee454d..8f864c1a 100644 --- a/src/main/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonModule.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonModule.java @@ -798,7 +798,7 @@ class Jackson2CollectionJsonModule extends SimpleModule { return resources.getContent().stream().map(content -> { - if (!(EntityModel.class.isInstance(content))) { + if (!EntityModel.class.isInstance(content)) { return new CollectionJsonItem<>().withRawData(content); } diff --git a/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscoverer.java index c43117ed..5dd7ee99 100644 --- a/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscoverer.java @@ -51,7 +51,7 @@ public class HalLinkDiscoverer extends JsonPathLinkDiscoverer { @SuppressWarnings("unchecked") protected Link extractLink(Object element, LinkRelation rel) { - if (!(Map.class.isInstance(element))) { + if (!Map.class.isInstance(element)) { return super.extractLink(element, rel); } diff --git a/src/main/java/org/springframework/hateoas/mediatype/hal/Jackson2HalModule.java b/src/main/java/org/springframework/hateoas/mediatype/hal/Jackson2HalModule.java index e34530e7..2524cc64 100644 --- a/src/main/java/org/springframework/hateoas/mediatype/hal/Jackson2HalModule.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/Jackson2HalModule.java @@ -431,7 +431,7 @@ public class Jackson2HalModule extends SimpleModule { Object firstElement = list.get(0); - if (!(HalLink.class.isInstance(firstElement))) { + if (!HalLink.class.isInstance(firstElement)) { serializeContents(list, jgen, provider); return; } diff --git a/src/test/java/org/springframework/hateoas/LinkUnitTest.java b/src/test/java/org/springframework/hateoas/LinkUnitTest.java index 252b8b44..d60b553f 100755 --- a/src/test/java/org/springframework/hateoas/LinkUnitTest.java +++ b/src/test/java/org/springframework/hateoas/LinkUnitTest.java @@ -451,18 +451,4 @@ public class LinkUnitTest { public void uriCreationRejectsLinkWithUnresolvedMandatoryParameters() { assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() -> new Link("/{segment}/path").toUri()); } - - @Test - public void foo() { - String foo = getIt(); - - if (foo == null) { - System.out.println("Yo"); - } - } - - private String getIt() { - return null; - } - }