base-domain
Version:
simple module to help build Domain-Driven Design
1,357 lines (894 loc) • 37.6 kB
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/lib/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/lib/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/lib/facade.coffee:201</code></a>
</p>
</div>
<div class="description">
<p>read a file and returns the instance of the file'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/lib/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/lib/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/lib/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/lib/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/lib/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/lib/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/lib/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/lib/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/lib/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='./data']</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='./tsv']</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/lib/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/lib/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/lib/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/lib/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/lib/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>