UNPKG

base-domain

Version:

simple module to help build Domain-Driven Design

1,357 lines (894 loc) 37.6 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Facade</title> <link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css"> <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css"> <link rel="stylesheet" href="../assets/css/main.css" id="site_styles"> <link rel="icon" href="../assets/favicon.ico"> <script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script> </head> <body class="yui3-skin-sam"> <div id="doc"> <div id="hd" class="yui3-g header"> <div class="yui3-u-3-4"> <h1><img src="../assets/css/logo.png" title="" width="117" height="52"></h1> </div> <div class="yui3-u-1-4 version"> <em>API Docs for: </em> </div> </div> <div id="bd" class="yui3-g"> <div class="yui3-u-1-4"> <div id="docs-sidebar" class="sidebar apidocs"> <div id="api-list"> <h2 class="off-left">APIs</h2> <div id="api-tabview" class="tabview"> <ul class="tabs"> <li><a href="#api-classes">Classes</a></li> <li><a href="#api-modules">Modules</a></li> </ul> <div id="api-tabview-filter"> <input type="search" id="api-filter" placeholder="Type to filter APIs"> </div> <div id="api-tabview-panel"> <ul id="api-classes" class="apis classes"> <li><a href="../classes/Base.html">Base</a></li> <li><a href="../classes/BaseDict.html">BaseDict</a></li> <li><a href="../classes/BaseFactory.html">BaseFactory</a></li> <li><a href="../classes/BaseList.html">BaseList</a></li> <li><a href="../classes/BaseModel.html">BaseModel</a></li> <li><a href="../classes/BaseRepository.html">BaseRepository</a></li> <li><a href="../classes/DictFactory.html">DictFactory</a></li> <li><a href="../classes/DomainError.html">DomainError</a></li> <li><a href="../classes/Entity.html">Entity</a></li> <li><a href="../classes/Facade.html">Facade</a></li> <li><a href="../classes/Fixture.html">Fixture</a></li> <li><a href="../classes/FixtureModel.html">FixtureModel</a></li> <li><a href="../classes/Includer.html">Includer</a></li> <li><a href="../classes/ListFactory.html">ListFactory</a></li> <li><a href="../classes/MasterRepository.html">MasterRepository</a></li> <li><a href="../classes/PropInfo.html">PropInfo</a></li> <li><a href="../classes/ResourceClientInterface.html">ResourceClientInterface</a></li> <li><a href="../classes/TypeInfo.html">TypeInfo</a></li> <li><a href="../classes/Util.html">Util</a></li> </ul> <ul id="api-modules" class="apis modules"> <li><a href="../modules/base-domain.html">base-domain</a></li> </ul> </div> </div> </div> </div> </div> <div class="yui3-u-3-4"> <div id="api-options"> Show: <label for="api-show-inherited"> <input type="checkbox" id="api-show-inherited" checked> Inherited </label> <label for="api-show-protected"> <input type="checkbox" id="api-show-protected"> Protected </label> <label for="api-show-private"> <input type="checkbox" id="api-show-private"> Private </label> <label for="api-show-deprecated"> <input type="checkbox" id="api-show-deprecated"> Deprecated </label> </div> <div class="apidocs"> <div id="docs-main"> <div class="content"> <h1>Facade Class</h1> <div class="box meta"> <div class="foundat"> Defined in: <a href="../files/src_lib_facade.coffee.html#l10"><code>src&#x2F;lib&#x2F;facade.coffee:10</code></a> </div> Module: <a href="../modules/base-domain.html">base-domain</a> </div> <div class="box intro"> <p>Facade class of DDD pattern.</p> <ul> <li>create instance of factories</li> <li>create instance of repositories</li> </ul> </div> <div id="classdocs" class="tabview"> <ul class="api-class-tabs"> <li class="api-class-tab index"><a href="#index">Index</a></li> <li class="api-class-tab methods"><a href="#methods">Methods</a></li> </ul> <div> <div id="index" class="api-class-tabpanel index"> <h2 class="off-left">Item Index</h2> <div class="index-section methods"> <h3>Methods</h3> <ul class="index-list methods"> <li class="index-item method private"> <a href="#method_addClass">addClass</a> </li> <li class="index-item method private"> <a href="#method_create">create</a> </li> <li class="index-item method"> <a href="#method_createFactory">createFactory</a> </li> <li class="index-item method"> <a href="#method_createInstance">createInstance</a> <span class="flag static">static</span> </li> <li class="index-item method"> <a href="#method_createRepository">createRepository</a> </li> <li class="index-item method"> <a href="#method_error">error</a> </li> <li class="index-item method"> <a href="#method_getFactory">getFactory</a> </li> <li class="index-item method"> <a href="#method_getModel">getModel</a> </li> <li class="index-item method"> <a href="#method_getRepository">getRepository</a> </li> <li class="index-item method"> <a href="#method_hasClass">hasClass</a> </li> <li class="index-item method"> <a href="#method_insertFixtures">insertFixtures</a> </li> <li class="index-item method"> <a href="#method_isBaseClass">isBaseClass</a> <span class="flag static">static</span> </li> <li class="index-item method"> <a href="#method_isDomainError">isDomainError</a> </li> <li class="index-item method"> <a href="#method_loadMasterTables">loadMasterTables</a> </li> <li class="index-item method"> <a href="#method_registerBaseClass">registerBaseClass</a> <span class="flag static">static</span> </li> <li class="index-item method private"> <a href="#method_require">require</a> </li> </ul> </div> </div> <div id="methods" class="api-class-tabpanel"> <h2 class="off-left">Methods</h2> <div id="method_addClass" class="method item private"> <h3 class="name"><code>addClass</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> <li class="arg"> <code>klass</code> </li> <li class="arg"> <code>skipNameValidation</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Function</span> </span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l163"><code>src&#x2F;lib&#x2F;facade.coffee:163</code></a> </p> </div> <div class="description"> <p>add copied class to facade. the class is acquired by @require(name)</p> <p>attaches getFacade() method (for both class and instance)</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> <li class="param"> <code class="param-name">klass</code> <span class="type">Function</span> <div class="param-description"> </div> </li> <li class="param"> <code class="param-name">skipNameValidation</code> <span class="type">Boolean</span> <div class="param-description"> <p>validate class name is compatible with the name to register</p> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Function</span>: </div> </div> </div> <div id="method_create" class="method item private"> <h3 class="name"><code>create</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> <li class="arg"> <code class="optional">[options]</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/BaseFactory.html" class="crosslink">BaseFactory</a></span> </span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l201"><code>src&#x2F;lib&#x2F;facade.coffee:201</code></a> </p> </div> <div class="description"> <p>read a file and returns the instance of the file&#39;s class</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> <li class="param"> <code class="param-name optional">[options]</code> <span class="type">Object</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type"><a href="../classes/BaseFactory.html" class="crosslink">BaseFactory</a></span>: </div> </div> </div> <div id="method_createFactory" class="method item"> <h3 class="name"><code>createFactory</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> <li class="arg"> <code class="optional">[useAnonymousWhenFailed=false]</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/BaseFactory.html" class="crosslink">BaseFactory</a></span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l106"><code>src&#x2F;lib&#x2F;facade.coffee:106</code></a> </p> </div> <div class="description"> <p>create a factory instance</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> <li class="param"> <code class="param-name optional">[useAnonymousWhenFailed=false]</code> <span class="type">Boolean</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type"><a href="../classes/BaseFactory.html" class="crosslink">BaseFactory</a></span>: </div> </div> </div> <div id="method_createInstance" class="method item"> <h3 class="name"><code>createInstance</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code class="optional">[options]</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/Facade.html" class="crosslink">Facade</a></span> </span> <span class="flag static">static</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l22"><code>src&#x2F;lib&#x2F;facade.coffee:22</code></a> </p> </div> <div class="description"> <p>create instance of Facade</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name optional">[options]</code> <span class="type">Object</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type"><a href="../classes/Facade.html" class="crosslink">Facade</a></span>: </div> </div> </div> <div id="method_createRepository" class="method item"> <h3 class="name"><code>createRepository</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> <li class="arg"> <code class="optional">[options]</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/BaseRepository.html" class="crosslink">BaseRepository</a></span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l119"><code>src&#x2F;lib&#x2F;facade.coffee:119</code></a> </p> </div> <div class="description"> <p>create a repository instance</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> <li class="param"> <code class="param-name optional">[options]</code> <span class="type">Object</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type"><a href="../classes/BaseRepository.html" class="crosslink">BaseRepository</a></span>: </div> </div> </div> <div id="method_error" class="method item"> <h3 class="name"><code>error</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>reason</code> </li> <li class="arg"> <code class="optional">[message]</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Error</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l215"><code>src&#x2F;lib&#x2F;facade.coffee:215</code></a> </p> </div> <div class="description"> <p>create instance of DomainError</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">reason</code> <span class="type">String</span> <div class="param-description"> <p>reason of the error</p> </div> </li> <li class="param"> <code class="param-name optional">[message]</code> <span class="type">String</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Error</span>: </div> </div> </div> <div id="method_getFactory" class="method item"> <h3 class="name"><code>getFactory</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> <li class="arg"> <code class="optional">[useAnonymousWhenFailed=false]</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Function</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l74"><code>src&#x2F;lib&#x2F;facade.coffee:74</code></a> </p> </div> <div class="description"> <p>get a factory class</p> <p>ISSUE: user will never know load failure</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> <li class="param"> <code class="param-name optional">[useAnonymousWhenFailed=false]</code> <span class="type">Boolean</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Function</span>: </div> </div> </div> <div id="method_getModel" class="method item"> <h3 class="name"><code>getModel</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Class</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l62"><code>src&#x2F;lib&#x2F;facade.coffee:62</code></a> </p> </div> <div class="description"> <p>get a model class</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Class</span>: </div> </div> </div> <div id="method_getRepository" class="method item"> <h3 class="name"><code>getRepository</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Class</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l95"><code>src&#x2F;lib&#x2F;facade.coffee:95</code></a> </p> </div> <div class="description"> <p>get a repository class</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Class</span>: </div> </div> </div> <div id="method_hasClass" class="method item"> <h3 class="name"><code>hasClass</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Function</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l148"><code>src&#x2F;lib&#x2F;facade.coffee:148</code></a> </p> </div> <div class="description"> <p>check existence of the class of the given name</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Function</span>: </div> </div> </div> <div id="method_insertFixtures" class="method item"> <h3 class="name"><code>insertFixtures</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code class="optional">[options]</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Promise(Object)</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l242"><code>src&#x2F;lib&#x2F;facade.coffee:242</code></a> </p> </div> <div class="description"> <p>insert fixture data (Node.js only)</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name optional">[options]</code> <span class="type">Object</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> </div> <ul class="params-list"> <li class="param"> <code class="param-name optional">[dataDir=&#x27;./data&#x27;]</code> <span class="type">String</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> <p>directory to have fixture data files</p> </div> </li> <li class="param"> <code class="param-name optional">[tsvDir=&#x27;./tsv&#x27;]</code> <span class="type">String</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> <p>directory to have TSV files</p> </div> </li> <li class="param"> <code class="param-name optional">[models=null]</code> <span class="type">Array(String)</span> <span class="flag optional" title="This parameter is optional.">optional</span> <div class="param-description"> <p>model names to insert. default: all models</p> </div> </li> </ul> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Promise(Object)</span>: <p>dataPool inserted data</p> </div> </div> </div> <div id="method_isBaseClass" class="method item"> <h3 class="name"><code>isBaseClass</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>klass</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Boolean</span> </span> <span class="flag static">static</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l260"><code>src&#x2F;lib&#x2F;facade.coffee:260</code></a> </p> </div> <div class="description"> <p>check the given class is registered in facade</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">klass</code> <span class="type">Function</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Boolean</span>: </div> </div> </div> <div id="method_isDomainError" class="method item"> <h3 class="name"><code>isDomainError</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>e</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Boolean</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l229"><code>src&#x2F;lib&#x2F;facade.coffee:229</code></a> </p> </div> <div class="description"> <p>check if given object is instance of DomainError</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">e</code> <span class="type">Error</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Boolean</span>: </div> </div> </div> <div id="method_loadMasterTables" class="method item"> <h3 class="name"><code>loadMasterTables</code></h3> <span class="paren">()</span> <span class="returns-inline"> <span class="type">Promise</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l52"><code>src&#x2F;lib&#x2F;facade.coffee:52</code></a> </p> </div> <div class="description"> <p>load master tables</p> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Promise</span>: </div> </div> </div> <div id="method_registerBaseClass" class="method item"> <h3 class="name"><code>registerBaseClass</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>klass</code> </li> </ul><span class="paren">)</span> </div> <span class="flag static">static</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l273"><code>src&#x2F;lib&#x2F;facade.coffee:273</code></a> </p> </div> <div class="description"> <p>registers the given class as a base class</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">klass</code> <span class="type">Function</span> <div class="param-description"> </div> </li> </ul> </div> </div> <div id="method_require" class="method item private"> <h3 class="name"><code>require</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>name</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Function</span> </span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_facade.coffee.html#l131"><code>src&#x2F;lib&#x2F;facade.coffee:131</code></a> </p> </div> <div class="description"> <p>read a file and returns class</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">name</code> <span class="type">String</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Function</span>: </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <script src="../assets/vendor/prettify/prettify-min.js"></script> <script>prettyPrint();</script> <script src="../assets/js/yui-prettify.js"></script> <script src="../assets/../api.js"></script> <script src="../assets/js/api-filter.js"></script> <script src="../assets/js/api-list.js"></script> <script src="../assets/js/api-search.js"></script> <script src="../assets/js/apidocs.js"></script> </body> </html>