public CodeTemplateRepo subRepo()

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