in src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescription.java [197:248]
protected JsonObjectBuilder createJson() throws IOException {
final JsonObjectBuilder objectBuilder = super.createJson();
if ( this.getType() != null && this.getType() != PropertyType.STRING ) {
this.setString(objectBuilder, InternalConstants.KEY_TYPE, this.getType().name());
}
if ( this.getCardinality() != 1 ) {
objectBuilder.add(InternalConstants.KEY_CARDINALITY, this.getCardinality());
}
if ( this.isRequired() ) {
objectBuilder.add(InternalConstants.KEY_REQUIRED, this.isRequired());
}
this.setString(objectBuilder, InternalConstants.KEY_VARIABLE, this.getVariable());
if ( this.getRange() != null ) {
objectBuilder.add(InternalConstants.KEY_RANGE, this.getRange().toJSONObject());
}
if ( this.getIncludes() != null && this.getIncludes().length > 0 ) {
final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
for(final String v : this.getIncludes()) {
arrayBuilder.add(v);
}
objectBuilder.add(InternalConstants.KEY_INCLUDES, arrayBuilder);
}
if ( this.getExcludes() != null && this.getExcludes().length > 0 ) {
final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
for(final String v : this.getExcludes()) {
arrayBuilder.add(v);
}
objectBuilder.add(InternalConstants.KEY_EXCLUDES, arrayBuilder);
}
if ( this.getOptions() != null && !this.getOptions().isEmpty()) {
final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
for(final Option o : this.getOptions()) {
arrayBuilder.add(o.toJSONObject());
}
objectBuilder.add(InternalConstants.KEY_OPTIONS, arrayBuilder);
}
this.setString(objectBuilder, InternalConstants.KEY_REGEX, this.getRegex());
if ( this.getDefaultValue() != null ) {
objectBuilder.add(InternalConstants.KEY_DEFAULT, Configurations.convertToJsonValue(this.getDefaultValue()));
}
if ( this.getMode() != null ) {
objectBuilder.add(InternalConstants.KEY_MODE, this.getMode().name());
}
if ( this.getPlaceholderPolicy() != PlaceholderPolicy.DEFAULT ) {
objectBuilder.add(InternalConstants.KEY_PLACEHOLDER_POLICY, this.getPlaceholderPolicy().name());
}
this.setString(objectBuilder, InternalConstants.KEY_PLACEHOLDER_REGEX, this.getPlaceholderRegex());
return objectBuilder;
}