in commons/src/main/java/com/epam/eco/schemacatalog/domain/metadata/format/DocParser.java [43:78]
public static List<Part> parse(String text) {
Validate.notNull(text, "Text is null");
if (text.isEmpty()) {
return Collections.singletonList(Text.EMPTY);
}
List<Part> parts = CACHE.get(text);
if (parts != null) {
return parts;
}
parts = new LinkedList<>();
int idx = 0;
while (idx < text.length()) {
TagAndPosition tagAndPos = parseNextTag(text, idx);
if (tagAndPos == null) {
parts.add(parseText(text.substring(idx)));
break;
}
if (idx < tagAndPos.position.getLeft()) {
parts.add(parseText(text.substring(idx, tagAndPos.position.getLeft())));
}
parts.add(tagAndPos.tag);
idx = tagAndPos.position.getRight() + 1;
}
List<Part> safeList = Collections.unmodifiableList(parts);
CACHE.put(text, safeList);
return safeList;
}