in log4j-converter-plugin-descriptor/src/main/java/org/apache/logging/log4j/converter/plugins/internal/PluginDescriptors.java [310:341]
static Plugin fromJson(final JsonParser parser, final String className) throws IOException {
final Set<String> pluginNames = new TreeSet<>();
final List<String> builderHierarchy = new ArrayList<>();
String elementName = null;
boolean printable = false, defer = false;
assertObjectStart(parser);
while (parser.nextToken() == JsonToken.FIELD_NAME) {
switch (parser.currentName()) {
case PLUGIN_NAMES:
readArray(parser, pluginNames);
break;
case BUILDER_HIERARCHY:
// read and ignore
readArray(parser, builderHierarchy);
break;
case ELEMENT_NAME:
elementName = parser.nextTextValue();
break;
case DEFER:
defer = parser.nextBooleanValue();
break;
case PRINTABLE:
printable = parser.nextBooleanValue();
break;
default:
throw new IOException(
"Unknown property " + parser.currentName() + " for Plugin element " + className);
}
}
assertObjectEnd(parser);
return new Plugin(pluginNames, elementName, className, printable, defer, builderHierarchy);
}