in src/main/java/org/apache/sling/feature/io/json/FeatureJSONWriter.java [258:303]
private void writePrototype(final JsonGenerator generator, final Prototype inc) {
if (inc == null) {
return;
}
if ( inc.getArtifactExtensionRemovals().isEmpty()
&& inc.getBundleRemovals().isEmpty()
&& inc.getConfigurationRemovals().isEmpty()
&& inc.getFrameworkPropertiesRemovals().isEmpty()
&& inc.getRequirementRemovals().isEmpty()
&& inc.getCapabilityRemovals().isEmpty() ) {
generator.write(JSONConstants.FEATURE_PROTOTYPE, inc.getId().toMvnId());
} else {
generator.writeStartObject(JSONConstants.FEATURE_PROTOTYPE);
writeProperty(generator, JSONConstants.ARTIFACT_ID, inc.getId().toMvnId());
generator.writeStartObject(JSONConstants.PROTOTYPE_REMOVALS);
if ( !inc.getArtifactExtensionRemovals().isEmpty()
|| inc.getExtensionRemovals().isEmpty() ) {
generator.writeStartArray(JSONConstants.PROTOTYPE_EXTENSION_REMOVALS);
for(final String id : inc.getExtensionRemovals()) {
generator.write(id);
}
for(final Map.Entry<String, List<ArtifactId>> entry : inc.getArtifactExtensionRemovals().entrySet()) {
generator.writeStartObject();
writeList(generator, entry.getKey(), entry.getValue());
generator.writeEnd();
}
generator.writeEnd();
}
writeList(generator, JSONConstants.FEATURE_CONFIGURATIONS, inc.getConfigurationRemovals());
writeList(generator, JSONConstants.FEATURE_BUNDLES, inc.getBundleRemovals());
writeList(generator, JSONConstants.FEATURE_FRAMEWORK_PROPERTIES, inc.getFrameworkPropertiesRemovals());
writeRequirements(generator, inc.getRequirementRemovals());
writeCapabilities(generator, inc.getCapabilityRemovals());
generator.writeEnd().writeEnd();
}
}