123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /* -*- 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();
- };
|