diff options
Diffstat (limited to 'dom/xul/templates/nsIXULTemplateResult.idl')
-rw-r--r-- | dom/xul/templates/nsIXULTemplateResult.idl | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/dom/xul/templates/nsIXULTemplateResult.idl b/dom/xul/templates/nsIXULTemplateResult.idl new file mode 100644 index 000000000..6a8ac2439 --- /dev/null +++ b/dom/xul/templates/nsIXULTemplateResult.idl @@ -0,0 +1,116 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. */ + +#include "nsISupports.idl" + +interface nsIAtom; +interface nsIDOMNode; +interface nsIRDFResource; + +/** + * A single result generated from a template query. Each result is identified + * by an id, which must be unique within the set of results produced from a + * query. The result may optionally be identified by an RDF resource. + * + * Generally, the result and its id will be able to uniquely identify a node + * in the source data, such as an RDF or XML node. In other contexts, such as + * a database query, a result would represent a particular record. + * + * A result is expected to only be created by a query processor. + * + * Each result also contains a set of variable bindings. The value for a + * particular variable may be retrieved using the getBindingFor and + * getBindingObjectFor methods. + */ +[scriptable, uuid(ebea0230-36fa-41b7-8e31-760806057965)] +interface nsIXULTemplateResult : nsISupports +{ + /** + * True if the result represents a container. + */ + readonly attribute boolean isContainer; + + /** + * True if the result represents an empty container. + */ + readonly attribute boolean isEmpty; + + /** + * True if the template builder may use this result as the reference point + * for additional recursive processing of the template. The template builder + * will reprocess the template using this result as the reference point and + * generate output content that is expected to be inserted as children of the + * output generated for this result. If false, child content is not + * processed. This property identifies only the default handling and may be + * overriden by syntax used in the template. + */ + readonly attribute boolean mayProcessChildren; + + /** + * ID of the result. The DOM element created for this result, if any, will + * have its id attribute set to this value. The id must be unique for a + * query. + */ + readonly attribute AString id; + + /** + * Resource for the result, which may be null. If set, the resource uri + * must be the same as the ID property. + */ + readonly attribute nsIRDFResource resource; + + /** + * The type of the object. The predefined value 'separator' may be used + * for separators. Other values may be used for application specific + * purposes. + */ + readonly attribute AString type; + + /** + * Get the string representation of the value of a variable for this + * result. This string will be used in the action body from a template as + * the replacement text. For instance, if the text ?name appears in an + * attribute within the action body, it will be replaced with the result + * of this method. The question mark is considered part of the variable + * name, thus aVar should be ?name and not simply name. + * + * @param aVar the variable to look up + * + * @return the value for the variable or a null string if it has no value + */ + AString getBindingFor(in nsIAtom aVar); + + /** + * Get an object value for a variable such as ?name for this result. + * + * This method may return null for a variable, even if getBindingFor returns + * a non-null value for the same variable. This method is provided as a + * convenience when sorting results. + * + * @param aVar the variable to look up + * + * @return the value for the variable or null if it has no value + */ + nsISupports getBindingObjectFor(in nsIAtom aVar); + + /** + * Indicate that a particular rule of a query has matched and that output + * will be generated for it. Both the query as compiled by the query + * processor's compileQuery method and the XUL <rule> element are supplied. + * The query must always be one that was compiled by the query processor + * that created this result. The <rule> element must always be a child of + * the <query> element that was used to compile the query. + * + * @param aQuery the query that matched + * @param aRuleNode the rule node that matched + */ + void ruleMatched(in nsISupports aQuery, in nsIDOMNode aRuleNode); + + /** + * Indicate that the output for a result has beeen removed and that the + * result is no longer being used by the builder. + */ + void hasBeenRemoved(); +}; |