diff --git a/.gitignore b/.gitignore
index c4b3fa2..6befcf9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,22 +1,21 @@
-/*.exe
-/poodinis.lib
-/poodinis.obj
-/.settings
-/.dub
-/dub.selections.json
-/docs
-/__dummy.html
-/docs.json
-/poodinis
-/libpoodinis.a
-/.buildpath
-/quickstartExample
-/qualifiersExample
-/arrayCompletionExample
-/annotationsExample
-/applicationContextExample
-/registerOnResolveExample
-/.project
-/.idea
-/*.iml
+/*.exe
+/poodinis.lib
+/poodinis.obj
+/.settings
+/.dub
+/dub.selections.json
+/__dummy.html
+/docs.json
+/poodinis
+/libpoodinis.a
+/.buildpath
+/quickstartExample
+/qualifiersExample
+/arrayCompletionExample
+/annotationsExample
+/applicationContextExample
+/registerOnResolveExample
+/.project
+/.idea
+/*.iml
/out
\ No newline at end of file
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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
API documentation
+
+
+
+ Module Description
+
+
+
+ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Module poodinis Package module for the Poodinis Dependency Injection framework.
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+
+
+ Name Description
+
+
+
+
+ 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
+
+
+
+ Name Description
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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"
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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().
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Module poodinis.container Contains the implementation of the dependency container.
+
Part of the Poodinis Dependency Injection framework.
+
+
+
+
+
+ Classes
+
+
+
+ Name Description
+
+
+
+
+ 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
+
+
+
+ Name Description
+
+
+
+
+ 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
+
+
+
+ Name Description
+
+
+
+
+ RegistrationOption
+
+
+ Options which influence the process of registering dependencies
+
+
+
+
+
+ ResolveOption
+
+
+ Options which influence the process of resolving dependencies
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Function DependencyContainer.clearAllRegistrations Clears all dependency registrations managed by this container.
+
+
+
+
+ synchronized void clearAllRegistrations
+ () shared ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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 ;
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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 );
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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 ;
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Function DependencyContainer.setPersistentRegistrationOptions Apply persistent registration options which will be used everytime register() is called.
+
+
+
+
+
synchronized void setPersistentRegistrationOptions
+
(
+
+
RegistrationOption options
+
+
) shared ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Function DependencyContainer.setPersistentResolveOptions Apply persistent resolve options which will be used everytime resolve() is called.
+
+
+
+
+
synchronized void setPersistentResolveOptions
+
(
+
+
ResolveOption options
+
+
) shared ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Function DependencyContainer.unsetPersistentRegistrationOptions Unsets all applied persistent registration options
+
+
+
+
+ synchronized void unsetPersistentRegistrationOptions
+ () shared ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Function DependencyContainer.unsetPersistentResolveOptions Unsets all applied persistent resolve options
+
+
+
+
+ synchronized void unsetPersistentResolveOptions
+ () shared ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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).
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Class RegistrationException Exception thrown when errors occur while registering a type in a dependency container.
+
+
+
+
+ class RegistrationException
+ : object . Exception
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Enum RegistrationOption Options which influence the process of registering dependencies
+
+
+
+
+ enum RegistrationOption
+ : int { ... }
+
+
+
+
+
Enum members
+
+
+
+ Name Description
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Class ResolveException Exception thrown when errors occur while resolving a type in a dependency container.
+
+
+
+
+ class ResolveException
+ : object . Exception
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Enum ResolveOption Options which influence the process of resolving dependencies
+
+
+
+
+ enum ResolveOption
+ : int { ... }
+
+
+
+
+
Enum members
+
+
+
+ Name Description
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Module poodinis.context Contains the implementation of application context setup.
+
Part of the Poodinis Dependency Injection framework.
+
+
+
+
+
+ Functions
+
+
+
+ Name Description
+
+
+
+
+ registerContext (container)
+
+
+ Register dependencies through an application context.
+
+
+
+
+
+ Structs
+
+
+
+ Name Description
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Struct Component A component annotation is used for specifying which factory methods produce components in
+ an application context.
+
+
+
+
+ struct Component
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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)
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Function registerContext Register dependencies through an application context.
+
+
+
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.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Module poodinis.factory This module contains instance factory facilities
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Module poodinis.registration This module contains objects for defining and scoping dependency registrations.
+
Part of the Poodinis Dependency Injection framework.
+
+
+
+
+
+ Functions
+
+
+
+ Name Description
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+ ) ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Function newInstance Scopes registrations to return a new instance every time the given registration is resolved.
+
+
+
+
+ poodinis . registration . Registration newInstance
+ (
+
+ poodinis . registration . Registration registration
+
+ ) ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Module poodinis.valueinjection This module contains facilities to support value injection. Actual injection is done by the
+ autowiring mechanism.
+
+
+
+
+ Interfaces
+
+
+
+ Name Description
+
+
+
+
+ ValueInjector
+
+
+ Interface which should be implemented by value injectors.
+
+
+
+
+
+
+ Structs
+
+
+
+ Name Description
+
+
+
+
+ MandatoryValue
+
+
+ UDA used for marking class members which should be value-injected.
+
+
+
+
+
+ Value
+
+
+ UDA used for marking class members which should be value-injected.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+
+
+ Name Type Description
+
+
+
+ key
+
+ string
The textual key used to find the value by injectors.
+
+
+
+
+
Examples
+class MyClass {
+ @ MandatoryValue ( "general.valueWhichShouldBeThere" )
+ private int number ;
+}
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Variable MandatoryValue.key The textual key used to find the value by injectors.
+
+
+
+
+
struct MandatoryValue
+
+
+ {
+
+
+
// ...
+
+
string key
+
;
+
+
// ...
+
+
}
+
+
+
+
The format is injector-specific.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+
+
+ Name Type Description
+
+
+
+ key
+
+ string
The textual key used to find the value by injectors.
+
+
+
+
+
Examples
+class MyClass {
+ @ Value ( "general.importantNumber" )
+ private int number = 8 ;
+}
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Variable Value.key The textual key used to find the value by injectors.
+
+
+
+
+
struct Value
+
+
+ {
+
+
+
// ...
+
+
string key
+
;
+
+
// ...
+
+
}
+
+
+
+
The format is injector-specific.
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Class ValueInjectionException Thrown when something goes wrong during value injection.
+
+
+
+
+ class ValueInjectionException
+ : object . Exception
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
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
+
+
+
+ Name Description
+
+
+
+
+ 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 );
+
+
+
+
+
+
+
\ 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
+
+
+
+
+
+
+
+
+ The search functionality needs JavaScript enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Built with
+ scod
+
+
+
+
+
Class ValueNotAvailableException Thrown by injectors when the value with the given key cannot be found.
+
+
+
+
+ class ValueNotAvailableException
+ : object . Exception
+ ;
+
+
+
+
+
+
+
+
+
+
\ 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: []},
+];