in src/main/java/org/apache/sling/repoinit/parser/operations/EnsureNodes.java [51:89]
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("ensure nodes %s%s%n", defaultTypeStr, sb.toString());
} else {
formatter.format("ensure nodes %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();
}
}