in src/main/java/org/apache/sling/sitemap/impl/builder/UrlImpl.java [90:114]
public <T extends Extension> T addExtension(Class<T> extensionInterface) {
ensureNotWritten();
ExtensionFactory extensionFactory = extensionProviderManager.getExtensionFactory(extensionInterface);
if (extensionFactory == null) {
return null;
}
AbstractExtension extension = extensionFactory.newExtension();
if (!extensionInterface.isInstance(extension)) {
LOG.warn("Extension registered by factory for type '{}' is of incompatible type: {}",
extensionInterface.getName(), extension.getClass().getName());
return null;
}
if (extensions == null) {
extensions = new LinkedList<>();
}
extensions.add(new ExtensionMeta(extension, extensionFactory.getNamespace(), extensionFactory.getPrefix(),
extensionFactory.getLocalName(), extensionFactory.isEmptyTag()));
return extensionInterface.cast(extension);
}