summaryrefslogtreecommitdiff
path: root/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
diff options
context:
space:
mode:
authorJoachim Lingner <jl@openoffice.org>2010-03-25 10:32:07 +0100
committerJoachim Lingner <jl@openoffice.org>2010-03-25 10:32:07 +0100
commita13b1c857a8bc6657a14eb46e7e9663ff2bc9fa4 (patch)
tree8974a44ec867d7d800b72b3a85d0a08a8702d33a /desktop/source/deployment/registry/package/dp_extbackenddb.cxx
parent67c12270ab84ac474cebe3ec4169688fa3120844 (diff)
jl152 import 263441 from native0jl:#i77196# add and remove in the same process now works, help backend creates a unique folder for every extension
Diffstat (limited to 'desktop/source/deployment/registry/package/dp_extbackenddb.cxx')
-rw-r--r--desktop/source/deployment/registry/package/dp_extbackenddb.cxx48
1 files changed, 22 insertions, 26 deletions
diff --git a/desktop/source/deployment/registry/package/dp_extbackenddb.cxx b/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
index 93aa62174e0f..99aa2178b421 100644
--- a/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
+++ b/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
@@ -44,6 +44,7 @@ using namespace ::com::sun::star::uno;
using ::rtl::OUString;
#define EXTENSION_REG_NS "http://openoffice.org/extensionmanager/extension-registry/2010"
+#define NS_PREFIX "ext"
#define ROOT_ELEMENT_NAME "extension-backend-db"
namespace dp_registry {
@@ -62,6 +63,11 @@ OUString ExtensionBackendDb::getDbNSName()
return OUSTR(EXTENSION_REG_NS);
}
+OUString ExtensionBackendDb::getNSPrefix()
+{
+ return OUSTR(NS_PREFIX);
+}
+
OUString ExtensionBackendDb::getRootElementName()
{
return OUSTR(ROOT_ELEMENT_NAME);
@@ -71,20 +77,23 @@ void ExtensionBackendDb::addEntry(::rtl::OUString const & url, Data const & data
{
try{
+ const OUString sNameSpace = getDbNSName();
+ const OUString sPrefix = getNSPrefix();
Reference<css::xml::dom::XDocument> doc = getDocument();
Reference<css::xml::dom::XNode> root = doc->getFirstChild();
#if OSL_DEBUG_LEVEL > 0
//There must not be yet an entry with the same url
OUString sExpression(
- OUSTR("reg:extension[@url = \"") + url + OUSTR("\"]"));
+ sPrefix + OUSTR(":extension[@url = \"") + url + OUSTR("\"]"));
Reference<css::xml::dom::XNode> _extensionNode =
getXPathAPI()->selectSingleNode(root, sExpression);
OSL_ASSERT(! _extensionNode.is());
#endif
// <extension url="file:///...">
Reference<css::xml::dom::XElement> extensionNode(
- doc->createElement(OUSTR("extension")));
+ doc->createElementNS(sNameSpace,
+ sPrefix + OUSTR(":extension")));
extensionNode->setAttribute(OUSTR("url"), url);
@@ -92,22 +101,12 @@ void ExtensionBackendDb::addEntry(::rtl::OUString const & url, Data const & data
extensionNode, css::uno::UNO_QUERY_THROW);
root->appendChild(extensionNodeNode);
- // <identifier>...</identifier>
-// Reference<css::xml::dom::XNode> identifierNode(
-// doc->createElement(OUSTR("identifier")), UNO_QUERY_THROW);
-// extensionNodeNode->appendChild(identifierNode);
-
-// Reference<css::xml::dom::XNode> identifierValue(
-// doc->createTextNode(data.identifier), UNO_QUERY_THROW);
-// identifierNode->appendChild(identifierValue);
-
-
writeVectorOfPair(
data.items,
- OUSTR("extension-items"),
- OUSTR("item"),
- OUSTR("url"),
- OUSTR("media-type"),
+ sPrefix + OUSTR(":extension-items"),
+ sPrefix + OUSTR(":item"),
+ sPrefix + OUSTR(":url"),
+ sPrefix + OUSTR(":media-type"),
extensionNodeNode);
save();
}
@@ -123,7 +122,7 @@ void ExtensionBackendDb::addEntry(::rtl::OUString const & url, Data const & data
void ExtensionBackendDb::removeEntry(::rtl::OUString const & url)
{
OUString sExpression(
- OUSTR("reg:extension[@url = \"") + url + OUSTR("\"]"));
+ OUSTR(NS_PREFIX) + OUSTR(":extension[@url = \"") + url + OUSTR("\"]"));
removeElement(sExpression);
}
@@ -131,9 +130,10 @@ ExtensionBackendDb::Data ExtensionBackendDb::getEntry(::rtl::OUString const & ur
{
try
{
+ const OUString sPrefix = getNSPrefix();
ExtensionBackendDb::Data retData;
const OUString sExpression(
- OUSTR("reg:extension[@url = \"") + url + OUSTR("\"]"));
+ sPrefix + OUSTR(":extension[@url = \"") + url + OUSTR("\"]"));
Reference<css::xml::dom::XDocument> doc = getDocument();
Reference<css::xml::dom::XNode> root = doc->getFirstChild();
@@ -143,17 +143,13 @@ ExtensionBackendDb::Data ExtensionBackendDb::getEntry(::rtl::OUString const & ur
xpathApi->selectSingleNode(root, sExpression);
if (aNode.is())
{
-// const OUString sExprIdentifier(OUSTR("reg:identifier/text()"));
-
-// Reference<css::xml::dom::XNode> idValueNode =
-// xpathApi->selectSingleNode(aNode, sExprIdentifier);
-// retData.identifier = idValueNode->getNodeValue();
-
retData.items =
readVectorOfPair(
aNode,
- OUSTR("reg:extension-items"),
- OUSTR("reg:item"), OUSTR("reg:url"), OUSTR("reg:media-type"));
+ sPrefix + OUSTR(":extension-items"),
+ sPrefix + OUSTR(":item"),
+ sPrefix + OUSTR(":url"),
+ sPrefix + OUSTR(":media-type"));
}
return retData;
}