in spring-boot-project/spring-boot/src/main/java/org/springframework/boot/env/OriginTrackedPropertiesLoader.java [76:117]
List<Document> load(boolean expandLists) throws IOException {
List<Document> result = new ArrayList<>();
Document document = new Document();
try (CharacterReader reader = new CharacterReader(this.resource)) {
StringBuilder buffer = new StringBuilder();
while (reader.read()) {
if (reader.getCharacter() == '#') {
if (isNewDocument(reader)) {
if (!document.isEmpty()) {
result.add(document);
}
document = new Document();
}
else {
reader.skipComment();
}
}
String key = loadKey(buffer, reader).trim();
if (expandLists && key.endsWith("[]")) {
key = key.substring(0, key.length() - 2);
int index = 0;
do {
OriginTrackedValue value = loadValue(buffer, reader, true);
document.put(key + "[" + (index++) + "]", value);
if (!reader.isEndOfLine()) {
reader.read();
}
}
while (!reader.isEndOfLine());
}
else {
OriginTrackedValue value = loadValue(buffer, reader, false);
document.put(key, value);
}
}
}
if (!document.isEmpty() && !result.contains(document)) {
result.add(document);
}
return result;
}