Polishing
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
@@ -30,9 +30,9 @@ import org.springframework.core.convert.converter.Converter;
|
||||
*/
|
||||
final class StringToBooleanConverter implements Converter<String, Boolean> {
|
||||
|
||||
private static final Set<String> trueValues = new HashSet<>(4);
|
||||
private static final Set<String> trueValues = new HashSet<>(8);
|
||||
|
||||
private static final Set<String> falseValues = new HashSet<>(4);
|
||||
private static final Set<String> falseValues = new HashSet<>(8);
|
||||
|
||||
static {
|
||||
trueValues.add("true");
|
||||
@@ -46,10 +46,11 @@ final class StringToBooleanConverter implements Converter<String, Boolean> {
|
||||
falseValues.add("0");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean convert(String source) {
|
||||
String value = source.trim();
|
||||
if ("".equals(value)) {
|
||||
if (value.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
value = value.toLowerCase();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
@@ -19,6 +19,7 @@ package org.springframework.core.convert.support;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
@@ -31,6 +32,7 @@ import org.springframework.util.StringUtils;
|
||||
final class StringToUUIDConverter implements Converter<String, UUID> {
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public UUID convert(String source) {
|
||||
return (StringUtils.hasLength(source) ? UUID.fromString(source.trim()) : null);
|
||||
}
|
||||
|
||||
@@ -369,10 +369,10 @@ public final class ContentDisposition {
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode the given header field param as describe in RFC 5987.
|
||||
* Decode the given header field param as described in RFC 5987.
|
||||
* <p>Only the US-ASCII, UTF-8 and ISO-8859-1 charsets are supported.
|
||||
* @param filename the header field param
|
||||
* @param charset the charset to use
|
||||
* @param filename the filename
|
||||
* @param charset the charset for the filename
|
||||
* @return the encoded header field param
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5987">RFC 5987</a>
|
||||
*/
|
||||
@@ -380,18 +380,18 @@ public final class ContentDisposition {
|
||||
Assert.notNull(filename, "'input' String` should not be null");
|
||||
Assert.notNull(charset, "'charset' should not be null");
|
||||
byte[] value = filename.getBytes(charset);
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
int index = 0;
|
||||
while (index < value.length) {
|
||||
byte b = value[index];
|
||||
if (isRFC5987AttrChar(b)) {
|
||||
bos.write((char) b);
|
||||
baos.write((char) b);
|
||||
index++;
|
||||
}
|
||||
else if (b == '%' && index < value.length - 2) {
|
||||
char[] array = new char[]{(char) value[index + 1], (char) value[index + 2]};
|
||||
try {
|
||||
bos.write(Integer.parseInt(String.valueOf(array), 16));
|
||||
baos.write(Integer.parseInt(String.valueOf(array), 16));
|
||||
}
|
||||
catch (NumberFormatException ex) {
|
||||
throw new IllegalArgumentException(INVALID_HEADER_FIELD_PARAMETER_FORMAT, ex);
|
||||
@@ -402,7 +402,7 @@ public final class ContentDisposition {
|
||||
throw new IllegalArgumentException(INVALID_HEADER_FIELD_PARAMETER_FORMAT);
|
||||
}
|
||||
}
|
||||
return new String(bos.toByteArray(), charset);
|
||||
return new String(baos.toByteArray(), charset);
|
||||
}
|
||||
|
||||
private static boolean isRFC5987AttrChar(byte c) {
|
||||
@@ -522,7 +522,7 @@ public final class ContentDisposition {
|
||||
|
||||
private static class BuilderImpl implements Builder {
|
||||
|
||||
private String type;
|
||||
private final String type;
|
||||
|
||||
@Nullable
|
||||
private String name;
|
||||
|
||||
@@ -149,11 +149,11 @@ Let's consider some static pointcut implementations included with Spring.
|
||||
One obvious way to specify static pointcuts is regular expressions. Several AOP
|
||||
frameworks besides Spring make this possible.
|
||||
`org.springframework.aop.support.JdkRegexpMethodPointcut` is a generic regular
|
||||
expression pointcut, using the regular expression support in the JDK.
|
||||
expression pointcut that uses the regular expression support in the JDK.
|
||||
|
||||
Using the `JdkRegexpMethodPointcut` class, you can provide a list of pattern Strings. If
|
||||
any of these is a match, the pointcut will evaluate to true. (So the result is
|
||||
effectively the union of these pointcuts.)
|
||||
With the `JdkRegexpMethodPointcut` class, you can provide a list of pattern strings.
|
||||
If any of these is a match, the pointcut evaluates to `true`. (As a consequence,
|
||||
the resulting pointcut is effectively the union of the specified patterns.)
|
||||
|
||||
The usage is shown below:
|
||||
|
||||
|
||||
@@ -1359,7 +1359,7 @@ join point, unless you specify otherwise the order of execution is undefined. Yo
|
||||
control the order of execution by specifying precedence. This is done in the normal
|
||||
Spring way by either implementing the `org.springframework.core.Ordered` interface in
|
||||
the aspect class or annotating it with the `Order` annotation. Given two aspects, the
|
||||
aspect returning the lower value from `Ordered.getValue()` (or the annotation value) has
|
||||
aspect returning the lower value from `Ordered.getOrder()` (or the annotation value) has
|
||||
the higher precedence.
|
||||
|
||||
When two pieces of advice defined in __the same__ aspect both need to run at the same
|
||||
|
||||
@@ -39,7 +39,7 @@ information on using the `BeanFactory` instead of the `ApplicationContext,` refe
|
||||
|
||||
In Spring, the objects that form the backbone of your application and that are managed
|
||||
by the Spring IoC __container__ are called __beans__. A bean is an object that is
|
||||
instantiated, assembled, and otherwise managed by a Spring IoC container. Otherwise, a
|
||||
instantiated, assembled, and managed by a Spring IoC container. Otherwise, a
|
||||
bean is simply one of many objects in your application. Beans, and the __dependencies__
|
||||
among them, are reflected in the __configuration metadata__ used by a container.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user