From ecea82d3a557614aba454ea3ed79817febc596f7 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 23 Oct 2017 17:14:09 +0200 Subject: [PATCH] Polishing --- .../core/type/StandardAnnotationMetadata.java | 4 +- .../MethodMetadataReadingVisitor.java | 3 +- .../http/ContentDisposition.java | 163 +++++++++--------- 3 files changed, 85 insertions(+), 85 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java index 46d28f407c..4a9195b0d6 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -156,7 +156,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements public Set getAnnotatedMethods(String annotationName) { try { Method[] methods = getIntrospectedClass().getDeclaredMethods(); - Set annotatedMethods = new LinkedHashSet<>(); + Set annotatedMethods = new LinkedHashSet<>(4); for (Method method : methods) { if (!method.isBridge() && method.getAnnotations().length > 0 && AnnotatedElementUtils.isAnnotated(method, annotationName)) { diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java index 9854088829..0c6c9ba0c1 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java @@ -79,12 +79,13 @@ public class MethodMetadataReadingVisitor extends MethodVisitor implements Metho @Override public AnnotationVisitor visitAnnotation(final String desc, boolean visible) { - String className = Type.getType(desc).getClassName(); this.methodMetadataSet.add(this); + String className = Type.getType(desc).getClassName(); return new AnnotationAttributesReadingVisitor( className, this.attributesMap, this.metaAnnotationMap, this.classLoader); } + @Override public String getMethodName() { return this.methodName; diff --git a/spring-web/src/main/java/org/springframework/http/ContentDisposition.java b/spring-web/src/main/java/org/springframework/http/ContentDisposition.java index e8985d81de..7554373e82 100644 --- a/spring-web/src/main/java/org/springframework/http/ContentDisposition.java +++ b/spring-web/src/main/java/org/springframework/http/ContentDisposition.java @@ -27,9 +27,8 @@ import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; -import static java.nio.charset.StandardCharsets.ISO_8859_1; -import static java.nio.charset.StandardCharsets.UTF_8; -import static java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME; +import static java.nio.charset.StandardCharsets.*; +import static java.time.format.DateTimeFormatter.*; /** * Represent the Content-Disposition type and parameters as defined in RFC 2183. @@ -151,6 +150,85 @@ public class ContentDisposition { } + @Override + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof ContentDisposition)) { + return false; + } + ContentDisposition otherCd = (ContentDisposition) other; + return (ObjectUtils.nullSafeEquals(this.type, otherCd.type) && + ObjectUtils.nullSafeEquals(this.name, otherCd.name) && + ObjectUtils.nullSafeEquals(this.filename, otherCd.filename) && + ObjectUtils.nullSafeEquals(this.charset, otherCd.charset) && + ObjectUtils.nullSafeEquals(this.size, otherCd.size) && + ObjectUtils.nullSafeEquals(this.creationDate, otherCd.creationDate)&& + ObjectUtils.nullSafeEquals(this.modificationDate, otherCd.modificationDate)&& + ObjectUtils.nullSafeEquals(this.readDate, otherCd.readDate)); + } + + @Override + public int hashCode() { + int result = ObjectUtils.nullSafeHashCode(this.type); + result = 31 * result + ObjectUtils.nullSafeHashCode(this.name); + result = 31 * result + ObjectUtils.nullSafeHashCode(this.filename); + result = 31 * result + ObjectUtils.nullSafeHashCode(this.charset); + result = 31 * result + ObjectUtils.nullSafeHashCode(this.size); + result = 31 * result + (creationDate != null ? creationDate.hashCode() : 0); + result = 31 * result + (modificationDate != null ? modificationDate.hashCode() : 0); + result = 31 * result + (readDate != null ? readDate.hashCode() : 0); + return result; + } + + /** + * Return the header value for this content disposition as defined in RFC 2183. + * @see #parse(String) + */ + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + if (this.type != null) { + sb.append(this.type); + } + if (this.name != null) { + sb.append("; name=\""); + sb.append(this.name).append('\"'); + } + if (this.filename != null) { + if(this.charset == null || StandardCharsets.US_ASCII.equals(this.charset)) { + sb.append("; filename=\""); + sb.append(this.filename).append('\"'); + } + else { + sb.append("; filename*="); + sb.append(encodeHeaderFieldParam(this.filename, this.charset)); + } + } + if (this.size != null) { + sb.append("; size="); + sb.append(this.size); + } + if (this.creationDate != null) { + sb.append("; creation-date=\""); + sb.append(RFC_1123_DATE_TIME.format(this.creationDate)); + sb.append('\"'); + } + if (this.modificationDate != null) { + sb.append("; modification-date=\""); + sb.append(RFC_1123_DATE_TIME.format(this.modificationDate)); + sb.append('\"'); + } + if (this.readDate != null) { + sb.append("; read-date=\""); + sb.append(RFC_1123_DATE_TIME.format(this.readDate)); + sb.append('\"'); + } + return sb.toString(); + } + + /** * Return a builder for a {@code ContentDisposition}. * @param type the disposition type like for example {@literal inline}, @@ -170,7 +248,6 @@ public class ContentDisposition { /** * Parse a {@literal Content-Disposition} header value as defined in RFC 2183. - * * @param contentDisposition the {@literal Content-Disposition} header value * @return the parsed content disposition * @see #toString() @@ -286,84 +363,6 @@ public class ContentDisposition { c == '.' || c == '^' || c == '_' || c == '`' || c == '|' || c == '~'; } - @Override - public boolean equals(Object other) { - if (this == other) { - return true; - } - if (!(other instanceof ContentDisposition)) { - return false; - } - ContentDisposition otherCd = (ContentDisposition) other; - return (ObjectUtils.nullSafeEquals(this.type, otherCd.type) && - ObjectUtils.nullSafeEquals(this.name, otherCd.name) && - ObjectUtils.nullSafeEquals(this.filename, otherCd.filename) && - ObjectUtils.nullSafeEquals(this.charset, otherCd.charset) && - ObjectUtils.nullSafeEquals(this.size, otherCd.size) && - ObjectUtils.nullSafeEquals(this.creationDate, otherCd.creationDate)&& - ObjectUtils.nullSafeEquals(this.modificationDate, otherCd.modificationDate)&& - ObjectUtils.nullSafeEquals(this.readDate, otherCd.readDate)); - } - - @Override - public int hashCode() { - int result = ObjectUtils.nullSafeHashCode(this.type); - result = 31 * result + ObjectUtils.nullSafeHashCode(this.name); - result = 31 * result + ObjectUtils.nullSafeHashCode(this.filename); - result = 31 * result + ObjectUtils.nullSafeHashCode(this.charset); - result = 31 * result + ObjectUtils.nullSafeHashCode(this.size); - result = 31 * result + (creationDate != null ? creationDate.hashCode() : 0); - result = 31 * result + (modificationDate != null ? modificationDate.hashCode() : 0); - result = 31 * result + (readDate != null ? readDate.hashCode() : 0); - return result; - } - - /** - * Return the header value for this content disposition as defined in RFC 2183. - * @see #parse(String) - */ - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - if (this.type != null) { - sb.append(this.type); - } - if (this.name != null) { - sb.append("; name=\""); - sb.append(this.name).append('\"'); - } - if (this.filename != null) { - if(this.charset == null || StandardCharsets.US_ASCII.equals(this.charset)) { - sb.append("; filename=\""); - sb.append(this.filename).append('\"'); - } - else { - sb.append("; filename*="); - sb.append(encodeHeaderFieldParam(this.filename, this.charset)); - } - } - if (this.size != null) { - sb.append("; size="); - sb.append(this.size); - } - if (this.creationDate != null) { - sb.append("; creation-date=\""); - sb.append(RFC_1123_DATE_TIME.format(this.creationDate)); - sb.append('\"'); - } - if (this.modificationDate != null) { - sb.append("; modification-date=\""); - sb.append(RFC_1123_DATE_TIME.format(this.modificationDate)); - sb.append('\"'); - } - if (this.readDate != null) { - sb.append("; read-date=\""); - sb.append(RFC_1123_DATE_TIME.format(this.readDate)); - sb.append('\"'); - } - return sb.toString(); - } - /** * Encode the given header field param as describe in RFC 5987. * @param input the header field param