in baremaps-core/src/main/java/org/apache/baremaps/iploc/NicSpliterator.java [54:95]
public boolean tryAdvance(Consumer<? super NicObject> consumer) {
var keyBuilder = new StringBuilder();
var valBuilder = new StringBuilder();
var attributes = new ArrayList<NicAttribute>();
boolean tryAdvance;
while ((tryAdvance = lineSpliterator.tryAdvance(this::acceptLine)) && !"".equals(line)) {
// handle multiline values
if (line.startsWith(" ")) {
valBuilder.append("\n");
valBuilder.append(line.trim());
}
// handle multiline values
else if (line.startsWith("+")) {
valBuilder.append("\n");
valBuilder.append(line.substring(1).trim());
}
// handle attribute line
else if (!line.startsWith("#") && !line.startsWith("%")) {
int index = line.indexOf(":");
if (index >= 0) {
addAttribute(attributes, keyBuilder, valBuilder);
keyBuilder = new StringBuilder();
valBuilder = new StringBuilder();
keyBuilder.append(line.substring(0, index).trim());
valBuilder.append(line.substring(index + 1).trim());
}
}
}
// handle last attribute
addAttribute(attributes, keyBuilder, valBuilder);
// build object
if (!attributes.isEmpty()) {
consumer.accept(new NicObject(attributes));
}
return tryAdvance;
}