public static boolean processSegments()

in src/main/java/org/apache/sling/feature/cpconverter/repoinit/createpath/CreatePathSegmentProcessor.java [47:73]


    public static boolean processSegments(@NotNull RepoPath path, @NotNull Collection<VaultPackageAssembler> packageAssemblers, @NotNull CreatePath cp) {
        String repositoryPath = "";
        boolean foundType = false;
        for (final String part : path.getSegments()) {
            final String platformName = PlatformNameFormat.getPlatformName(part);
            repositoryPath = repositoryPath.concat(ConverterConstants.SLASH).concat(platformName);

            boolean segmentAdded = false;
            //loop all package assemblers and check if .content.xml is defined
            for (VaultPackageAssembler packageAssembler : packageAssemblers) {
                File currentContent = packageAssembler.getFileEntry(repositoryPath.concat(ConverterConstants.SLASH).concat(DOT_CONTENT_XML));
                if (currentContent.exists() && currentContent.isFile()) {
                    //add segment if jcr:primaryType is defined.
                    segmentAdded = addSegment(cp, part, currentContent);
                    if (segmentAdded) {
                        foundType = true;
                        break;
                    }
                }
            }
            if (!segmentAdded) {
                //use sling:Folder (defined by repo-init runtime module)
                cp.addSegment(part, null);
            }
        }
        return foundType;
    }