in src/main/java/org/apache/sling/feature/extension/apiregions/api/config/PropertyDescription.java [128:188]
public void fromJSONObject(final JsonObject jsonObj) throws IOException {
super.fromJSONObject(jsonObj);
try {
this.setVariable(this.getString(InternalConstants.KEY_VARIABLE));
this.setCardinality(this.getInteger(InternalConstants.KEY_CARDINALITY, this.getCardinality()));
this.setRequired(this.getBoolean(InternalConstants.KEY_REQUIRED, this.isRequired()));
final String typeVal = this.getString(InternalConstants.KEY_TYPE);
if ( typeVal != null ) {
this.setType(PropertyType.valueOf(typeVal.toUpperCase()));
}
final JsonValue rangeVal = this.getAttributes().remove(InternalConstants.KEY_RANGE);
if ( rangeVal != null ) {
final Range range = new Range();
range.fromJSONObject(rangeVal.asJsonObject());
this.setRange(range);
}
final JsonValue incs = this.getAttributes().remove(InternalConstants.KEY_INCLUDES);
if ( incs != null ) {
final List<String> list = new ArrayList<>();
for(final JsonValue innerVal : incs.asJsonArray()) {
list.add(getString(innerVal));
}
this.setIncludes(list.toArray(new String[list.size()]));
}
final JsonValue excs = this.getAttributes().remove(InternalConstants.KEY_EXCLUDES);
if ( excs != null ) {
final List<String> list = new ArrayList<>();
for(final JsonValue innerVal : excs.asJsonArray()) {
list.add(getString(innerVal));
}
this.setExcludes(list.toArray(new String[list.size()]));
}
final JsonValue opts = this.getAttributes().remove(InternalConstants.KEY_OPTIONS);
if ( opts != null ) {
final List<Option> list = new ArrayList<>();
for(final JsonValue innerVal : opts.asJsonArray()) {
final Option o = new Option();
o.fromJSONObject(innerVal.asJsonObject());
list.add(o);
}
this.setOptions(list);
}
this.setRegex(this.getString(InternalConstants.KEY_REGEX));
final JsonValue dv = this.getAttributes().remove(InternalConstants.KEY_DEFAULT);
if ( dv != null ) {
this.setDefaultValue(Configurations.convertToObject(dv));
}
final String modeVal = this.getString(InternalConstants.KEY_MODE);
if ( modeVal != null ) {
this.setMode(Mode.valueOf(modeVal.toUpperCase()));
}
final String policyVal = this.getString(InternalConstants.KEY_PLACEHOLDER_POLICY);
if ( policyVal != null ) {
this.setPlaceholderPolicy(PlaceholderPolicy.valueOf(policyVal.toUpperCase()));
}
this.setPlaceholderRegex(this.getString(InternalConstants.KEY_PLACEHOLDER_REGEX));
} catch (final JsonException | IllegalArgumentException e) {
throw new IOException(e);
}
}