in initializer-generator/src/main/java/com/alibaba/initializer/core/template/CodeTemplateRepo.java [59:94]
public CodeTemplateRepo subRepo(String subRoot) {
if (StringUtils.isBlank(subRoot) || ".".equalsIgnoreCase(subRoot)) {
return this;
}
Path subPathPrefix = Paths.get(subRoot);
List<CodeTemplate> subResourcesList = templates
.stream()
.filter(temp -> temp.getFullPath().startsWith(subPathPrefix))
.map(source -> {
Path folder = subPathPrefix.relativize(source.getFullPath());
String name = source.getFileName();
return new CodeTemplate(folder, name) {
@Override
public Reader getReader() throws IOException {
return source.getReader();
}
};
})
.collect(Collectors.toList());
String path = uri.getPath();
if (path == null) {
path = "";
}
if (path.endsWith("/")) {
path += subRoot;
} else {
path += "/" + subRoot;
}
URI subUri = new URI(uri.getScheme(), uri.getUserInfo(), uri.getHost(), uri.getPort(), path, uri.getQuery(), uri.getFragment());
return new CodeTemplateRepo(subUri, subResourcesList);
}