List load()

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;
	}