public void saveDescriptor(LocalExtension extension, FileOutputStream fos) throws ParserConfigurationException,
TransformerException, IOException
{
DocumentBuilder documentBuilder = this.documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element extensionElement = document.createElement("extension");
document.appendChild(extensionElement);
addElement(document, extensionElement, "id", extension.getId().getId());
addElement(document, extensionElement, "version", extension.getId().getVersion());
addElement(document, extensionElement, "type", extension.getType());
addElement(document, extensionElement, "dependency", String.valueOf(extension.isDependency()));
addElement(document, extensionElement, "installed", String.valueOf(extension.isInstalled()));
addElement(document, extensionElement, "description", extension.getDescription());
addElement(document, extensionElement, "author", extension.getAuthor());
addElement(document, extensionElement, "website", extension.getWebSite());
addDependencies(document, extensionElement, extension);
addNamespaces(document, extensionElement, extension);
TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(document);
Result result = new StreamResult(fos);
trans.transform(source, result);
}