UNPKG

base-domain

Version:

simple module to help build Domain-Driven Design

1,093 lines (674 loc) 30.4 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>BaseFactory</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>BaseFactory Class</h1> <div class="box meta"> <div class="extends"> Extends <a href="../classes/Base.html" class="crosslink">Base</a> </div> <div class="foundat"> Defined in: <a href="../files/src_lib_base-factory.coffee.html#l5"><code>src&#x2F;lib&#x2F;base-factory.coffee:5</code></a> </div> Module: <a href="../modules/base-domain.html">base-domain</a> </div> <div class="box intro"> <p>Base factory class of DDD pattern.</p> <p>create instance of model</p> <p>the parent &quot;Base&quot; class just simply gives a @getFacade() method.</p> </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> <li class="api-class-tab properties"><a href="#properties">Properties</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 extends"> <li class="index-item method protected"> <a href="#method_afterCreateModel">afterCreateModel</a> </li> <li class="index-item method protected"> <a href="#method_beforeCreateFromObject">beforeCreateFromObject</a> </li> <li class="index-item method public"> <a href="#method_createDict">createDict</a> </li> <li class="index-item method"> <a href="#method_createEmptyModel">createEmptyModel</a> </li> <li class="index-item method private"> <a href="#method_createEmptyNonEntityProp">createEmptyNonEntityProp</a> </li> <li class="index-item method public"> <a href="#method_createFromObject">createFromObject</a> </li> <li class="index-item method public"> <a href="#method_createList">createList</a> </li> <li class="index-item method private"> <a href="#method_fetchEntityProp">fetchEntityProp</a> </li> <li class="index-item method"> <a href="#method_getAnonymousClass">getAnonymousClass</a> </li> <li class="index-item method inherited"> <a href="#method_getFacade">getFacade</a> </li> <li class="index-item method"> <a href="#method_getModelClass">getModelClass</a> </li> <li class="index-item method private"> <a href="#method_setEmptyValueToModel">setEmptyValueToModel</a> </li> <li class="index-item method private"> <a href="#method_setSubModelListToModel">setSubModelListToModel</a> </li> <li class="index-item method private"> <a href="#method_setSubModelToModel">setSubModelToModel</a> </li> <li class="index-item method private"> <a href="#method_setSubModelToModel">setSubModelToModel</a> </li> <li class="index-item method private"> <a href="#method_setValueToModel">setValueToModel</a> </li> </ul> </div> <div class="index-section properties"> <h3>Properties</h3> <ul class="index-list properties extends"> <li class="index-item property protected"> <a href="#property_dictModelName">dictModelName</a> <span class="flag static">static</span> </li> <li class="index-item property protected"> <a href="#property_modelName">modelName</a> <span class="flag static">static</span> </li> </ul> </div> </div> <div id="methods" class="api-class-tabpanel"> <h2 class="off-left">Methods</h2> <div id="method_afterCreateModel" class="method item protected"> <h3 class="name"><code>afterCreateModel</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>model</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/BaseModel.html" class="crosslink">BaseModel</a></span> </span> <span class="flag protected">protected</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l294"><code>src&#x2F;lib&#x2F;base-factory.coffee:294</code></a> </p> </div> <div class="description"> <p>modify model after createFromObject(obj), createEmptyModel()</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">model</code> <span class="type"><a href="../classes/BaseModel.html" class="crosslink">BaseModel</a></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/BaseModel.html" class="crosslink">BaseModel</a></span>: <p>model</p> </div> </div> </div> <div id="method_beforeCreateFromObject" class="method item protected"> <h3 class="name"><code>beforeCreateFromObject</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>obj</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type">Object</span> </span> <span class="flag protected">protected</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l281"><code>src&#x2F;lib&#x2F;base-factory.coffee:281</code></a> </p> </div> <div class="description"> <p>modify plain object before @createFromObject(obj)</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">obj</code> <span class="type">Object</span> <div class="param-description"> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Object</span>: <p>obj</p> </div> </div> </div> <div id="method_createDict" class="method item public"> <h3 class="name"><code>createDict</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>dictModelName</code> </li> <li class="arg"> <code>obj</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/BaseDict.html" class="crosslink">BaseDict</a></span> </span> <span class="flag public">public</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l325"><code>src&#x2F;lib&#x2F;base-factory.coffee:325</code></a> </p> </div> <div class="description"> <p>create model dict</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">dictModelName</code> <span class="type">String</span> <div class="param-description"> <p>model name of dict</p> </div> </li> <li class="param"> <code class="param-name">obj</code> <span class="type">Any</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/BaseDict.html" class="crosslink">BaseDict</a></span>: <p>dict</p> </div> </div> </div> <div id="method_createEmptyModel" class="method item"> <h3 class="name"><code>createEmptyModel</code></h3> <span class="paren">()</span> <span class="returns-inline"> <span class="type"><a href="../classes/BaseModel.html" class="crosslink">BaseModel</a></span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l75"><code>src&#x2F;lib&#x2F;base-factory.coffee:75</code></a> </p> </div> <div class="description"> <p>create empty model instance</p> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type"><a href="../classes/BaseModel.html" class="crosslink">BaseModel</a></span>: </div> </div> </div> <div id="method_createEmptyNonEntityProp" class="method item private"> <h3 class="name"><code>createEmptyNonEntityProp</code></h3> <span class="paren">()</span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l268"><code>src&#x2F;lib&#x2F;base-factory.coffee:268</code></a> </p> </div> <div class="description"> <p>create empty non-entity model and set to the prop</p> </div> </div> <div id="method_createFromObject" class="method item public"> <h3 class="name"><code>createFromObject</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>obj</code> </li> <li class="arg"> <code>baseModel</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/BaseModel.html" class="crosslink">BaseModel</a></span> </span> <span class="flag public">public</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l85"><code>src&#x2F;lib&#x2F;base-factory.coffee:85</code></a> </p> </div> <div class="description"> <p>create instance of model class by plain object</p> <p>for each prop, values are set by Model#set(prop, value)</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">obj</code> <span class="type">Object</span> <div class="param-description"> </div> </li> <li class="param"> <code class="param-name">baseModel</code> <span class="type"><a href="../classes/BaseModel.html" class="crosslink">BaseModel</a></span> <div class="param-description"> <p>fallback properties</p> </div> </li> </ul> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type"><a href="../classes/BaseModel.html" class="crosslink">BaseModel</a></span>: <p>model</p> </div> </div> </div> <div id="method_createList" class="method item public"> <h3 class="name"><code>createList</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>listModelName</code> </li> <li class="arg"> <code>obj</code> </li> </ul><span class="paren">)</span> </div> <span class="returns-inline"> <span class="type"><a href="../classes/BaseList.html" class="crosslink">BaseList</a></span> </span> <span class="flag public">public</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l308"><code>src&#x2F;lib&#x2F;base-factory.coffee:308</code></a> </p> </div> <div class="description"> <p>create model list</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">listModelName</code> <span class="type">String</span> <div class="param-description"> <p>model name of list</p> </div> </li> <li class="param"> <code class="param-name">obj</code> <span class="type">Any</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/BaseList.html" class="crosslink">BaseList</a></span>: <p>list</p> </div> </div> </div> <div id="method_fetchEntityProp" class="method item private"> <h3 class="name"><code>fetchEntityProp</code></h3> <span class="paren">()</span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l242"><code>src&#x2F;lib&#x2F;base-factory.coffee:242</code></a> </p> </div> <div class="description"> <p>fetch submodel(s) by id available only when repository of submodel implements &#39;getByIdSync&#39; (MasterRepository implements one)</p> </div> </div> <div id="method_getAnonymousClass" class="method item"> <h3 class="name"><code>getAnonymousClass</code></h3> <div class="args"> <span class="paren">(</span><ul class="args-list inline commas"> <li class="arg"> <code>modelName</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_base-factory.coffee.html#l39"><code>src&#x2F;lib&#x2F;base-factory.coffee:39</code></a> </p> </div> <div class="description"> <p>get anonymous factory class</p> </div> <div class="params"> <h4>Parameters:</h4> <ul class="params-list"> <li class="param"> <code class="param-name">modelName</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_getFacade" class="method item inherited"> <h3 class="name"><code>getFacade</code></h3> <span class="paren">()</span> <span class="returns-inline"> <span class="type"><a href="../classes/Facade.html" class="crosslink">Facade</a></span> </span> <div class="meta"> <p>Inherited from <a href="../classes/Base.html#method_getFacade">Base</a>: <a href="../files/src_lib_base.coffee.html#l32"><code>src&#x2F;lib&#x2F;base.coffee:32</code></a> </p> </div> <div class="description"> <p>get facade</p> <p>the implementation is in Facade#requre()</p> </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_getModelClass" class="method item"> <h3 class="name"><code>getModelClass</code></h3> <span class="paren">()</span> <span class="returns-inline"> <span class="type">Function</span> </span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l64"><code>src&#x2F;lib&#x2F;base-factory.coffee:64</code></a> </p> </div> <div class="description"> <p>get model class this factory handles</p> </div> <div class="returns"> <h4>Returns:</h4> <div class="returns-description"> <span class="type">Function</span>: </div> </div> </div> <div id="method_setEmptyValueToModel" class="method item private"> <h3 class="name"><code>setEmptyValueToModel</code></h3> <span class="paren">()</span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l146"><code>src&#x2F;lib&#x2F;base-factory.coffee:146</code></a> </p> </div> <div class="description"> <p>set empty values to model in creation</p> </div> </div> <div id="method_setSubModelListToModel" class="method item private"> <h3 class="name"><code>setSubModelListToModel</code></h3> <span class="paren">()</span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l176"><code>src&#x2F;lib&#x2F;base-factory.coffee:176</code></a> </p> </div> <div class="description"> <p>creates list and set it to the model</p> </div> </div> <div id="method_setSubModelToModel" class="method item private"> <h3 class="name"><code>setSubModelToModel</code></h3> <span class="paren">()</span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l197"><code>src&#x2F;lib&#x2F;base-factory.coffee:197</code></a> </p> </div> <div class="description"> <p>set submodel to the prop</p> </div> </div> <div id="method_setSubModelToModel" class="method item private"> <h3 class="name"><code>setSubModelToModel</code></h3> <span class="paren">()</span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l222"><code>src&#x2F;lib&#x2F;base-factory.coffee:222</code></a> </p> </div> <div class="description"> <p>set submodel dict to the prop</p> </div> </div> <div id="method_setValueToModel" class="method item private"> <h3 class="name"><code>setValueToModel</code></h3> <span class="paren">()</span> <span class="flag private">private</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l121"><code>src&#x2F;lib&#x2F;base-factory.coffee:121</code></a> </p> </div> <div class="description"> <p>set value to model in creation</p> </div> </div> </div> <div id="properties" class="api-class-tabpanel"> <h2 class="off-left">Properties</h2> <div id="property_dictModelName" class="property item protected"> <h3 class="name"><code>dictModelName</code></h3> <span class="type">String</span> <span class="flag protected">protected</span> <span class="flag static">static</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l28"><code>src&#x2F;lib&#x2F;base-factory.coffee:28</code></a> </p> </div> <div class="description"> <p>name of dict model to create dict of @modelName</p> </div> </div> <div id="property_modelName" class="property item protected"> <h3 class="name"><code>modelName</code></h3> <span class="type">String</span> <span class="flag protected">protected</span> <span class="flag static">static</span> <div class="meta"> <p> Defined in <a href="../files/src_lib_base-factory.coffee.html#l18"><code>src&#x2F;lib&#x2F;base-factory.coffee:18</code></a> </p> </div> <div class="description"> <p>model name to handle</p> </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>