Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / resources / chromeos / chromevox / speech_rules / speech_rule_store.js
blob0ab964ac6420a936e12ed0310da78f8538f6189a
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /**
6  * @fileoverview Base interface for all speech rule stores.
7  *
8  * A speech rule store exposes the minimal set of methods a speech rule
9  * author needs for a particular markup type such as MathML or HTML
10  * (definition). A rule provider also acts as the permanent and authoritative
11  * store for all rules for such markup (lookup).
12  */
14 goog.provide('cvox.SpeechRuleStore');
16 /**
17  * @interface
18  */
19 cvox.SpeechRuleStore = goog.abstractMethod;
22 /**
23  * Adds a new speech rule.
24  * @param {cvox.SpeechRule} rule The speech rule to be added.
25  */
26 cvox.SpeechRuleStore.prototype.addRule = goog.abstractMethod;
29 /**
30  * Deletes a speech rule if it exists.
31  * @param {cvox.SpeechRule} rule The speech rule to be deleted.
32  */
33 cvox.SpeechRuleStore.prototype.deleteRule = goog.abstractMethod;
36 /**
37  * Retrieves the first rule satisfying a given predicate.
38  * @param {function(cvox.SpeechRule): boolean} pred A predicate on speech rules.
39  * @return {cvox.SpeechRule} The first speech rule in the store satisfying pred.
40  */
41 cvox.SpeechRuleStore.prototype.findRule = goog.abstractMethod;
44 /**
45  * Retrieves all rules satisfying a given predicate.
46  * @param {function(cvox.SpeechRule): boolean} pred A predicate on speech rules.
47  * @return {Array<cvox.SpeechRule>} All speech rules in the store satisfying
48  *     pred.
49  */
50 cvox.SpeechRuleStore.prototype.findAllRules = goog.abstractMethod;
53 /**
54  * Retrieves a rule for the given node if one exists.
55  * @param {Node} node A node.
56  * @param {!cvox.SpeechRule.DynamicCstr} dynamic Additional dynamic
57  *     constraints. These are matched against properties of a rule.
58  * @return {cvox.SpeechRule} The actions of the speech rule if it exists.
59  */
60 cvox.SpeechRuleStore.prototype.lookupRule = goog.abstractMethod;
63 // TODO(sorge): Propagate this documentation *everywhere* once these
64 // args/descriptions are hardened/cleared up.
65 /**
66  * Defines a new speech rule from given components.
67  * @param {string} name Name of the rule. It does not have to be unique.
68  * @param {string} dynamic Dynamic constraint annotation of the rule.
69  * @param {string} action String version of the speech rule.
70  * @param {string} prec Precondition of the rule.
71  * @param {...string} constr Additional constraints.
72  * @return {cvox.SpeechRule} The newly defined rule.
73  */
74 cvox.SpeechRuleStore.prototype.defineRule = goog.abstractMethod;