Polishing

This commit is contained in:
Juergen Hoeller 2019-06-12 13:29:35 +02:00
parent 98a49b46b7
commit 918ffacdf8
2 changed files with 11 additions and 17 deletions

View File

@ -43,7 +43,7 @@ import org.springframework.util.MultiValueMap;
import org.springframework.util.ReflectionUtils; import org.springframework.util.ReflectionUtils;
/** /**
* Factory for collections that is aware of Java 5, Java 6, and Spring collection types. * Factory for collections that is aware of common Java and Spring collection types.
* *
* <p>Mainly for internal use within the framework. * <p>Mainly for internal use within the framework.
* *
@ -353,12 +353,10 @@ public final class CollectionFactory {
/** /**
* Create a variant of {@link java.util.Properties} that sorts properties * Create a variant of {@link java.util.Properties} that sorts properties
* alphanumerically based on their keys. * alphanumerically based on their keys.
*
* <p>This can be useful when storing the {@link Properties} instance in a * <p>This can be useful when storing the {@link Properties} instance in a
* properties file, since it allows such files to be generated in a repeatable * properties file, since it allows such files to be generated in a repeatable
* manner with consistent ordering of properties. Comments in generated * manner with consistent ordering of properties. Comments in generated
* properties files can also be optionally omitted. * properties files can also be optionally omitted.
*
* @param omitComments {@code true} if comments should be omitted when * @param omitComments {@code true} if comments should be omitted when
* storing properties in a file * storing properties in a file
* @return a new {@code Properties} instance * @return a new {@code Properties} instance
@ -373,16 +371,13 @@ public final class CollectionFactory {
/** /**
* Create a variant of {@link java.util.Properties} that sorts properties * Create a variant of {@link java.util.Properties} that sorts properties
* alphanumerically based on their keys. * alphanumerically based on their keys.
*
* <p>This can be useful when storing the {@code Properties} instance in a * <p>This can be useful when storing the {@code Properties} instance in a
* properties file, since it allows such files to be generated in a repeatable * properties file, since it allows such files to be generated in a repeatable
* manner with consistent ordering of properties. Comments in generated * manner with consistent ordering of properties. Comments in generated
* properties files can also be optionally omitted. * properties files can also be optionally omitted.
*
* <p>The returned {@code Properties} instance will be populated with * <p>The returned {@code Properties} instance will be populated with
* properties from the supplied {@code properties} object, but default * properties from the supplied {@code properties} object, but default
* properties from the supplied {@code properties} object will not be copied. * properties from the supplied {@code properties} object will not be copied.
*
* @param properties the {@code Properties} object from which to copy the * @param properties the {@code Properties} object from which to copy the
* initial properties * initial properties
* @param omitComments {@code true} if comments should be omitted when * @param omitComments {@code true} if comments should be omitted when

View File

@ -30,6 +30,8 @@ import java.util.Properties;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import org.springframework.lang.Nullable;
/** /**
* Specialization of {@link Properties} that sorts properties alphanumerically * Specialization of {@link Properties} that sorts properties alphanumerically
* based on their keys. * based on their keys.
@ -49,11 +51,10 @@ class SortedProperties extends Properties {
static final String EOL = System.lineSeparator(); static final String EOL = System.lineSeparator();
private static final Comparator<Object> keyComparator = // private static final Comparator<Object> keyComparator = Comparator.comparing(String::valueOf);
(key1, key2) -> String.valueOf(key1).compareTo(String.valueOf(key2));
private static final Comparator<Entry<Object, Object>> entryComparator = Entry.comparingByKey(keyComparator);
private static final Comparator<Entry<Object, Object>> entryComparator = //
Entry.comparingByKey(keyComparator);
private final boolean omitComments; private final boolean omitComments;
@ -61,7 +62,6 @@ class SortedProperties extends Properties {
/** /**
* Construct a new {@code SortedProperties} instance that honors the supplied * Construct a new {@code SortedProperties} instance that honors the supplied
* {@code omitComments} flag. * {@code omitComments} flag.
*
* @param omitComments {@code true} if comments should be omitted when * @param omitComments {@code true} if comments should be omitted when
* storing properties in a file * storing properties in a file
*/ */
@ -73,10 +73,8 @@ class SortedProperties extends Properties {
* Construct a new {@code SortedProperties} instance with properties populated * Construct a new {@code SortedProperties} instance with properties populated
* from the supplied {@link Properties} object and honoring the supplied * from the supplied {@link Properties} object and honoring the supplied
* {@code omitComments} flag. * {@code omitComments} flag.
*
* <p>Default properties from the supplied {@code Properties} object will * <p>Default properties from the supplied {@code Properties} object will
* not be copied. * not be copied.
*
* @param properties the {@code Properties} object from which to copy the * @param properties the {@code Properties} object from which to copy the
* initial properties * initial properties
* @param omitComments {@code true} if comments should be omitted when * @param omitComments {@code true} if comments should be omitted when
@ -87,8 +85,9 @@ class SortedProperties extends Properties {
putAll(properties); putAll(properties);
} }
@Override @Override
public void store(OutputStream out, String comments) throws IOException { public void store(OutputStream out, @Nullable String comments) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
super.store(baos, (this.omitComments ? null : comments)); super.store(baos, (this.omitComments ? null : comments));
String contents = new String(baos.toByteArray(), StandardCharsets.ISO_8859_1); String contents = new String(baos.toByteArray(), StandardCharsets.ISO_8859_1);
@ -100,7 +99,7 @@ class SortedProperties extends Properties {
} }
@Override @Override
public void store(Writer writer, String comments) throws IOException { public void store(Writer writer, @Nullable String comments) throws IOException {
StringWriter stringWriter = new StringWriter(); StringWriter stringWriter = new StringWriter();
super.store(stringWriter, (this.omitComments ? null : comments)); super.store(stringWriter, (this.omitComments ? null : comments));
String contents = stringWriter.toString(); String contents = stringWriter.toString();
@ -112,12 +111,12 @@ class SortedProperties extends Properties {
} }
@Override @Override
public void storeToXML(OutputStream out, String comments) throws IOException { public void storeToXML(OutputStream out, @Nullable String comments) throws IOException {
super.storeToXML(out, (this.omitComments ? null : comments)); super.storeToXML(out, (this.omitComments ? null : comments));
} }
@Override @Override
public void storeToXML(OutputStream out, String comments, String encoding) throws IOException { public void storeToXML(OutputStream out, @Nullable String comments, String encoding) throws IOException {
super.storeToXML(out, (this.omitComments ? null : comments), encoding); super.storeToXML(out, (this.omitComments ? null : comments), encoding);
} }