diff --git a/.gitignore b/.gitignore index c4b3fa2..45c7282 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ /.settings /.dub /dub.selections.json -/docs /__dummy.html /docs.json /poodinis @@ -19,4 +18,4 @@ /.project /.idea /*.iml -/out \ No newline at end of file +/out diff --git a/docs/css/style.min.css b/docs/css/style.min.css new file mode 100644 index 0000000..21c73b1 --- /dev/null +++ b/docs/css/style.min.css @@ -0,0 +1,3 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.container{position:relative;width:100%;max-width:960px;margin:0 auto;padding:0 20px;box-sizing:border-box}.column,.columns{width:100%;float:left;box-sizing:border-box}@media(min-width:400px){.container{width:85%;padding:0}}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74.0%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78.0%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{font-size:1.5em;line-height:1.6;font-weight:400;font-family:"Raleway","HelveticaNeue","Helvetica Neue",Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4.0rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3.0rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:550px){h1{font-size:5.0rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3.0rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type="submit"],input[type="reset"],input[type="button"]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:hover,button:hover,input[type="submit"]:hover,input[type="reset"]:hover,input[type="button"]:hover,.button:focus,button:focus,input[type="submit"]:focus,input[type="reset"]:focus,input[type="button"]:focus{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type="submit"].button-primary,input[type="reset"].button-primary,input[type="button"].button-primary{color:#FFF;background-color:#33c3f0;border-color:#33c3f0} +.button.button-primary:hover,button.button-primary:hover,input[type="submit"].button-primary:hover,input[type="reset"].button-primary:hover,input[type="button"].button-primary:hover,.button.button-primary:focus,button.button-primary:focus,input[type="submit"].button-primary:focus,input[type="reset"].button-primary:focus,input[type="button"].button-primary:focus{color:#FFF;background-color:#1eaedb;border-color:#1eaedb}input[type="email"],input[type="number"],input[type="search"],input[type="text"],input[type="tel"],input[type="url"],input[type="password"],textarea,select{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type="email"],input[type="number"],input[type="search"],input[type="text"],input[type="tel"],input[type="url"],input[type="password"],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="text"]:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="password"]:focus,textarea:focus,select:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type="checkbox"],input[type="radio"]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:normal}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0;margin-top:0}ul ul,ul ol,ol ol,ol ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;background:#f1f1f1;border:1px solid #e1e1e1;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}th,td{padding:12px 15px;text-align:left;border-bottom:1px solid #e1e1e1}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}button,.button{margin-bottom:1rem}input,textarea,select,fieldset{margin-bottom:1.5rem}pre,blockquote,dl,figure,table,p,ul,ol,form{margin-bottom:2.5rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.pln{color:#4d4d4c}@media screen{.spc{color:#606}.str{color:#718c00}.kwd{color:#8959a8}.com{color:#8e908c}.typ{color:#4271ae}.lit{color:#f5871f}.pun{color:#4d4d4c}.opn{color:#4d4d4c}.clo{color:#4d4d4c}.tag{color:#c82829}.atn{color:#f5871f}.atv{color:#3e999f}.dec{color:#f5871f}.var{color:#c82829}.fun{color:#4271ae}}@media print,projection{.spc{color:#606}.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}ol.linenums{margin-top:0;margin-bottom:0}@font-face{font-family:'Raleway';font-style:normal;font-weight:normal;src:local('Raleway'),url(../fonts/raleway-regular.woff) format('woff')}@font-face{font-family:'fontello';font-style:normal;font-weight:normal;src:url(../fonts/fontello.woff) format('woff')}a{text-decoration:none}ul.tree-view li{list-style-type:none}#main-nav{background:#343131}body{position:absolute;display:flex}#main-nav,#main-contents{padding:2em 1em 0 1em;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between}@media(max-width:750px){body{min-width:100%;flex-direction:column}}@media(min-width:750px){body{min-height:100%}#main-nav{min-width:15em}}p#main-nav-footer{margin-bottom:0;text-align:right}section{margin-top:1em}div#symbolSearchPane{position:relative;max-width:13em}input#symbolSearch,ul#symbolSearchResults{box-sizing:border-box;width:100%}input#symbolSearch.with_results{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}ul#symbolSearchResults{font-size:.85em;background-color:white;border:1px solid #aaa;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-sizing:border-box;position:absolute;top:38px;left:0;z-index:2}ul#symbolSearchResults>li{list-style-type:none;padding-left:10px;margin-bottom:0}ul.searchResults.symbolList>li{list-style-type:none}ul.searchResults.symbolList>li>h5{margin-bottom:0}div#license-info,p#main-nav-footer{font-variant:small-caps;font-size:.75em}div#license-info>p{display:inline}div#license-info>p:not(:first-child)::before{content:" | "}nav#main-nav ul.tree-view a,nav#main-nav ul.tree-view li,p#main-nav-footer a,p#main-nav-footer{color:#b3b3b3}ul.tree-view div.package:before{font-family:"fontello";speak:none;margin-right:.3em}ul.tree-view li.collapsed>div.package:before{content:'\e800'}ul.tree-view li:not(.collapsed)>div.package:before{content:'\e801'} +ul.tree-view div.selected>a{color:white!important}div.prototype>code{display:block;padding:1rem 1.5rem} diff --git a/docs/file_hashes.json b/docs/file_hashes.json new file mode 100644 index 0000000..842ce81 --- /dev/null +++ b/docs/file_hashes.json @@ -0,0 +1 @@ +{"poodinis/autowire/AssignNewInstance.html":"68F050F50E0711FC981023F3A3F011E1","poodinis/valueinjection/ValueInjector.html":"B21CBA48EE4E0547ECF3839D662C73B0","poodinis/valueinjection/MandatoryValue.html":"4E586A0DDE261A53E6D4C4B9451143A3","poodinis/registration/existingInstance.html":"051759838C5925DB657FA2D829C3BC10","poodinis/context/Prototype.html":"E18D2277716D8236E81C40E2BBCA3368","poodinis/registration.html":"EA050F201F045FDB8DAFEA77DD722711","poodinis/autowire.html":"873FA971B131858C4563EBAFB0A8FF32","poodinis/context/Component.html":"AA504C86A1775EC7FA8E4759BC9FB32E","poodinis/container.html":"CCA1DBA9B8F35CA36889EB2084A58C96","poodinis/valueinjection/Value.key.html":"D81B8630B2AABBDADB8D399FF81C29D3","poodinis/container/DependencyContainer.unsetPersistentResolveOptions.html":"413DD74D6578F0AFDA2A8ACCDD8A2642","poodinis/container/DependencyContainer.resolveAll.html":"FB27DD3FD009B1EF50F3E3F1C5717B6F","poodinis/container/DependencyContainer.clearAllRegistrations.html":"0CE90E0F405254C5F0C68FDA00E0A7A7","poodinis/container/RegistrationOption.html":"77B1C346EFE5F63210421843F8F0FF7B","poodinis/container/ResolveException.html":"55FB7C79AC4A58D5EA52DE42F6CD9B53","poodinis/container/RegistrationException.html":"2C04BB3EC8D970122510B203744349E2","poodinis/context/registerContext.html":"403E9FDC354343C608653CFF0724A654","poodinis/context.html":"9E4360F9C517FC8C756E28408D5B93EE","poodinis/autowire/OptionalDependency.html":"5457B41C3B54AAFB4A0682CC6A61FBD5","poodinis/context/RegisterByType.html":"D6BC577CC274AB80740D1A8A382E0CE3","poodinis/container/ResolveOption.html":"C2229261C29CF0F393B9B656D9A70565","index.html":"707936AB562BBD96786D1B24E94AB0D3","poodinis/container/DependencyContainer.setPersistentRegistrationOptions.html":"077CCA3AAC1779AFB6F29D3643366FAB","poodinis/valueinjection.html":"045F71B99E7D0509F13018B7B43A9E7D","poodinis/registration/newInstance.html":"29353EA71A0CFF0C4CF26B379EBC08FB","poodinis/container/DependencyContainer.register.html":"32313E1A2BD78DB37CA445C30DD76613","poodinis/valueinjection/MandatoryValue.key.html":"4C1394A24183C71AA1B71A0F7D34D369","poodinis/container/DependencyContainer.resolve.html":"4D97EDBE55E146DB3D7CF3DE566D94BC","poodinis/valueinjection/ValueInjectionException.html":"508EB576A6F2B0ED0AA81239FA34E88E","poodinis/container/DependencyContainer.html":"219A237F1ECBAA0FA6D681A8CCCF0147","poodinis/autowire/autowire.html":"BF6DBE819E73269D992F3C7C95C88E13","poodinis/container/DependencyContainer.unsetPersistentRegistrationOptions.html":"03126572DA5C416703BDFF6D498A096E","poodinis/container/PostConstruct.html":"627291C2E771FE21C7742FA22F00340C","sitemap.xml":"EE65906ED51AF4E973FCB16490904763","poodinis/container/PreDestroy.html":"4286FDB4A1B1FC57C1C4DD04414A7F5F","poodinis/valueinjection/ValueNotAvailableException.html":"C8EC0CE923C6B973A4F2A095B2C39A93","poodinis/polyfill.html":"D80BE6BA8A34235820AC787707BC3989","poodinis/registration/singleInstance.html":"3B7A09C391B97B2EF50238CE0D153C8C","poodinis.html":"AB0048AABC9B92621876D17F43468821","poodinis/container/DependencyContainer.setPersistentResolveOptions.html":"E383051C6C50451FB480EA35DE9F559B","poodinis/container/DependencyContainer.removeRegistration.html":"0F1A911E0777476AD8617FD4977B8456","poodinis/factory.html":"0C1233CF47BBE34792EDFA52FBBEFF41","poodinis/valueinjection/ValueInjector.get.html":"9C5144F4CB8952002BCE3D834377D415","poodinis/valueinjection/Value.html":"075C2F54FF1D595880E455EB4DD4C338","poodinis/autowire/globalAutowire.html":"2D68C3AD3553AA85CDC68AF96CACA814","poodinis/autowire/Autowire.html":"ACD44CFE1A11EB90082AC828118287E1","symbols.js":"2390A5954B881A426122085DB757E27B"} \ No newline at end of file diff --git a/docs/fonts/fontello.woff b/docs/fonts/fontello.woff new file mode 100644 index 0000000..98ffb3b Binary files /dev/null and b/docs/fonts/fontello.woff differ diff --git a/docs/fonts/raleway-regular.woff b/docs/fonts/raleway-regular.woff new file mode 100644 index 0000000..e130a83 Binary files /dev/null and b/docs/fonts/raleway-regular.woff differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..7312f44 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,163 @@ + + + + + + API documentation + + + + +
+ +
+
+

API documentation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModuleDescription
+ poodinis.autowire + + Contains functionality for autowiring dependencies using a dependency container. + +
+ poodinis.container + + Contains the implementation of the dependency container. + +
+ poodinis.context + + Contains the implementation of application context setup. + +
+ poodinis.factory + + This module contains instance factory facilities + +
+ poodinis.polyfill + + Forward-compatibility module for providing support for Phobos functionality + not available in older versions of Phobos. + +
+ poodinis.registration + + This module contains objects for defining and scoping dependency registrations. + +
+ poodinis.valueinjection + + This module contains facilities to support value injection. Actual injection is done by the + autowiring mechanism. + +
+ poodinis + + Package module for the Poodinis Dependency Injection framework. + +
+
+ +
+ + \ No newline at end of file diff --git a/docs/js/script.min.js b/docs/js/script.min.js new file mode 100644 index 0000000..02d1112 --- /dev/null +++ b/docs/js/script.min.js @@ -0,0 +1 @@ +function setupDdox(){for(var e=document.querySelectorAll(".tree-view .package"),t=0;t=0;t--)for(u in a)if(e[t].length>=a[u].length&&e[t].substr(0,a[u].length)==a[u])return e.length-1-t;return e.length}function n(e,t){var n=e.attributes.indexOf("deprecated")>=0,r=t.attributes.indexOf("deprecated")>=0;if(n!=r)return n-r;var s=e.name.toLowerCase(),i=t.name.toLowerCase(),o=s.split("."),h=i.split("."),c=o[o.length-1],d=h[h.length-1],u=a.indexOf(c)>=0,g=a.indexOf(d)>=0;if(u!=g)return g-u;var f=l(o),m=l(h);return f!=m?f-m:o.lengthh.length?1:c.lengthd.length?1:si?1:0}var r=function(e){return document.getElementById(e)};"undefined"===e&&(e=26),void 0===t&&(t=40);var s=r("symbolSearch").value.toLowerCase();if(s!=lastSearchString){lastSearchString=s;++searchCounter;r("symbolSearchResults").style.display="none",r("symbolSearchResults").innerHTML="",r("symbolSearch").classList.remove("with_results");var a=s.trim().split(/\s+/);if(!(0==a.length||1==a.length&&a[0].length<2)){for(var i=[],o=0;o0&&f[m-1].length+p.length<=e;)m--,p="."+f[m]+p;p=m>0?".."+p:p.substr(1);var y=document.createElement("a");y.setAttribute("href",symbolSearchRootDir+h.path),y.setAttribute("title",g),y.setAttribute("tabindex",1001),y.textContent=p,d.appendChild(y),r("symbolSearchResults").appendChild(d)}if(i.length>t){var b=document.createElement("li");b.innerHTML="…"+(i.length-100)+" additional results",r("symbolSearchResults").appendChild(b)}i.length&&(r("symbolSearchResults").style.display="initial",r("symbolSearch").classList.add("with_results"))}}}var searchCounter=0,lastSearchString=""; diff --git a/docs/poodinis.html b/docs/poodinis.html new file mode 100644 index 0000000..a0edfb5 --- /dev/null +++ b/docs/poodinis.html @@ -0,0 +1,97 @@ + + + + + + Module poodinis + + + + +
+ +
+
+

Module poodinis

Package module for the Poodinis Dependency Injection framework. +

+ +
+
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/autowire.html b/docs/poodinis/autowire.html new file mode 100644 index 0000000..4cb6799 --- /dev/null +++ b/docs/poodinis/autowire.html @@ -0,0 +1,169 @@ + + + + + + Module poodinis.autowire + + + + +
+ +
+
+

Module poodinis.autowire

Contains functionality for autowiring dependencies using a dependency container. +

This module is used in a dependency container for autowiring dependencies when resolving them. + You typically only need this module if you want inject dependencies into a class instance not + managed by a dependency container. +

+ +

Part of the Poodinis Dependency Injection framework. +

+
+ +
+
+

Functions

+ + + + + + + + + + + + + +
NameDescription
+ + autowire(container, instance) + + Autowires members of a given instance using dependencies registered in the given container. +
+ + globalAutowire(instance) + + Autowire the given instance using the globally available dependency container. +
+
+
+

Structs

+ + + + + + + + + + + + + + + + + +
NameDescription
+ + AssignNewInstance + + UDA for annotating class members to be autowired with a new instance regardless of their registration scope. +
+ + Autowire + + UDA for annotating class members as candidates for autowiring. +
+ + OptionalDependency + + UDA for marking autowired dependencies optional. + Optional dependencies will not lead to a resolveException when there is no type registered for them. + The member will remain null. +
+
+
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/autowire/AssignNewInstance.html b/docs/poodinis/autowire/AssignNewInstance.html new file mode 100644 index 0000000..1b12ef5 --- /dev/null +++ b/docs/poodinis/autowire/AssignNewInstance.html @@ -0,0 +1,115 @@ + + + + + + Struct AssignNewInstance + + + + +
+ +
+
+

Struct AssignNewInstance

UDA for annotating class members to be autowired with a new instance regardless of their registration scope. +

+
+ +
+ struct AssignNewInstance + ; +
+
+
+
+ +

Examples

+
class Car {
+    @Autowire
+    @AssignNewInstance
+    public Antenna antenna;
+}
+

antenna will always be assigned a new instance of class Antenna. +

+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/autowire/Autowire.html b/docs/poodinis/autowire/Autowire.html new file mode 100644 index 0000000..0341fd0 --- /dev/null +++ b/docs/poodinis/autowire/Autowire.html @@ -0,0 +1,135 @@ + + + + + + Struct Autowire + + + + +
+ +
+
+

Struct Autowire

UDA for annotating class members as candidates for autowiring. +

+
+ +
+ struct Autowire(QualifierType) + ; +
+
+
+

Optionally a template parameter can be supplied to specify the type of a qualified class. The qualified type + of a concrete class is used to autowire members declared by supertype. If no qualifier is supplied, the type + of the member is used as qualifier. +

+
+ +

Examples

+

Annotate member of class to be autowired: +

+
class Car {
+   @Autowire
+   public Engine engine;
+}
+ +

Annotate member of class with qualifier: +

+
class FuelEngine : Engine { ... }
+class ElectricEngine : Engine { ... }
+
+class HybridCar {
+   @Autowire!FuelEngine
+   public Engine fuelEngine;
+
+   @Autowire!ElectricEngine
+   public Engine electricEngine;
+}
+

The members of an instance of "HybridCar" will now be autowired properly, because the autowire mechanism will + autowire member "fuelEngine" as if it's of type "FuelEngine". This means that the members of instance "fuelEngine" + will also be autowired because the autowire mechanism knows that member "fuelEngine" is an instance of "FuelEngine" +

+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/autowire/OptionalDependency.html b/docs/poodinis/autowire/OptionalDependency.html new file mode 100644 index 0000000..ba8ea94 --- /dev/null +++ b/docs/poodinis/autowire/OptionalDependency.html @@ -0,0 +1,107 @@ + + + + + + Struct OptionalDependency + + + + +
+ +
+
+

Struct OptionalDependency

UDA for marking autowired dependencies optional. + Optional dependencies will not lead to a resolveException when there is no type registered for them. + The member will remain null. +

+
+ +
+ struct OptionalDependency + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/autowire/autowire.html b/docs/poodinis/autowire/autowire.html new file mode 100644 index 0000000..b70aca3 --- /dev/null +++ b/docs/poodinis/autowire/autowire.html @@ -0,0 +1,120 @@ + + + + + + Function autowire + + + + +
+ +
+
+

Function autowire

Autowires members of a given instance using dependencies registered in the given container. +

+
+ +
+ void autowire(Type) + ( +
+   shared(DependencyContainer) container, +
+   Type instance +
+ ); +
+
+
+

All members of the given instance, which are annotated using the "Autowire" UDA, are autowired. + Members can have any visibility (public, private, etc). All members are resolved using the given + container. Qualifiers are used to determine the type of class to resolve for any member of instance. +

+
+ +

See Also

+

Autowire +

+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/autowire/globalAutowire.html b/docs/poodinis/autowire/globalAutowire.html new file mode 100644 index 0000000..5f67b14 --- /dev/null +++ b/docs/poodinis/autowire/globalAutowire.html @@ -0,0 +1,118 @@ + + + + + + Function globalAutowire + + + + +
+ +
+
+

Function globalAutowire

Autowire the given instance using the globally available dependency container. +

+
+ +
+ deprecated void globalAutowire(Type) + ( +
+   Type instance +
+ ); +
+
+
+
+ +

See Also

+

DependencyContainer +

+
+

Deprecated

+

Using the global container is undesired. See DependencyContainer.getInstance(). +

+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container.html b/docs/poodinis/container.html new file mode 100644 index 0000000..8f405f7 --- /dev/null +++ b/docs/poodinis/container.html @@ -0,0 +1,191 @@ + + + + + + Module poodinis.container + + + + +
+ +
+
+

Module poodinis.container

Contains the implementation of the dependency container. +

Part of the Poodinis Dependency Injection framework. +

+
+ +
+
+

Classes

+ + + + + + + + + + + + + + + + + +
NameDescription
+ + DependencyContainer + + The dependency container maintains all dependencies registered with it. +
+ + RegistrationException + + Exception thrown when errors occur while registering a type in a dependency container. +
+ + ResolveException + + Exception thrown when errors occur while resolving a type in a dependency container. +
+
+
+

Structs

+ + + + + + + + + + + + + +
NameDescription
+ + PostConstruct + + Methods marked with this UDA within dependencies are called after that dependency + is constructed by the dependency container. +
+ + PreDestroy + + Methods marked with this UDA within dependencies are called before the container + loses the dependency's registration. +
+
+
+

Enums

+ + + + + + + + + + + + + +
NameDescription
+ + RegistrationOption + + Options which influence the process of registering dependencies +
+ + ResolveOption + + Options which influence the process of resolving dependencies +
+
+
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.clearAllRegistrations.html b/docs/poodinis/container/DependencyContainer.clearAllRegistrations.html new file mode 100644 index 0000000..c0b772c --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.clearAllRegistrations.html @@ -0,0 +1,105 @@ + + + + + + Function DependencyContainer.clearAllRegistrations + + + + +
+ +
+
+

Function DependencyContainer.clearAllRegistrations

Clears all dependency registrations managed by this container. +

+
+ +
+ synchronized void clearAllRegistrations + () shared; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.html b/docs/poodinis/container/DependencyContainer.html new file mode 100644 index 0000000..8ba76d7 --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.html @@ -0,0 +1,221 @@ + + + + + + Class DependencyContainer + + + + +
+ +
+
+

Class DependencyContainer

The dependency container maintains all dependencies registered with it. +

+
+ +
+ class DependencyContainer + ; +
+
+
+

Dependencies registered by a container can be resolved as long as they are still registered with the container. + Upon resolving a dependency, an instance is fetched according to a specific scope which dictates how instances of + dependencies are created. Resolved dependencies will be autowired before being returned. +

+ +

In most cases you want to use a global singleton dependency container provided by getInstance() to manage all dependencies. + You can still create new instances of this class for exceptional situations. +

+
+ +

Methods

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescription
+ + clearAllRegistrations + + Clears all dependency registrations managed by this container. +
+ + register + + Register a dependency by concrete class type. +
+ + register + + Register a dependency by super type. +
+ + removeRegistration + + Removes a registered dependency by type. +
+ + resolve + + Resolve dependencies. +
+ + resolve + + Resolve dependencies using a qualifier. +
+ + resolveAll + + Resolve all dependencies registered to a super type. +
+ + setPersistentRegistrationOptions + + Apply persistent registration options which will be used everytime register() is called. +
+ + setPersistentResolveOptions + + Apply persistent resolve options which will be used everytime resolve() is called. +
+ + unsetPersistentRegistrationOptions + + Unsets all applied persistent registration options +
+ + unsetPersistentResolveOptions + + Unsets all applied persistent resolve options +
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.register.html b/docs/poodinis/container/DependencyContainer.register.html new file mode 100644 index 0000000..c5b8fcf --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.register.html @@ -0,0 +1,176 @@ + + + + + + DependencyContainer.register - multiple declarations + + + + +
+ +
+
+

DependencyContainer.register - multiple declarations

+

Function DependencyContainer.register

Register a dependency by concrete class type. +

+
+ +
+ Registration register(ConcreteType) + ( +
+   RegistrationOption options = RegistrationOption.none +
+ ); +
+
+
+

A dependency registered by concrete class type can only be resolved by concrete class type. + No qualifiers can be used when resolving dependencies which are registered by concrete type. +

+ +

The default registration scope is "single instance" scope. +

+
+ +

Returns

+

A registration is returned which can be used to change the registration scope. +

+
+

Examples

+

Register and resolve a class by concrete type: +

+
class Cat : Animal { ... }
+container.register!Cat;
+
+

See Also

+

singleInstance, newInstance, existingInstance +

+
+

Function DependencyContainer.register

Register a dependency by super type. +

+
+ +
+ Registration register(SuperType, ConcreteType) + ( +
+   RegistrationOption options = RegistrationOption.none +
+ ); +
+
+
+

A dependency registered by super type can only be resolved by super type. A qualifier is typically + used to resolve dependencies registered by super type. +

+ +

The default registration scope is "single instance" scope. +

+
+ +

Examples

+

Register and resolve by super type +

+
class Cat : Animal { ... }
+container.register!(Animal, Cat);
+
+

See Also

+

singleInstance, newInstance, existingInstance, RegistrationOption +

+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.removeRegistration.html b/docs/poodinis/container/DependencyContainer.removeRegistration.html new file mode 100644 index 0000000..bdfb7bb --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.removeRegistration.html @@ -0,0 +1,111 @@ + + + + + + Function DependencyContainer.removeRegistration + + + + +
+ +
+
+

Function DependencyContainer.removeRegistration

Removes a registered dependency by type. +

+
+ +
+ void removeRegistration(RegistrationType) + (); +
+
+
+

A dependency can be removed either by super type or concrete type, depending on how they are registered. +

+
+ +

Examples

+
container.removeRegistration!Animal;
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.resolve.html b/docs/poodinis/container/DependencyContainer.resolve.html new file mode 100644 index 0000000..0e84993 --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.resolve.html @@ -0,0 +1,203 @@ + + + + + + DependencyContainer.resolve - multiple declarations + + + + +
+ +
+
+

DependencyContainer.resolve - multiple declarations

+

Function DependencyContainer.resolve

Resolve dependencies. +

+
+ +
+ RegistrationType resolve(RegistrationType) + ( +
+   ResolveOption resolveOptions = ResolveOption.none +
+ ); +
+
+
+

Dependencies can only resolved using this method if they are registered by concrete type or the only + concrete type registered by super type. +

+ +

Resolved dependencies are automatically autowired before being returned. +

+
+ +

Returns

+

An instance is returned which is created according to the registration scope with which they are registered. +

+
+

Throws

+

ResolveException when type is not registered. +

+
+

Examples

+

Resolve dependencies registered by super type and concrete type: +

+
class Cat : Animal { ... }
+class Dog : Animal { ... }
+
+container.register!(Animal, Cat);
+container.register!Dog;
+
+container.resolve!Animal;
+container.resolve!Dog;
+

You cannot resolve a dependency when it is registered by multiple super types: +

+
class Cat : Animal { ... }
+class Dog : Animal { ... }
+
+container.register!(Animal, Cat);
+container.register!(Animal, Dog);
+
+container.resolve!Animal; // Error: multiple candidates for type "Animal"
+container.resolve!Dog; // Error: No type is registered by concrete type "Dog", only by super type "Animal"
+

You need to use the resolve method which allows you to specify a qualifier. +

+
+

Function DependencyContainer.resolve

Resolve dependencies using a qualifier. +

+
+ +
+ QualifierType resolve(RegistrationType, QualifierType) + ( +
+   ResolveOption resolveOptions = ResolveOption.none +
+ ); +
+
+
+

Dependencies can only resolved using this method if they are registered by super type. +

+ +

Resolved dependencies are automatically autowired before being returned. +

+
+ +

Returns

+

An instance is returned which is created according to the registration scope with which they are registered. +

+
+

Throws

+

ResolveException when type is not registered or there are multiple candidates available for type. +

+
+

Examples

+

Resolve dependencies registered by super type: +

+
class Cat : Animal { ... }
+class Dog : Animal { ... }
+
+container.register!(Animal, Cat);
+container.register!(Animal, Dog);
+
+container.resolve!(Animal, Cat);
+container.resolve!(Animal, Dog);
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.resolveAll.html b/docs/poodinis/container/DependencyContainer.resolveAll.html new file mode 100644 index 0000000..874f62c --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.resolveAll.html @@ -0,0 +1,123 @@ + + + + + + Function DependencyContainer.resolveAll + + + + +
+ +
+
+

Function DependencyContainer.resolveAll

Resolve all dependencies registered to a super type. +

+
+ +
+ RegistrationType[] resolveAll(RegistrationType) + ( +
+   ResolveOption resolveOptions = ResolveOption.none +
+ ); +
+
+
+
+ +

Returns

+

An array of autowired instances is returned. The order is undetermined. +

+
+

Examples

+
class Cat : Animal { ... }
+class Dog : Animal { ... }
+
+container.register!(Animal, Cat);
+container.register!(Animal, Dog);
+
+Animal[] animals = container.resolveAll!Animal;
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.setPersistentRegistrationOptions.html b/docs/poodinis/container/DependencyContainer.setPersistentRegistrationOptions.html new file mode 100644 index 0000000..86249b8 --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.setPersistentRegistrationOptions.html @@ -0,0 +1,109 @@ + + + + + + Function DependencyContainer.setPersistentRegistrationOptions + + + + +
+ +
+
+

Function DependencyContainer.setPersistentRegistrationOptions

Apply persistent registration options which will be used everytime register() is called. +

+
+ +
+ synchronized void setPersistentRegistrationOptions + ( +
+   RegistrationOption options +
+ ) shared; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.setPersistentResolveOptions.html b/docs/poodinis/container/DependencyContainer.setPersistentResolveOptions.html new file mode 100644 index 0000000..70ab8a0 --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.setPersistentResolveOptions.html @@ -0,0 +1,109 @@ + + + + + + Function DependencyContainer.setPersistentResolveOptions + + + + +
+ +
+
+

Function DependencyContainer.setPersistentResolveOptions

Apply persistent resolve options which will be used everytime resolve() is called. +

+
+ +
+ synchronized void setPersistentResolveOptions + ( +
+   ResolveOption options +
+ ) shared; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.unsetPersistentRegistrationOptions.html b/docs/poodinis/container/DependencyContainer.unsetPersistentRegistrationOptions.html new file mode 100644 index 0000000..083e42f --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.unsetPersistentRegistrationOptions.html @@ -0,0 +1,105 @@ + + + + + + Function DependencyContainer.unsetPersistentRegistrationOptions + + + + +
+ +
+
+

Function DependencyContainer.unsetPersistentRegistrationOptions

Unsets all applied persistent registration options +

+
+ +
+ synchronized void unsetPersistentRegistrationOptions + () shared; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/DependencyContainer.unsetPersistentResolveOptions.html b/docs/poodinis/container/DependencyContainer.unsetPersistentResolveOptions.html new file mode 100644 index 0000000..41d83ee --- /dev/null +++ b/docs/poodinis/container/DependencyContainer.unsetPersistentResolveOptions.html @@ -0,0 +1,105 @@ + + + + + + Function DependencyContainer.unsetPersistentResolveOptions + + + + +
+ +
+
+

Function DependencyContainer.unsetPersistentResolveOptions

Unsets all applied persistent resolve options +

+
+ +
+ synchronized void unsetPersistentResolveOptions + () shared; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/PostConstruct.html b/docs/poodinis/container/PostConstruct.html new file mode 100644 index 0000000..26934ac --- /dev/null +++ b/docs/poodinis/container/PostConstruct.html @@ -0,0 +1,110 @@ + + + + + + Struct PostConstruct + + + + +
+ +
+
+

Struct PostConstruct

Methods marked with this UDA within dependencies are called after that dependency + is constructed by the dependency container. +

+
+ +
+ struct PostConstruct + ; +
+
+
+

Multiple methods can be marked and will all be called after construction. The order in which + methods are called is undetermined. Methods should have the signature void(void). +

+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/PreDestroy.html b/docs/poodinis/container/PreDestroy.html new file mode 100644 index 0000000..b874768 --- /dev/null +++ b/docs/poodinis/container/PreDestroy.html @@ -0,0 +1,110 @@ + + + + + + Struct PreDestroy + + + + +
+ +
+
+

Struct PreDestroy

Methods marked with this UDA within dependencies are called before the container + loses the dependency's registration. +

+
+ +
+ struct PreDestroy + ; +
+
+
+

This method is called when removeRegistration or clearAllRegistrations is called. + It will also be called when the container's destructor is called. +

+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/RegistrationException.html b/docs/poodinis/container/RegistrationException.html new file mode 100644 index 0000000..fe3a752 --- /dev/null +++ b/docs/poodinis/container/RegistrationException.html @@ -0,0 +1,106 @@ + + + + + + Class RegistrationException + + + + +
+ +
+
+

Class RegistrationException

Exception thrown when errors occur while registering a type in a dependency container. +

+
+ +
+ class RegistrationException +
  : object.Exception + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/RegistrationOption.html b/docs/poodinis/container/RegistrationOption.html new file mode 100644 index 0000000..2697f44 --- /dev/null +++ b/docs/poodinis/container/RegistrationOption.html @@ -0,0 +1,121 @@ + + + + + + Enum RegistrationOption + + + + +
+ +
+
+

Enum RegistrationOption

Options which influence the process of registering dependencies +

+
+ +
+ enum RegistrationOption + : int { ... } +
+
+
+ +

Enum members

+ + + + + + + + + +
NameDescription
+ doNotAddConcreteTypeRegistration + Prevent a concrete type being registered on itself. With this option you will always need + to use the supertype as the type of the dependency. +
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/ResolveException.html b/docs/poodinis/container/ResolveException.html new file mode 100644 index 0000000..15830bf --- /dev/null +++ b/docs/poodinis/container/ResolveException.html @@ -0,0 +1,106 @@ + + + + + + Class ResolveException + + + + +
+ +
+
+

Class ResolveException

Exception thrown when errors occur while resolving a type in a dependency container. +

+
+ +
+ class ResolveException +
  : object.Exception + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/container/ResolveOption.html b/docs/poodinis/container/ResolveOption.html new file mode 100644 index 0000000..788fb34 --- /dev/null +++ b/docs/poodinis/container/ResolveOption.html @@ -0,0 +1,130 @@ + + + + + + Enum ResolveOption + + + + +
+ +
+
+

Enum ResolveOption

Options which influence the process of resolving dependencies +

+
+ +
+ enum ResolveOption + : int { ... } +
+
+
+ +

Enum members

+ + + + + + + + + + + + + +
NameDescription
+ noResolveException + Does not throw a resolve exception when a type is not registered but will + return null instead. If the type is an array, an empty array is returned instead. +
+ registerBeforeResolving + Registers the type you're trying to resolve before returning it. + This essentially makes registration optional for resolving by concerete types. + Resolinvg will still fail when trying to resolve a dependency by supertype. +
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/context.html b/docs/poodinis/context.html new file mode 100644 index 0000000..46ede30 --- /dev/null +++ b/docs/poodinis/context.html @@ -0,0 +1,156 @@ + + + + + + Module poodinis.context + + + + +
+ +
+
+

Module poodinis.context

Contains the implementation of application context setup. +

Part of the Poodinis Dependency Injection framework. +

+
+ +
+
+

Functions

+ + + + + + + + + +
NameDescription
+ + registerContext(container) + + Register dependencies through an application context. +
+
+
+

Structs

+ + + + + + + + + + + + + + + + + +
NameDescription
+ + Component + + A component annotation is used for specifying which factory methods produce components in + an application context. +
+ + Prototype + + Components with the prototype registration will be scoped as dependencies which will create + new instances every time they are resolved. The factory method will be called repeatedly. +
+ + RegisterByType + + This annotation allows you to specify by which super type the component should be registered. This + enables you to use type-qualified alternatives for dependencies. +
+
+
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/context/Component.html b/docs/poodinis/context/Component.html new file mode 100644 index 0000000..5250ed7 --- /dev/null +++ b/docs/poodinis/context/Component.html @@ -0,0 +1,106 @@ + + + + + + Struct Component + + + + +
+ +
+
+

Struct Component

A component annotation is used for specifying which factory methods produce components in + an application context. +

+
+ +
+ struct Component + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/context/Prototype.html b/docs/poodinis/context/Prototype.html new file mode 100644 index 0000000..a699043 --- /dev/null +++ b/docs/poodinis/context/Prototype.html @@ -0,0 +1,106 @@ + + + + + + Struct Prototype + + + + +
+ +
+
+

Struct Prototype

Components with the prototype registration will be scoped as dependencies which will create + new instances every time they are resolved. The factory method will be called repeatedly. +

+
+ +
+ struct Prototype + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/context/RegisterByType.html b/docs/poodinis/context/RegisterByType.html new file mode 100644 index 0000000..5bea0a7 --- /dev/null +++ b/docs/poodinis/context/RegisterByType.html @@ -0,0 +1,106 @@ + + + + + + Struct RegisterByType + + + + +
+ +
+
+

Struct RegisterByType

This annotation allows you to specify by which super type the component should be registered. This + enables you to use type-qualified alternatives for dependencies. +

+
+ +
+ struct RegisterByType(Type) + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/context/registerContext.html b/docs/poodinis/context/registerContext.html new file mode 100644 index 0000000..6021bdc --- /dev/null +++ b/docs/poodinis/context/registerContext.html @@ -0,0 +1,114 @@ + + + + + + Function registerContext + + + + +
+ +
+
+

Function registerContext

Register dependencies through an application context. +

+
+ +
+ void registerContext(Context) + ( +
+   shared(DependencyContainer) container +
+ ); +
+
+
+

An application context allows you to fine-tune dependency set-up and instantiation. + It is mostly used for dependencies which come from an external library or when you don't + want to use annotations to set-up dependencies in your classes. +

+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/factory.html b/docs/poodinis/factory.html new file mode 100644 index 0000000..1da85e9 --- /dev/null +++ b/docs/poodinis/factory.html @@ -0,0 +1,97 @@ + + + + + + Module poodinis.factory + + + + +
+ +
+
+

Module poodinis.factory

This module contains instance factory facilities +

+ +
+
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/polyfill.html b/docs/poodinis/polyfill.html new file mode 100644 index 0000000..266a8ec --- /dev/null +++ b/docs/poodinis/polyfill.html @@ -0,0 +1,115 @@ + + + + + + Module poodinis.polyfill + + + + +
+ +
+
+

Module poodinis.polyfill

Forward-compatibility module for providing support for Phobos functionality + not available in older versions of Phobos. +

Should not implement functionalitiy which is gone from the latest Phobos. +

+ +

Implementations copied/re-implemented from std.exception and std.traits; +

+ +

The baseline compatibility is D/Phobos 2.068.2 +

+
+ +
+
+
+
+

erdani.org, Andrei Alexandrescu, + Jonathan M Davis, + digitalmars.com, Walter Bright, + Tomasz Stachowiak (isExpressions), + erdani.org, Andrei Alexandrescu, + Shin Fujishiro, + octarineparrot.com, Robert Clipsham, + klickverbot.at, David Nadlinger, + Kenji Hara, + Shoichi Kato, + Mike Bierlee (m.bierlee@lostmoment.com) +

+ +

Copyright Digital Mars 2005 - 2009., Copyright Andrei Alexandrescu 2008-, Jonathan M Davis 2011-., 2014-2017 Mike Bierlee +

+ +

boost.org/LICENSE_1_0.txt, Boost License 1.0 +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/registration.html b/docs/poodinis/registration.html new file mode 100644 index 0000000..9bc8214 --- /dev/null +++ b/docs/poodinis/registration.html @@ -0,0 +1,135 @@ + + + + + + Module poodinis.registration + + + + +
+ +
+
+

Module poodinis.registration

This module contains objects for defining and scoping dependency registrations. +

Part of the Poodinis Dependency Injection framework. +

+
+ +
+
+

Functions

+ + + + + + + + + + + + + + + + + +
NameDescription
+ + existingInstance(registration, instance) + + Scopes registrations to return the given instance every time the given registration is resolved. +
+ + newInstance(registration) + + Scopes registrations to return a new instance every time the given registration is resolved. +
+ + singleInstance(registration) + + Scopes registrations to return the same instance every time a given registration is resolved. +
+
+
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/registration/existingInstance.html b/docs/poodinis/registration/existingInstance.html new file mode 100644 index 0000000..0283faf --- /dev/null +++ b/docs/poodinis/registration/existingInstance.html @@ -0,0 +1,111 @@ + + + + + + Function existingInstance + + + + +
+ +
+
+

Function existingInstance

Scopes registrations to return the given instance every time the given registration is resolved. +

+
+ +
+ poodinis.registration.Registration existingInstance + ( +
+   poodinis.registration.Registration registration, +
+   Object instance +
+ ); +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/registration/newInstance.html b/docs/poodinis/registration/newInstance.html new file mode 100644 index 0000000..a064655 --- /dev/null +++ b/docs/poodinis/registration/newInstance.html @@ -0,0 +1,109 @@ + + + + + + Function newInstance + + + + +
+ +
+
+

Function newInstance

Scopes registrations to return a new instance every time the given registration is resolved. +

+
+ +
+ poodinis.registration.Registration newInstance + ( +
+   poodinis.registration.Registration registration +
+ ); +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/registration/singleInstance.html b/docs/poodinis/registration/singleInstance.html new file mode 100644 index 0000000..783f162 --- /dev/null +++ b/docs/poodinis/registration/singleInstance.html @@ -0,0 +1,112 @@ + + + + + + Function singleInstance + + + + +
+ +
+
+

Function singleInstance

Scopes registrations to return the same instance every time a given registration is resolved. +

+
+ +
+ poodinis.registration.Registration singleInstance + ( +
+   poodinis.registration.Registration registration +
+ ); +
+
+
+

Effectively makes the given registration a singleton. +

+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection.html b/docs/poodinis/valueinjection.html new file mode 100644 index 0000000..f97318b --- /dev/null +++ b/docs/poodinis/valueinjection.html @@ -0,0 +1,170 @@ + + + + + + Module poodinis.valueinjection + + + + +
+ +
+
+

Module poodinis.valueinjection

This module contains facilities to support value injection. Actual injection is done by the + autowiring mechanism. +

+ +
+
+

Interfaces

+ + + + + + + + + +
NameDescription
+ + ValueInjector + + Interface which should be implemented by value injectors. +
+
+
+

Classes

+ + + + + + + + + + + + + +
NameDescription
+ + ValueInjectionException + + Thrown when something goes wrong during value injection. +
+ + ValueNotAvailableException + + Thrown by injectors when the value with the given key cannot be found. +
+
+
+

Structs

+ + + + + + + + + + + + + +
NameDescription
+ + MandatoryValue + + UDA used for marking class members which should be value-injected. +
+ + Value + + UDA used for marking class members which should be value-injected. +
+
+
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/MandatoryValue.html b/docs/poodinis/valueinjection/MandatoryValue.html new file mode 100644 index 0000000..ebacc2e --- /dev/null +++ b/docs/poodinis/valueinjection/MandatoryValue.html @@ -0,0 +1,134 @@ + + + + + + Struct MandatoryValue + + + + +
+ +
+
+

Struct MandatoryValue

UDA used for marking class members which should be value-injected. +

+
+ +
+ struct MandatoryValue + ; +
+
+
+

When the injector throws a ValueNotAvailableException, it is re-thrown + instead of being suppressed. +

+ +

A key must be supplied, which can be in any format depending on how + a value injector reads it. +

+
+ +

Fields

+ + + + + + + + + +
NameTypeDescription
+ key + stringThe textual key used to find the value by injectors. +
+
+

Examples

+
class MyClass {
+    @MandatoryValue("general.valueWhichShouldBeThere")
+    private int number;
+}
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/MandatoryValue.key.html b/docs/poodinis/valueinjection/MandatoryValue.key.html new file mode 100644 index 0000000..87c1ee3 --- /dev/null +++ b/docs/poodinis/valueinjection/MandatoryValue.key.html @@ -0,0 +1,120 @@ + + + + + + Variable MandatoryValue.key + + + + +
+ +
+
+

Variable MandatoryValue.key

The textual key used to find the value by injectors. +

+
+ +
+ struct MandatoryValue +
+ + { +
+
+   // ... +
+   string key + ; +
+   // ... +
+ } +
+
+
+

The format is injector-specific. +

+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/Value.html b/docs/poodinis/valueinjection/Value.html new file mode 100644 index 0000000..342d3df --- /dev/null +++ b/docs/poodinis/valueinjection/Value.html @@ -0,0 +1,134 @@ + + + + + + Struct Value + + + + +
+ +
+
+

Struct Value

UDA used for marking class members which should be value-injected. +

+
+ +
+ struct Value + ; +
+
+
+

A key must be supplied, which can be in any format depending on how + a value injector reads it. +

+ +

When the injector throws a ValueNotAvailableException, the value is + not injected and will keep its original assignment. +

+
+ +

Fields

+ + + + + + + + + +
NameTypeDescription
+ key + stringThe textual key used to find the value by injectors. +
+
+

Examples

+
class MyClass {
+    @Value("general.importantNumber")
+    private int number = 8;
+}
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/Value.key.html b/docs/poodinis/valueinjection/Value.key.html new file mode 100644 index 0000000..59da0ce --- /dev/null +++ b/docs/poodinis/valueinjection/Value.key.html @@ -0,0 +1,120 @@ + + + + + + Variable Value.key + + + + +
+ +
+
+

Variable Value.key

The textual key used to find the value by injectors. +

+
+ +
+ struct Value +
+ + { +
+
+   // ... +
+   string key + ; +
+   // ... +
+ } +
+
+
+

The format is injector-specific. +

+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/ValueInjectionException.html b/docs/poodinis/valueinjection/ValueInjectionException.html new file mode 100644 index 0000000..5a7d9af --- /dev/null +++ b/docs/poodinis/valueinjection/ValueInjectionException.html @@ -0,0 +1,106 @@ + + + + + + Class ValueInjectionException + + + + +
+ +
+
+

Class ValueInjectionException

Thrown when something goes wrong during value injection. +

+
+ +
+ class ValueInjectionException +
  : object.Exception + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/ValueInjector.get.html b/docs/poodinis/valueinjection/ValueInjector.get.html new file mode 100644 index 0000000..dba5865 --- /dev/null +++ b/docs/poodinis/valueinjection/ValueInjector.get.html @@ -0,0 +1,117 @@ + + + + + + Function ValueInjector.get + + + + +
+ +
+
+

Function ValueInjector.get

Get a value from the injector by key. +

+
+ +
+ Type get + ( +
+   string key +
+ ); +
+
+
+

The key can have any format. Generally you are encouraged + to accept a dot separated path, for example: server.http.port +

+
+ +

Throws

+

ValueNotAvailableException when the value for the given key is not available for any reason +

+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/ValueInjector.html b/docs/poodinis/valueinjection/ValueInjector.html new file mode 100644 index 0000000..cecd4f5 --- /dev/null +++ b/docs/poodinis/valueinjection/ValueInjector.html @@ -0,0 +1,142 @@ + + + + + + Interface ValueInjector + + + + +
+ +
+
+

Interface ValueInjector

Interface which should be implemented by value injectors. +

+
+ +
+ interface ValueInjector(Type) + ; +
+
+
+

Each value injector injects one specific type. The type can be any primitive + type or that of a struct. While class types are also supported, value injectors + are not intended for them. +

+ +

Note that value injectors are also autowired before being used. Values within dependencies of + a value injector are not injected. Neither are values within the value injector itself. +

+ +

Value injection is not supported for constructor injection. +

+
+ +

Methods

+ + + + + + + + + +
NameDescription
+ + get + + Get a value from the injector by key. +
+
+

Examples

+
class MyIntInjector : ValueInjector!int {
+    public override int get(string key) { ... }
+}
+
+// In order to make the container use your injector, register it by interface:
+container.register!(ValueInjector!int, MyIntInjector);
+
+ +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/poodinis/valueinjection/ValueNotAvailableException.html b/docs/poodinis/valueinjection/ValueNotAvailableException.html new file mode 100644 index 0000000..3790d78 --- /dev/null +++ b/docs/poodinis/valueinjection/ValueNotAvailableException.html @@ -0,0 +1,106 @@ + + + + + + Class ValueNotAvailableException + + + + +
+ +
+
+

Class ValueNotAvailableException

Thrown by injectors when the value with the given key cannot be found. +

+
+ +
+ class ValueNotAvailableException +
  : object.Exception + ; +
+
+
+ + +
+
+
+

Mike Bierlee, m.bierlee@lostmoment.com +

+ +

2014-2017 Mike Bierlee +

+ +

This software is licensed under the terms of the MIT license. + The full terms of the license can be found in the LICENSE file. +

+ +
+
+
+ + \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml new file mode 100644 index 0000000..b69d14b --- /dev/null +++ b/docs/sitemap.xml @@ -0,0 +1,50 @@ + + +http://127.0.0.1/index.html +http://127.0.0.1/poodinis/autowire.html +http://127.0.0.1/poodinis/autowire/AssignNewInstance.html +http://127.0.0.1/poodinis/autowire/autowire.html +http://127.0.0.1/poodinis/autowire/Autowire.html +http://127.0.0.1/poodinis/autowire/globalAutowire.html +http://127.0.0.1/poodinis/autowire/OptionalDependency.html +http://127.0.0.1/poodinis/container.html +http://127.0.0.1/poodinis/container/DependencyContainer.html +http://127.0.0.1/poodinis/container/DependencyContainer.clearAllRegistrations.html +http://127.0.0.1/poodinis/container/DependencyContainer.register.html +http://127.0.0.1/poodinis/container/DependencyContainer.register.html +http://127.0.0.1/poodinis/container/DependencyContainer.removeRegistration.html +http://127.0.0.1/poodinis/container/DependencyContainer.resolve.html +http://127.0.0.1/poodinis/container/DependencyContainer.resolve.html +http://127.0.0.1/poodinis/container/DependencyContainer.resolveAll.html +http://127.0.0.1/poodinis/container/DependencyContainer.setPersistentRegistrationOptions.html +http://127.0.0.1/poodinis/container/DependencyContainer.setPersistentResolveOptions.html +http://127.0.0.1/poodinis/container/DependencyContainer.unsetPersistentRegistrationOptions.html +http://127.0.0.1/poodinis/container/DependencyContainer.unsetPersistentResolveOptions.html +http://127.0.0.1/poodinis/container/PostConstruct.html +http://127.0.0.1/poodinis/container/PreDestroy.html +http://127.0.0.1/poodinis/container/RegistrationException.html +http://127.0.0.1/poodinis/container/RegistrationOption.html +http://127.0.0.1/poodinis/container/ResolveException.html +http://127.0.0.1/poodinis/container/ResolveOption.html +http://127.0.0.1/poodinis/context.html +http://127.0.0.1/poodinis/context/Component.html +http://127.0.0.1/poodinis/context/Prototype.html +http://127.0.0.1/poodinis/context/RegisterByType.html +http://127.0.0.1/poodinis/context/registerContext.html +http://127.0.0.1/poodinis/factory.html +http://127.0.0.1/poodinis/polyfill.html +http://127.0.0.1/poodinis/registration.html +http://127.0.0.1/poodinis/registration/existingInstance.html +http://127.0.0.1/poodinis/registration/newInstance.html +http://127.0.0.1/poodinis/registration/singleInstance.html +http://127.0.0.1/poodinis/valueinjection.html +http://127.0.0.1/poodinis/valueinjection/MandatoryValue.html +http://127.0.0.1/poodinis/valueinjection/MandatoryValue.key.html +http://127.0.0.1/poodinis/valueinjection/Value.html +http://127.0.0.1/poodinis/valueinjection/Value.key.html +http://127.0.0.1/poodinis/valueinjection/ValueInjectionException.html +http://127.0.0.1/poodinis/valueinjection/ValueInjector.html +http://127.0.0.1/poodinis/valueinjection/ValueInjector.get.html +http://127.0.0.1/poodinis/valueinjection/ValueNotAvailableException.html +http://127.0.0.1/poodinis.html + diff --git a/docs/symbols.js b/docs/symbols.js new file mode 100644 index 0000000..27f9641 --- /dev/null +++ b/docs/symbols.js @@ -0,0 +1,50 @@ +// symbol index generated by DDOX - do not edit +var symbols = [ +{name: 'poodinis.autowire', kind: "module", path: './poodinis/autowire.html', attributes: []}, +{name: 'poodinis.autowire.AssignNewInstance', kind: "structdeclaration", path: './poodinis/autowire/AssignNewInstance.html', attributes: []}, +{name: 'poodinis.autowire.autowire', kind: "functiondeclaration", path: './poodinis/autowire/autowire.html', attributes: []}, +{name: 'poodinis.autowire.Autowire', kind: "structdeclaration", path: './poodinis/autowire/Autowire.html', attributes: []}, +{name: 'poodinis.autowire.globalAutowire', kind: "functiondeclaration", path: './poodinis/autowire/globalAutowire.html', attributes: ["deprecated"]}, +{name: 'poodinis.autowire.OptionalDependency', kind: "structdeclaration", path: './poodinis/autowire/OptionalDependency.html', attributes: []}, +{name: 'poodinis.container', kind: "module", path: './poodinis/container.html', attributes: []}, +{name: 'poodinis.container.DependencyContainer', kind: "classdeclaration", path: './poodinis/container/DependencyContainer.html', attributes: []}, +{name: 'poodinis.container.DependencyContainer.clearAllRegistrations', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.clearAllRegistrations.html', attributes: ["synchronized", "shared"]}, +{name: 'poodinis.container.DependencyContainer.register', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.register.html', attributes: []}, +{name: 'poodinis.container.DependencyContainer.removeRegistration', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.removeRegistration.html', attributes: []}, +{name: 'poodinis.container.DependencyContainer.resolve', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.resolve.html', attributes: []}, +{name: 'poodinis.container.DependencyContainer.resolveAll', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.resolveAll.html', attributes: []}, +{name: 'poodinis.container.DependencyContainer.setPersistentRegistrationOptions', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.setPersistentRegistrationOptions.html', attributes: ["synchronized", "shared"]}, +{name: 'poodinis.container.DependencyContainer.setPersistentResolveOptions', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.setPersistentResolveOptions.html', attributes: ["synchronized", "shared"]}, +{name: 'poodinis.container.DependencyContainer.unsetPersistentRegistrationOptions', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.unsetPersistentRegistrationOptions.html', attributes: ["synchronized", "shared"]}, +{name: 'poodinis.container.DependencyContainer.unsetPersistentResolveOptions', kind: "functiondeclaration", path: './poodinis/container/DependencyContainer.unsetPersistentResolveOptions.html', attributes: ["synchronized", "shared"]}, +{name: 'poodinis.container.PostConstruct', kind: "structdeclaration", path: './poodinis/container/PostConstruct.html', attributes: []}, +{name: 'poodinis.container.PreDestroy', kind: "structdeclaration", path: './poodinis/container/PreDestroy.html', attributes: []}, +{name: 'poodinis.container.RegistrationException', kind: "classdeclaration", path: './poodinis/container/RegistrationException.html', attributes: []}, +{name: 'poodinis.container.RegistrationOption', kind: "enumdeclaration", path: './poodinis/container/RegistrationOption.html', attributes: []}, +{name: 'poodinis.container.RegistrationOption.doNotAddConcreteTypeRegistration', kind: "enummemberdeclaration", path: './poodinis/container/RegistrationOption.html#doNotAddConcreteTypeRegistration', attributes: []}, +{name: 'poodinis.container.ResolveException', kind: "classdeclaration", path: './poodinis/container/ResolveException.html', attributes: []}, +{name: 'poodinis.container.ResolveOption', kind: "enumdeclaration", path: './poodinis/container/ResolveOption.html', attributes: []}, +{name: 'poodinis.container.ResolveOption.noResolveException', kind: "enummemberdeclaration", path: './poodinis/container/ResolveOption.html#noResolveException', attributes: []}, +{name: 'poodinis.container.ResolveOption.registerBeforeResolving', kind: "enummemberdeclaration", path: './poodinis/container/ResolveOption.html#registerBeforeResolving', attributes: []}, +{name: 'poodinis.context', kind: "module", path: './poodinis/context.html', attributes: []}, +{name: 'poodinis.context.Component', kind: "structdeclaration", path: './poodinis/context/Component.html', attributes: []}, +{name: 'poodinis.context.Prototype', kind: "structdeclaration", path: './poodinis/context/Prototype.html', attributes: []}, +{name: 'poodinis.context.RegisterByType', kind: "structdeclaration", path: './poodinis/context/RegisterByType.html', attributes: []}, +{name: 'poodinis.context.registerContext', kind: "functiondeclaration", path: './poodinis/context/registerContext.html', attributes: []}, +{name: 'poodinis.factory', kind: "module", path: './poodinis/factory.html', attributes: []}, +{name: 'poodinis.polyfill', kind: "module", path: './poodinis/polyfill.html', attributes: []}, +{name: 'poodinis.registration', kind: "module", path: './poodinis/registration.html', attributes: []}, +{name: 'poodinis.registration.existingInstance', kind: "functiondeclaration", path: './poodinis/registration/existingInstance.html', attributes: []}, +{name: 'poodinis.registration.newInstance', kind: "functiondeclaration", path: './poodinis/registration/newInstance.html', attributes: []}, +{name: 'poodinis.registration.singleInstance', kind: "functiondeclaration", path: './poodinis/registration/singleInstance.html', attributes: []}, +{name: 'poodinis.valueinjection', kind: "module", path: './poodinis/valueinjection.html', attributes: []}, +{name: 'poodinis.valueinjection.MandatoryValue', kind: "structdeclaration", path: './poodinis/valueinjection/MandatoryValue.html', attributes: []}, +{name: 'poodinis.valueinjection.MandatoryValue.key', kind: "variabledeclaration", path: './poodinis/valueinjection/MandatoryValue.key.html', attributes: []}, +{name: 'poodinis.valueinjection.Value', kind: "structdeclaration", path: './poodinis/valueinjection/Value.html', attributes: []}, +{name: 'poodinis.valueinjection.Value.key', kind: "variabledeclaration", path: './poodinis/valueinjection/Value.key.html', attributes: []}, +{name: 'poodinis.valueinjection.ValueInjectionException', kind: "classdeclaration", path: './poodinis/valueinjection/ValueInjectionException.html', attributes: []}, +{name: 'poodinis.valueinjection.ValueInjector', kind: "interfacedeclaration", path: './poodinis/valueinjection/ValueInjector.html', attributes: []}, +{name: 'poodinis.valueinjection.ValueInjector.get', kind: "functiondeclaration", path: './poodinis/valueinjection/ValueInjector.get.html', attributes: []}, +{name: 'poodinis.valueinjection.ValueNotAvailableException', kind: "classdeclaration", path: './poodinis/valueinjection/ValueNotAvailableException.html', attributes: []}, +{name: 'poodinis', kind: "module", path: './poodinis.html', attributes: []}, +];