From 69878504392f3a0be267ca2173f037418c1509e9 Mon Sep 17 00:00:00 2001 From: Mike Bierlee Date: Sat, 9 Dec 2017 00:41:22 +0100 Subject: [PATCH] Add documentation to be hosted at github.io --- .gitignore | 41 ++-- docs/css/style.min.css | 3 + docs/file_hashes.json | 1 + docs/fonts/fontello.woff | Bin 0 -> 2776 bytes docs/fonts/raleway-regular.woff | Bin 0 -> 31660 bytes docs/index.html | 163 +++++++++++++ docs/js/script.min.js | 1 + docs/poodinis.html | 97 ++++++++ docs/poodinis/autowire.html | 169 ++++++++++++++ docs/poodinis/autowire/AssignNewInstance.html | 115 +++++++++ docs/poodinis/autowire/Autowire.html | 135 +++++++++++ .../poodinis/autowire/OptionalDependency.html | 107 +++++++++ docs/poodinis/autowire/globalAutowire.html | 118 ++++++++++ docs/poodinis/container.html | 191 +++++++++++++++ ...ndencyContainer.clearAllRegistrations.html | 105 +++++++++ .../container/DependencyContainer.html | 221 ++++++++++++++++++ .../DependencyContainer.register.html | 176 ++++++++++++++ ...ependencyContainer.removeRegistration.html | 111 +++++++++ .../DependencyContainer.resolve.html | 203 ++++++++++++++++ .../DependencyContainer.resolveAll.html | 123 ++++++++++ ...iner.setPersistentRegistrationOptions.html | 109 +++++++++ ...Container.setPersistentResolveOptions.html | 109 +++++++++ ...er.unsetPersistentRegistrationOptions.html | 105 +++++++++ ...ntainer.unsetPersistentResolveOptions.html | 105 +++++++++ docs/poodinis/container/PostConstruct.html | 110 +++++++++ docs/poodinis/container/PreDestroy.html | 110 +++++++++ .../container/RegistrationException.html | 106 +++++++++ .../container/RegistrationOption.html | 121 ++++++++++ docs/poodinis/container/ResolveException.html | 106 +++++++++ docs/poodinis/container/ResolveOption.html | 130 +++++++++++ docs/poodinis/context.html | 156 +++++++++++++ docs/poodinis/context/Component.html | 106 +++++++++ docs/poodinis/context/Prototype.html | 106 +++++++++ docs/poodinis/context/RegisterByType.html | 106 +++++++++ docs/poodinis/context/registerContext.html | 114 +++++++++ docs/poodinis/factory.html | 97 ++++++++ docs/poodinis/polyfill.html | 115 +++++++++ docs/poodinis/registration.html | 135 +++++++++++ .../registration/existingInstance.html | 111 +++++++++ docs/poodinis/registration/newInstance.html | 109 +++++++++ .../poodinis/registration/singleInstance.html | 112 +++++++++ docs/poodinis/valueinjection.html | 170 ++++++++++++++ .../valueinjection/MandatoryValue.html | 134 +++++++++++ .../valueinjection/MandatoryValue.key.html | 120 ++++++++++ docs/poodinis/valueinjection/Value.html | 134 +++++++++++ docs/poodinis/valueinjection/Value.key.html | 120 ++++++++++ .../ValueInjectionException.html | 106 +++++++++ .../valueinjection/ValueInjector.get.html | 117 ++++++++++ .../valueinjection/ValueInjector.html | 142 +++++++++++ .../ValueNotAvailableException.html | 106 +++++++++ docs/sitemap.xml | 50 ++++ docs/symbols.js | 50 ++++ 52 files changed, 5686 insertions(+), 21 deletions(-) create mode 100644 docs/css/style.min.css create mode 100644 docs/file_hashes.json create mode 100644 docs/fonts/fontello.woff create mode 100644 docs/fonts/raleway-regular.woff create mode 100644 docs/index.html create mode 100644 docs/js/script.min.js create mode 100644 docs/poodinis.html create mode 100644 docs/poodinis/autowire.html create mode 100644 docs/poodinis/autowire/AssignNewInstance.html create mode 100644 docs/poodinis/autowire/Autowire.html create mode 100644 docs/poodinis/autowire/OptionalDependency.html create mode 100644 docs/poodinis/autowire/globalAutowire.html create mode 100644 docs/poodinis/container.html create mode 100644 docs/poodinis/container/DependencyContainer.clearAllRegistrations.html create mode 100644 docs/poodinis/container/DependencyContainer.html create mode 100644 docs/poodinis/container/DependencyContainer.register.html create mode 100644 docs/poodinis/container/DependencyContainer.removeRegistration.html create mode 100644 docs/poodinis/container/DependencyContainer.resolve.html create mode 100644 docs/poodinis/container/DependencyContainer.resolveAll.html create mode 100644 docs/poodinis/container/DependencyContainer.setPersistentRegistrationOptions.html create mode 100644 docs/poodinis/container/DependencyContainer.setPersistentResolveOptions.html create mode 100644 docs/poodinis/container/DependencyContainer.unsetPersistentRegistrationOptions.html create mode 100644 docs/poodinis/container/DependencyContainer.unsetPersistentResolveOptions.html create mode 100644 docs/poodinis/container/PostConstruct.html create mode 100644 docs/poodinis/container/PreDestroy.html create mode 100644 docs/poodinis/container/RegistrationException.html create mode 100644 docs/poodinis/container/RegistrationOption.html create mode 100644 docs/poodinis/container/ResolveException.html create mode 100644 docs/poodinis/container/ResolveOption.html create mode 100644 docs/poodinis/context.html create mode 100644 docs/poodinis/context/Component.html create mode 100644 docs/poodinis/context/Prototype.html create mode 100644 docs/poodinis/context/RegisterByType.html create mode 100644 docs/poodinis/context/registerContext.html create mode 100644 docs/poodinis/factory.html create mode 100644 docs/poodinis/polyfill.html create mode 100644 docs/poodinis/registration.html create mode 100644 docs/poodinis/registration/existingInstance.html create mode 100644 docs/poodinis/registration/newInstance.html create mode 100644 docs/poodinis/registration/singleInstance.html create mode 100644 docs/poodinis/valueinjection.html create mode 100644 docs/poodinis/valueinjection/MandatoryValue.html create mode 100644 docs/poodinis/valueinjection/MandatoryValue.key.html create mode 100644 docs/poodinis/valueinjection/Value.html create mode 100644 docs/poodinis/valueinjection/Value.key.html create mode 100644 docs/poodinis/valueinjection/ValueInjectionException.html create mode 100644 docs/poodinis/valueinjection/ValueInjector.get.html create mode 100644 docs/poodinis/valueinjection/ValueInjector.html create mode 100644 docs/poodinis/valueinjection/ValueNotAvailableException.html create mode 100644 docs/sitemap.xml create mode 100644 docs/symbols.js 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 0000000000000000000000000000000000000000..98ffb3b1aa900eff50594589dde5c197dfc341a9 GIT binary patch literal 2776 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 K8@5p$tlq>0svUTKfdOV^xLY^gpI5X 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 M000422?)>t00?0;!~g&Q literal 0 HcmV?d00001 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/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: []}, +];