public String asRepoInitString()

in src/main/java/org/apache/sling/repoinit/parser/operations/CreatePath.java [56:94]


    public String asRepoInitString() {
        String defaultTypeStr = (defaultPrimaryType == null) ? "" : "("+defaultPrimaryType+") ";
        StringBuilder sb = new StringBuilder();
        for (PathSegmentDefinition psd : getDefinitions()) {
            sb.append("/").append(psd.getSegment());
            List<String> mixins = psd.getMixins();
            if (!psd.isDefaultPrimary() || !mixins.isEmpty()) {
                sb.append("(");
                if (!psd.isDefaultPrimary()) {
                    sb.append(psd.getPrimaryType());
                }
                if (!mixins.isEmpty()) {
                    sb.append(" mixin ").append(listToString(mixins));
                }
                sb.append(")");
            }
        }

        // FIXME: see SLING-10238 for type and quoted values that cannot be generated
        //        exactly as they were originally defined in repo-init
        try (Formatter formatter = new Formatter()) {
            if (lines.isEmpty()) {
                formatter.format("create path %s%s%n",  defaultTypeStr, sb.toString());
            } else {
                formatter.format("create path %s%s with properties%n",  defaultTypeStr, sb.toString());
                for (PropertyLine line : lines) {
                    String type = (line.getPropertyType() == null) ? "" : "{" + line.getPropertyType().name() + "}";
                    String values = SetProperties.valuesToString(line.getPropertyValues(), line.getPropertyType());
                    if (line.isDefault()) {
                        formatter.format("default %s%s to %s%n", line.getPropertyName(), type, values);
                    } else {
                        formatter.format("set %s%s to %s%n", line.getPropertyName(), type, values);
                    }
                }
                formatter.format("end%n");
            }
            return formatter.toString();
        }
    }