2007-03-22 10:30:00 -07:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2012-05-21 04:12:37 -07:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
A package of routines shared by the XUL content code.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef nsXULContentUtils_h__
|
|
|
|
#define nsXULContentUtils_h__
|
|
|
|
|
|
|
|
#include "nsISupports.h"
|
|
|
|
|
|
|
|
class nsIAtom;
|
|
|
|
class nsIContent;
|
|
|
|
class nsIDocument;
|
|
|
|
class nsIDOMNodeList;
|
|
|
|
class nsIRDFNode;
|
|
|
|
class nsCString;
|
|
|
|
class nsString;
|
|
|
|
class nsIRDFResource;
|
|
|
|
class nsIRDFLiteral;
|
|
|
|
class nsIRDFService;
|
|
|
|
class nsIDateTimeFormat;
|
|
|
|
class nsICollation;
|
|
|
|
|
2010-02-01 10:09:47 -08:00
|
|
|
// errors to pass to LogTemplateError
|
|
|
|
#define ERROR_TEMPLATE_INVALID_QUERYPROCESSOR \
|
|
|
|
"querytype attribute doesn't specify a valid query processor"
|
|
|
|
#define ERROR_TEMPLATE_INVALID_QUERYSET \
|
|
|
|
"unexpected <queryset> element"
|
|
|
|
#define ERROR_TEMPLATE_NO_MEMBERVAR \
|
|
|
|
"no member variable found. Action body should have an element with uri attribute"
|
|
|
|
#define ERROR_TEMPLATE_WHERE_NO_SUBJECT \
|
|
|
|
"<where> element is missing a subject attribute"
|
|
|
|
#define ERROR_TEMPLATE_WHERE_NO_RELATION \
|
|
|
|
"<where> element is missing a rel attribute"
|
|
|
|
#define ERROR_TEMPLATE_WHERE_NO_VALUE \
|
|
|
|
"<where> element is missing a value attribute"
|
|
|
|
#define ERROR_TEMPLATE_WHERE_NO_VAR \
|
|
|
|
"<where> element must have at least one variable as a subject or value"
|
|
|
|
#define ERROR_TEMPLATE_BINDING_BAD_SUBJECT \
|
|
|
|
"<binding> requires a variable for its subject attribute"
|
|
|
|
#define ERROR_TEMPLATE_BINDING_BAD_PREDICATE \
|
|
|
|
"<binding> element is missing a predicate attribute"
|
|
|
|
#define ERROR_TEMPLATE_BINDING_BAD_OBJECT \
|
|
|
|
"<binding> requires a variable for its object attribute"
|
|
|
|
#define ERROR_TEMPLATE_CONTENT_NOT_FIRST \
|
|
|
|
"expected <content> to be first"
|
|
|
|
#define ERROR_TEMPLATE_MEMBER_NOCONTAINERVAR \
|
|
|
|
"<member> requires a variable for its container attribute"
|
|
|
|
#define ERROR_TEMPLATE_MEMBER_NOCHILDVAR \
|
|
|
|
"<member> requires a variable for its child attribute"
|
|
|
|
#define ERROR_TEMPLATE_TRIPLE_NO_VAR \
|
|
|
|
"<triple> should have at least one variable as a subject or object"
|
|
|
|
#define ERROR_TEMPLATE_TRIPLE_BAD_SUBJECT \
|
|
|
|
"<triple> requires a variable for its subject attribute"
|
|
|
|
#define ERROR_TEMPLATE_TRIPLE_BAD_PREDICATE \
|
|
|
|
"<triple> should have a non-variable value as a predicate"
|
|
|
|
#define ERROR_TEMPLATE_TRIPLE_BAD_OBJECT \
|
|
|
|
"<triple> requires a variable for its object attribute"
|
|
|
|
#define ERROR_TEMPLATE_MEMBER_UNBOUND \
|
|
|
|
"neither container or child variables of <member> has a value"
|
|
|
|
#define ERROR_TEMPLATE_TRIPLE_UNBOUND \
|
|
|
|
"neither subject or object variables of <triple> has a value"
|
|
|
|
#define ERROR_TEMPLATE_BAD_XPATH \
|
|
|
|
"XPath expression in query could not be parsed"
|
|
|
|
#define ERROR_TEMPLATE_BAD_ASSIGN_XPATH \
|
|
|
|
"XPath expression in <assign> could not be parsed"
|
|
|
|
#define ERROR_TEMPLATE_BAD_BINDING_XPATH \
|
|
|
|
"XPath expression in <binding> could not be parsed"
|
2010-03-08 16:02:27 -08:00
|
|
|
#define ERROR_TEMPLATE_STORAGE_BAD_URI \
|
|
|
|
"only profile: or file URI are allowed"
|
|
|
|
#define ERROR_TEMPLATE_STORAGE_CANNOT_OPEN_DATABASE \
|
|
|
|
"cannot open given database"
|
|
|
|
#define ERROR_TEMPLATE_STORAGE_BAD_QUERY \
|
|
|
|
"syntax error in the SQL query"
|
|
|
|
#define ERROR_TEMPLATE_STORAGE_UNKNOWN_QUERY_PARAMETER \
|
|
|
|
"the given named parameter is unknown in the SQL query"
|
|
|
|
#define ERROR_TEMPLATE_STORAGE_WRONG_TYPE_QUERY_PARAMETER \
|
|
|
|
"the type of a query parameter is wrong"
|
|
|
|
#define ERROR_TEMPLATE_STORAGE_QUERY_PARAMETER_NOT_BOUND \
|
|
|
|
"a query parameter cannot be bound to the SQL query"
|
2010-02-01 10:09:47 -08:00
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
class nsXULContentUtils
|
|
|
|
{
|
|
|
|
protected:
|
|
|
|
static nsIRDFService* gRDF;
|
|
|
|
static nsIDateTimeFormat* gFormat;
|
|
|
|
static nsICollation *gCollation;
|
|
|
|
|
2011-09-28 23:19:26 -07:00
|
|
|
static bool gDisableXULCache;
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2008-10-10 08:04:34 -07:00
|
|
|
static int
|
2007-03-22 10:30:00 -07:00
|
|
|
DisableXULCacheChangedCallback(const char* aPrefName, void* aClosure);
|
|
|
|
|
|
|
|
public:
|
|
|
|
static nsresult
|
|
|
|
Init();
|
|
|
|
|
|
|
|
static nsresult
|
|
|
|
Finish();
|
|
|
|
|
|
|
|
static nsresult
|
|
|
|
FindChildByTag(nsIContent *aElement,
|
2012-08-22 08:56:38 -07:00
|
|
|
int32_t aNameSpaceID,
|
2007-03-22 10:30:00 -07:00
|
|
|
nsIAtom* aTag,
|
|
|
|
nsIContent **aResult);
|
|
|
|
|
|
|
|
static nsresult
|
|
|
|
FindChildByResource(nsIContent* aElement,
|
|
|
|
nsIRDFResource* aResource,
|
|
|
|
nsIContent** aResult);
|
|
|
|
|
|
|
|
static nsresult
|
|
|
|
GetTextForNode(nsIRDFNode* aNode, nsAString& aResult);
|
|
|
|
|
|
|
|
static nsresult
|
2012-08-22 08:56:38 -07:00
|
|
|
GetResource(int32_t aNameSpaceID, nsIAtom* aAttribute, nsIRDFResource** aResult);
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
static nsresult
|
2012-08-22 08:56:38 -07:00
|
|
|
GetResource(int32_t aNameSpaceID, const nsAString& aAttribute, nsIRDFResource** aResult);
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
static nsresult
|
|
|
|
SetCommandUpdater(nsIDocument* aDocument, nsIContent* aElement);
|
2010-02-01 10:09:47 -08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Log a message to the error console
|
|
|
|
*/
|
|
|
|
static void
|
|
|
|
LogTemplateError(const char* aMsg);
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
static nsIRDFService*
|
|
|
|
RDFService()
|
|
|
|
{
|
|
|
|
return gRDF;
|
|
|
|
}
|
|
|
|
|
|
|
|
static nsICollation*
|
|
|
|
GetCollation();
|
|
|
|
|
|
|
|
#define XUL_RESOURCE(ident, uri) static nsIRDFResource* ident
|
|
|
|
#define XUL_LITERAL(ident, val) static nsIRDFLiteral* ident
|
|
|
|
#include "nsXULResourceList.h"
|
|
|
|
#undef XUL_RESOURCE
|
|
|
|
#undef XUL_LITERAL
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // nsXULContentUtils_h__
|