bhive
Version:
Behavior Tree for Javascript
2,633 lines (699 loc) • 51.1 kB
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>UntilFailure - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<script src="scripts/nav.js" defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav >
<input type="text" id="nav-search" placeholder="Search" />
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AsyncTask.html">AsyncTask</a><ul class='methods'><li data-type='method' style='display: none;'><a href="AsyncTask.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#close">close</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#open">open</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#tick">tick</a></li></ul></li><li><a href="BaseComposite.html">BaseComposite</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseComposite.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#tick">tick</a></li></ul></li><li><a href="BaseDecorator.html">BaseDecorator</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#tick">tick</a></li></ul></li><li><a href="BaseNode.html">BaseNode</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseNode.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#tick">tick</a></li></ul></li><li><a href="BehaviorTree.html">BehaviorTree</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BehaviorTree.html#tick">tick</a></li></ul></li><li><a href="Board.html">Board</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Board.html#clear">clear</a></li><li data-type='method' style='display: none;'><a href="Board.html#get">get</a></li><li data-type='method' style='display: none;'><a href="Board.html#isEmpty">isEmpty</a></li><li data-type='method' style='display: none;'><a href="Board.html#set">set</a></li><li data-type='method' style='display: none;'><a href="Board.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="Board.html#unset">unset</a></li></ul></li><li><a href="Inverter.html">Inverter</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Inverter.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#tick">tick</a></li></ul></li><li><a href="Logger.html">Logger</a></li><li></li><li><a href="module-BlackBoard-Blackboard.html">Blackboard</a><ul class='methods'><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#createTree">createTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#get">get</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#listTree">listTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#removeTree">removeTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#set">set</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#tree">tree</a></li></ul></li><li></li><li><a href="module-Context-Context.html">Context</a><ul class='methods'><li data-type='method' style='display: none;'><a href="module-Context-Context.html#closeNode">closeNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#enterNode">enterNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#exitNode">exitNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#openNode">openNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#runNode">runNode</a></li></ul></li><li><a href="NodeBoard.html">NodeBoard</a></li><li><a href="Priority.html">Priority</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Priority.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Priority.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Priority.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Priority.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Priority.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Priority.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Priority.html#tick">tick</a></li></ul></li><li></li><li><a href="Registry.html">Registry</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Registry.html#getNode">getNode</a></li><li data-type='method' style='display: none;'><a href="Registry.html#getNodeTypes">getNodeTypes</a></li><li data-type='method' style='display: none;'><a href="Registry.html#merge">merge</a></li><li data-type='method' style='display: none;'><a href="Registry.html#register">register</a></li></ul></li><li></li><li><a href="Repeater.html">Repeater</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Repeater.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Repeater.html#run">run</a></li></ul></li><li><a href="RewindWhenFailure.html">RewindWhenFailure</a><ul class='methods'><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#close">close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#open">open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#run">run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#tick">tick</a></li></ul></li><li><a href="RewindWhenRunning.html">RewindWhenRunning</a><ul class='methods'><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#close">close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#open">open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#run">run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#tick">tick</a></li></ul></li><li><a href="Sequence.html">Sequence</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Sequence.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#tick">tick</a></li></ul></li><li><a href="Task.html">Task</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Task.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Task.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Task.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Task.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Task.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Task.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Task.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Task.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Task.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Task.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Task.html#tick">tick</a></li></ul></li><li></li><li><a href="TreeBoard.html">TreeBoard</a><ul class='methods'><li data-type='method' style='display: none;'><a href="TreeBoard.html#clear">clear</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#createNode">createNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#gc">gc</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#get">get</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#isEmpty">isEmpty</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#listNode">listNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#node">node</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#removeNode">removeNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#set">set</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#unset">unset</a></li></ul></li><li><a href="TreeBuilder.html">TreeBuilder</a></li><li></li><li><a href="UntilFailure.html">UntilFailure</a><ul class='methods'><li data-type='method' style='display: none;'><a href="UntilFailure.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#close">close</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#open">open</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#run">run</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#tick">tick</a></li></ul></li><li><a href="UntilSuccess.html">UntilSuccess</a><ul class='methods'><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#close">close</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#open">open</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#run">run</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#tick">tick</a></li></ul></li></ul><h3>Modules</h3><ul><li><a href="module-BlackBoard.html">BlackBoard</a></li><li><a href="module-Context.html">Context</a></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-blackboard.html">Blackboard</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BehaviorTreeOptions">BehaviorTreeOptions</a></li><li><a href="global.html#Constant">Constant</a></li><li><a href="global.html#defaultBehaviorTreeOptions">defaultBehaviorTreeOptions</a></li><li><a href="global.html#LogFunction">LogFunction</a></li><li><a href="global.html#NodeCategory">NodeCategory</a></li><li><a href="global.html#NodeData">NodeData</a></li><li><a href="global.html#NodeDefinition">NodeDefinition</a></li><li><a href="global.html#NodeId">NodeId</a></li><li><a href="global.html#NodeStatus">NodeStatus</a></li><li><a href="global.html#NodeType">NodeType</a></li><li><a href="global.html#Registers">Registers</a></li><li><a href="global.html#severities">severities</a></li><li><a href="global.html#SYSLOG_LEVEL">SYSLOG_LEVEL</a></li><li><a href="global.html#TreeDefinition">TreeDefinition</a></li><li><a href="global.html#workerConfig">workerConfig</a></li></ul>
</nav>
<div id="main">
<h1 class="page-title">UntilFailure</h1>
<section>
<header>
<h2>
UntilFailure
</h2>
<div class="class-description"><p>Class UntilFailure
UntilFailure is a decorator that repeats the run signal until the
node child returns <code>FAILURE</code>, <code>RUNNING</code> or <code>ERROR</code>. Optionally, a maximum
number of repetitions can be defined.</p></div>
</header>
<article>
<div class="container-overview">
<h2>Constructor</h2>
<h4 class="name" id="UntilFailure"><span class="type-signature"></span>new UntilFailure<span class="signature">(params)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="decorators_UntilFailure.js.html">decorators/UntilFailure.js</a>, <a href="decorators_UntilFailure.js.html#line26">line 26</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Creates an instance of UntilFailure.</p>
<ul>
<li><strong>maxLoop</strong> (<em>Integer</em>) Maximum number of repetitions. Default to -1 (infinite).</li>
<li><strong>child</strong> (<em>BaseNode</em>) The child node.</li>
</ul>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>params</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Object with parameters.</p>
<h6>Properties</h6>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>child</code></td>
<td class="type">
<span class="param-type"><a href="BaseNode.html">BaseNode</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>The child node.</p></td>
</tr>
<tr>
<td class="name"><code>maxLoop</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
<code>-1</code>
</td>
<td class="description last"><p>Maximum number of repetitions.
Default to -1 (infinite).</p></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<h3 class="subsection-title">Extends</h3>
<ul>
<li><a href="BaseDecorator.html">BaseDecorator</a></li>
</ul>
<h3 class="subsection-title">Members</h3>
<h4 class="name" id="category"><span class="type-signature"></span>category<span class="type-signature"> :<a href="global.html#NodeCategory">NodeCategory</a></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line50">line 50</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#category">BaseDecorator#category</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Node category. Must be <code>COMPOSITE</code>, <code>DECORATOR</code>, <code>TASK</code> or
<code>CONDITION</code>. This is defined automatically be inheriting the
correspondent class.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type"><a href="global.html#NodeCategory">NodeCategory</a></span>
</li>
</ul>
<h4 class="name" id="child"><span class="type-signature"></span>child<span class="type-signature"> :<a href="BaseNode.html">BaseNode</a></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseDecorator.js.html">core/BaseDecorator.js</a>, <a href="core_BaseDecorator.js.html#line29">line 29</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#child">BaseDecorator#child</a>
</li></ul></dd>
</dl>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type"><a href="BaseNode.html">BaseNode</a></span>
</li>
</ul>
<h4 class="name" id="description"><span class="type-signature"></span>description<span class="type-signature"> :string</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line68">line 68</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#description">BaseDecorator#description</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Node description.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">string</span>
</li>
</ul>
<h4 class="name" id="id"><span class="type-signature"></span>id<span class="type-signature"> :<a href="global.html#NodeId">NodeId</a></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line42">line 42</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#id">BaseDecorator#id</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li>RFC4122: https://tools.ietf.org/html/rfc4122</li>
</ul>
</dd>
</dl>
<div class="description">
<p>unique identifier of node. It uses the UUID format.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type"><a href="global.html#NodeId">NodeId</a></span>
</li>
</ul>
<h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :string</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line62">line 62</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#name">BaseDecorator#name</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Node name.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">string</span>
</li>
</ul>
<h4 class="name" id="properties"><span class="type-signature">(readonly) </span>properties<span class="type-signature"> :Object</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line77">line 77</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#properties">BaseDecorator#properties</a>
</li></ul></dd>
</dl>
<div class="description">
<p>A dictionary (key, value) describing the node properties. Useful for
defining custom variables inside the visual editor.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object</span>
</li>
</ul>
<h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :string</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line56">line 56</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#type">BaseDecorator#type</a>
</li></ul></dd>
</dl>
<div class="description">
<p>type of node. Must be a unique. e.g. class name</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">string</span>
</li>
</ul>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="_close"><span class="type-signature"></span>_close<span class="signature">(context)</span><span class="type-signature"> → {void}</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line162">line 162</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#_close">BaseDecorator#_close</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Wrapper for close method.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">void</span>
</dd>
</dl>
<h4 class="name" id="_enter"><span class="type-signature">(protected) </span>_enter<span class="signature">(context)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line121">line 121</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#_enter">BaseDecorator#_enter</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Wrapper for enter method.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h4 class="name" id="_exit"><span class="type-signature">(protected) </span>_exit<span class="signature">(context)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line173">line 173</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#_exit">BaseDecorator#_exit</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Wrapper for exit method.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h4 class="name" id="_open"><span class="type-signature">(protected) </span>_open<span class="signature">(context)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line131">line 131</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#_open">BaseDecorator#_open</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Wrapper for open method.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h4 class="name" id="_run"><span class="type-signature">(protected) </span>_run<span class="signature">(context)</span><span class="type-signature"> → {<a href="global.html#NodeStatus">NodeStatus</a>}</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line143">line 143</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#_run">BaseDecorator#_run</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Wrapper for run method.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>A state constant.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="global.html#NodeStatus">NodeStatus</a></span>
</dd>
</dl>
<h4 class="name" id="_tick"><span class="type-signature"></span>_tick<span class="signature">(context)</span><span class="type-signature"> → {<a href="global.html#NodeStatus">NodeStatus</a>}</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line92">line 92</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#_tick">BaseDecorator#_tick</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>The run state.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="global.html#NodeStatus">NodeStatus</a></span>
</dd>
</dl>
<h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">(context)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line215">line 215</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#close">BaseDecorator#close</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Close method, override this to use. This method is called after the run
callback, and only if the run return a state different from
<code>RUNNING</code>.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h4 class="name" id="enter"><span class="type-signature"></span>enter<span class="signature">(context)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line184">line 184</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#enter">BaseDecorator#enter</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Enter method, override this to use. It is called every time a node is
asked to run, before the run itself.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h4 class="name" id="exit"><span class="type-signature"></span>exit<span class="signature">(context)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line224">line 224</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#exit">BaseDecorator#exit</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Exit method, override this to use. Called every time in the end of the
execution.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h4 class="name" id="open"><span class="type-signature"></span>open<span class="signature">(context)</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="decorators_UntilFailure.js.html">decorators/UntilFailure.js</a>, <a href="decorators_UntilFailure.js.html#line41">line 41</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#open">BaseDecorator#open</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Open method.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h4 class="name" id="run"><span class="type-signature"></span>run<span class="signature">(context)</span><span class="type-signature"> → {<a href="global.html#Constant">Constant</a>}</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="decorators_UntilFailure.js.html">decorators/UntilFailure.js</a>, <a href="decorators_UntilFailure.js.html#line50">line 50</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#run">BaseDecorator#run</a>
</li></ul></dd>
</dl>
<div class="description">
<p>Context method.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type">Context</span>
</td>
<td class="description last"><p>A run instance.</p></td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>A state constant.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="global.html#Constant">Constant</a></span>
</dd>
</dl>
<h4 class="name" id="tick"><span class="type-signature"></span>tick<span class="signature">(context)</span><span class="type-signature"> → {<a href="global.html#NodeStatus">NodeStatus</a>}</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="core_BaseNode.js.html">core/BaseNode.js</a>, <a href="core_BaseNode.js.html#line84">line 84</a>
</li></ul></dd>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="BaseDecorator.html#tick">BaseDecorator#tick</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="typ