summaryrefslogtreecommitdiff
path: root/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
diff options
context:
space:
mode:
authorJoachim Lingner <jl@openoffice.org>2010-05-03 11:51:05 +0200
committerJoachim Lingner <jl@openoffice.org>2010-05-03 11:51:05 +0200
commit86e2dc0dcb9d79f1267dbd88d68bba6da3de871e (patch)
treea34a3583e91907f58b5793e38a7f4d8b4a23ca9a /desktop/source/deployment/registry/package/dp_extbackenddb.cxx
parent3807193d03962da3247a7b74bd58d2d511786fc2 (diff)
jl152 import 263452 from native0jl:#i77196# fixed bundled extension help tree view, scripts in shared extensions...
Diffstat (limited to 'desktop/source/deployment/registry/package/dp_extbackenddb.cxx')
-rw-r--r--desktop/source/deployment/registry/package/dp_extbackenddb.cxx65
1 files changed, 16 insertions, 49 deletions
diff --git a/desktop/source/deployment/registry/package/dp_extbackenddb.cxx b/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
index 99aa2178b421..2e92a907f8fb 100644
--- a/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
+++ b/desktop/source/deployment/registry/package/dp_extbackenddb.cxx
@@ -46,6 +46,7 @@ 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"
+#define KEY_ELEMENT_NAME "extension"
namespace dp_registry {
namespace backend {
@@ -73,40 +74,21 @@ OUString ExtensionBackendDb::getRootElementName()
return OUSTR(ROOT_ELEMENT_NAME);
}
+OUString ExtensionBackendDb::getKeyElementName()
+{
+ return OUSTR(KEY_ELEMENT_NAME);
+}
+
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(
- 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->createElementNS(sNameSpace,
- sPrefix + OUSTR(":extension")));
-
- extensionNode->setAttribute(OUSTR("url"), url);
-
- Reference<css::xml::dom::XNode> extensionNodeNode(
- extensionNode, css::uno::UNO_QUERY_THROW);
- root->appendChild(extensionNodeNode);
-
+ Reference<css::xml::dom::XNode> extensionNodeNode = writeKeyElement(url);
writeVectorOfPair(
data.items,
- sPrefix + OUSTR(":extension-items"),
- sPrefix + OUSTR(":item"),
- sPrefix + OUSTR(":url"),
- sPrefix + OUSTR(":media-type"),
+ OUSTR("extension-items"),
+ OUSTR("item"),
+ OUSTR("url"),
+ OUSTR("media-type"),
extensionNodeNode);
save();
}
@@ -119,37 +101,22 @@ void ExtensionBackendDb::addEntry(::rtl::OUString const & url, Data const & data
}
}
-void ExtensionBackendDb::removeEntry(::rtl::OUString const & url)
-{
- OUString sExpression(
- OUSTR(NS_PREFIX) + OUSTR(":extension[@url = \"") + url + OUSTR("\"]"));
- removeElement(sExpression);
-}
-
ExtensionBackendDb::Data ExtensionBackendDb::getEntry(::rtl::OUString const & url)
{
try
{
- const OUString sPrefix = getNSPrefix();
ExtensionBackendDb::Data retData;
- const OUString sExpression(
- sPrefix + OUSTR(":extension[@url = \"") + url + OUSTR("\"]"));
- Reference<css::xml::dom::XDocument> doc = getDocument();
- Reference<css::xml::dom::XNode> root = doc->getFirstChild();
-
- Reference<css::xml::xpath::XXPathAPI> xpathApi = getXPathAPI();
+ Reference<css::xml::dom::XNode> aNode = getKeyElement(url);
- Reference<css::xml::dom::XNode> aNode =
- xpathApi->selectSingleNode(root, sExpression);
if (aNode.is())
{
retData.items =
readVectorOfPair(
aNode,
- sPrefix + OUSTR(":extension-items"),
- sPrefix + OUSTR(":item"),
- sPrefix + OUSTR(":url"),
- sPrefix + OUSTR(":media-type"));
+ OUSTR("extension-items"),
+ OUSTR("item"),
+ OUSTR("url"),
+ OUSTR("media-type"));
}
return retData;
}